diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..88e1dc0 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,3 @@ +*.html linguist-language=TypeScript +*.css linguist-language=TypeScript +*.js linguist-language=TypeScript \ No newline at end of file diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..adbec7a --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,14 @@ +# To get started with Dependabot version updates, you'll need to specify which +# package ecosystems to update and where the package manifests are located. +# Please see the documentation for all configuration options: +# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file + +version: 2 +updates: + - package-ecosystem: "npm" # See documentation for possible values + directory: "/" # Location of package manifests + schedule: + interval: "weekly" + ignore: + - dependency-name: "sqlite3" + - dependency-name: "sequelize" \ No newline at end of file diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..aa94fc1 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,171 @@ +name: Build, Bump Version, and Commit + +on: + push: + branches: + - main + workflow_dispatch: # 允许手动触发 + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: 拉取代码 + uses: actions/checkout@v4 + + - name: 安装node + uses: actions/setup-node@v4 + with: + node-version: 18.20.4 + registry-url: "https://registry.npmjs.org" + + - name: 安装pnpm + uses: pnpm/action-setup@v2 + with: + version: 9.7.1 + + - name: 安装依赖 + run: | + pnpm install + pnpm add node-karin@latest chokidar@latest lodash@latest yaml@latest + + - name: 放弃 package.json 的本地更改 + run: | + git checkout HEAD package.json + + - name: 删除 pnpm-lock.yaml + run: rm -rf pnpm-lock.yaml + + - name: 编译 + run: pnpm build + + - name: 设置时区 + run: | + sudo timedatectl set-timezone Asia/Shanghai + + - name: 设置git用户名和邮箱 + run: | + git config --global user.name 'github-actions[bot]' + git config --global user.email 'github-actions[bot]@users.noreply.github.com' + + - name: 创建临时文件夹存储编译后的lib文件夹 + run: | + mkdir ./../temp + + - name: 复制编译后的lib文件夹到临时文件夹 + run: | + cp -r ./lib ./../temp/lib + + - name: 检查并创建空的 build 分支 + run: | + git fetch origin + # 检查 build 分支是否存在 + if git show-ref --verify --quiet refs/heads/build; then + echo "Build branch exists locally. Switching to it." + git checkout build + else + # 检查远程是否有 build 分支 + if git ls-remote --exit-code --heads origin build; then + echo "Build branch exists remotely. Fetching and switching to it." + git checkout build + else + # build 分支不存在,创建一个空的 build 分支 + echo "Build branch does not exist. Creating an empty build branch." + git checkout --orphan build # 创建一个没有历史记录的空分支 + git reset --hard # 重置所有文件 + git clean -fdx # 删除未被 Git 管理的文件和文件夹 + echo "Empty build branch created." + git commit --allow-empty -m "Initial empty commit on build branch" + git push https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }} build # 推送到远程仓库 + fi + fi + + - name: 切换到 build 分支 + run: | + git fetch origin build + git checkout build + + - name: 删除build分支上的lib文件夹 + run: | + rm -rf lib + + - name: 复制编译后的lib文件夹到 build 分支 + run: | + cp -r ./../temp/lib ./ + + - name: 删除临时文件夹 + run: | + rm -rf ./../temp + + - name: 从main分支复制文件到build分支 + run: | + git checkout main -- package.json CHANGELOG.md README.md config resources LICENSE + - name: 删除依赖文件夹 node_modules + run: | + rm -rf node_modules + + - name: 将文件整理到 karin-plugin-kkk 文件夹 + run: | + mkdir -p karin-plugin-kkk + find . -path "./.git" -prune -o -type f -print | while read file; do + mkdir -p "karin-plugin-kkk/$(dirname "$file")" + cp "$file" "karin-plugin-kkk/$file" + done + + - name: 创建 build.zip + run: zip -r build.zip karin-plugin-kkk + + - name: 上传 build.zip + uses: actions/upload-artifact@v4 + with: + name: build-zip + path: build.zip + + - name: 删除 karin-plugin-kkk 文件夹 + run: rm -rf karin-plugin-kkk + + - name: 删除开发依赖 + run: npm run clean + + - name: 根据main分支的commit信息生成提交消息 + run: | + git add . + git reset build.zip + if [ -z "$(git diff --cached --name-only)" ]; then + echo "No changes detected" + exit 0 + else + git commit -m "chore(build): ${{ github.event.head_commit.message }}" + fi + + - name: 设置 build 分支的上游分支 + run: git push --set-upstream origin build + + - name: 推送到 build 分支 + uses: ad-m/github-push-action@master + with: + branch: build + github_token: ${{ secrets.GITHUB_TOKEN }} + force_with_lease: true + args: --set-upstream + + - name: 更新版本号 + uses: google-github-actions/release-please-action@v3 + id: release_please + with: + release-type: node + package-name: 'karin-plugin-kkk' + + - name: 发布到 npm + run: npm run pub + if: ${{ steps.release_please.outputs.release_created }} + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + + + - name: 上传 release + if: ${{ steps.release_please.outputs.release_created }} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: gh release upload ${{ steps.release_please.outputs.tag_name }} build.zip \ No newline at end of file diff --git a/.github/workflows/issue_close.yml b/.github/workflows/issue_close.yml new file mode 100644 index 0000000..3c8e3e3 --- /dev/null +++ b/.github/workflows/issue_close.yml @@ -0,0 +1,22 @@ +name: Close inactive issues +on: + schedule: + - cron: "30 1 * * *" + +jobs: + close-issues: + runs-on: ubuntu-latest + permissions: + issues: write + pull-requests: write + steps: + - uses: actions/stale@v5 + with: + days-before-issue-stale: 60 + days-before-issue-close: 30 + stale-issue-label: "stale" + stale-issue-message: "📅 你好 @${{ github.event.issue.user.login }},这个问题已经过期了,因为它已经开放了30天,没有任何活动。" + close-issue-message: "🚫 你好 @${{ github.event.issue.user.login }},此问题已关闭,因为它已被标记为过期后14天处于非活动状态。。" + days-before-pr-stale: -1 + days-before-pr-close: -1 + repo-token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/issue_geetings.yml b/.github/workflows/issue_geetings.yml new file mode 100644 index 0000000..d7716ed --- /dev/null +++ b/.github/workflows/issue_geetings.yml @@ -0,0 +1,27 @@ +on: + issues: + types: [labeled] + +jobs: + create-comment: + runs-on: ubuntu-latest + steps: + - name: Create comment for enhancement + if: github.event.label.name == 'enhancement' + uses: actions-cool/issues-helper@v3 + with: + actions: 'create-comment' + token: ${{ secrets.GITHUB_TOKEN }} + body: | + 你好 @${{ github.event.issue.user.login }},我们已经记录了你的新功能提议。如果你有任何具体的实现想法或设计草图,欢迎随时分享给我们。 + emoji: 'eyes' + + - name: Create comment for bug + if: github.event.label.name == 'bug' + uses: actions-cool/issues-helper@v3 + with: + actions: 'create-comment' + token: ${{ secrets.GITHUB_TOKEN }} + body: | + 你好 @${{ github.event.issue.user.login }},看来我们的代码不小心打了个盹儿。别担心,我们已经唤醒了开发团队,他们正快马加鞭地赶来修复!🔨🐞 + emoji: 'eyes' \ No newline at end of file diff --git a/.github/workflows/issue_similarity.yml b/.github/workflows/issue_similarity.yml new file mode 100644 index 0000000..33b8fa8 --- /dev/null +++ b/.github/workflows/issue_similarity.yml @@ -0,0 +1,20 @@ +# 问题相似性分析 +name: Issues Similarity Analysis + +on: + issues: + types: [opened, edited] + +jobs: + similarity-analysis: + runs-on: ubuntu-latest + steps: + - name: analysis + uses: actions-cool/issues-similarity-analysis@v1 + with: + filter-threshold: 0.5 + comment-title: '### 似乎有相似的问题' + comment-body: '${index}. ${similarity} #${number}' + show-footer: false + show-mentioned: true + since-days: 730 \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a859cb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +config/config/ +lib/ +node_modules/ + +pnpm-lock.yaml +package-lock.json +yarn.lock \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..e69de29 diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..f288702 --- /dev/null +++ b/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + 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. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is 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. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + 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. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "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. + + 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. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + 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. + + 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. + + 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. + + 1. Source Code. + + 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. + + 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. + + 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. Use with the GNU Affero General Public License. + + 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 Affero 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 special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU 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 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 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 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 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + 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 GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/README.md b/README.md new file mode 100644 index 0000000..4a99abc --- /dev/null +++ b/README.md @@ -0,0 +1,121 @@ +# karin-plugin-kkk + +**_Karin 的「抖音」「B站」「快手」视频解析/动态推送插件_** + +## 安装 + +# 暂时只有 GitHub 一个渠道可下载 + +1. 克隆 **`build`** 分支(非常推荐) + ```sh + git clone --depth=1 -b build https://github.com/ikenxuan/karin-plugin-kkk.git ./plugins/karin-plugin-kkk/ + ``` + + > 如果你的网络环境较差,无法连接到 Github,可以使用 Gitee 镜像仓库,可能会更新不及时 + > + > ```sh + > git clone --depth=1 -b build https://gitee.com/ikenxuan/karin-plugin-kkk.git ./plugins/karin-plugin-kkk/ + > ``` + + 安装依赖, 在 Karin 根目录下运行 + ```sh + pnpm install --filter=karin-plugin-kkk -P + ``` + +2. 使用 **`包管理器`** 安装(推荐) +
+ 点击展开 + + 在 Karin 根目录下运行 + ```sh + pnpm add karin-plugin-kkk -w + ``` +
+ +3. 使用 Release **`发行版`**(不推荐) +
+ 点击展开 + +

不推荐该方式,后续无法通过 Git 进行更新

+ + * 打开 Release 页面: https://github.com/ikenxuan/karin-plugin-kkk/releases + * 找到最新的版本,下载名为 `build.zip` 的压缩包 + * 在 `plugins/` 目录下解压该压缩包 + * 完成后插件应在 `机器人根目录/plugins/karin-plugin-kkk/`

+ + 解压完成后在插件目录下运行 + ```sh + pnpm install + ``` + + 或者Karin 根目录下运行 + ```sh + pnpm install --filter=karin-plugin-kkk -P + ``` + +
+ +4. 克隆 main 分支 **`自行编译`**(不推荐) +
+ 点击展开 + + #### 克隆源码 + ```sh + git clone --depth=1 https://github.com/ikenxuan/karin-plugin-kkk.git ./plugins/karin-plugin-kkk/ + ``` + **TypeScript 源码无法运行,需要先编译成 JavaScript 后才可运行** + #### 进入源码目录 + ```sh + cd plugins/karin-plugin-kkk/ + ``` + #### 安装依赖 + ```sh + pnpm install + ``` + #### 编译 + ```sh + pnpm run build + ``` + 编译完成后即可回到根目录启动 Karin 运行 +
+ +## 功能 + +**更多信息可打开 [文档主页](https://ikenxuan.github.io/kkkkkk-10086) 阅读。** + +## 鸣谢 +**业务站点** + +- [www.douyin.com](https://www.douyin.com) & [www.bilibili.com](https://www.bilibili.com) & [www.kuaishou.com](https://www.kuaishou.com) + +本项目的开发参考了以下开源项目部分代码,排名不分先后 + +**部分代码借鉴** + +- [xfdown/xiaofei-plugin](https://gitee.com/xfdown/xiaofei-plugin) +- [kyrzy0416/rconsole-plugin](https://gitee.com/kyrzy0416/rconsole-plugin) +- [think-first-sxs/reset-qianyu-plugin](https://gitee.com/think-first-sxs/reset-qianyu-plugin) +- [yeyang52/yenai-plugin](https://github.com/yeyang52/yenai-plugin) +- [XasYer/Shiranai-Plugin](https://github.com/XasYer/Shiranai-Plugin) +- [XasYer/YePanel](https://github.com/XasYer/YePanel) +- 更多待补充... + +**接口文档与加密参数算法** + +- [SocialSisterYi/bilibili-API-collect](https://github.com/SocialSisterYi/bilibili-API-collect) +- [NearHuiwen/TiktokDouyinCrawler](https://github.com/NearHuiwen/TiktokDouyinCrawler) +- [B1gM8c/X-Bogus](https://github.com/B1gM8c/X-Bogus) +- [ikenxuan/amagi](https://github.com/ikenxuan/amagi) +- 更多待补充... + +**友情链接** +- Karin 框架 [**GitHub**](https://github.com/Karinjs/Karin) | [**文档**](https://karin.fun) + +## 许可证 +[**GPL-3.0**](./LICENSE) + +## 声明 +> [!CAUTION] +> 本项目提供的开源代码是出于学习进行开发。如果您认为该项目侵犯了您的知识产权或其他合法权益,请通过 **[ QQ](https://qm.qq.com/q/k6Up32hdWE)** 向我们提供书面通知。我们将在收到有效通知后,尽快进行审查,并采取必要的措施。 +> +> 未经同意,禁止将本项目的开源代码用于任何商业目的。因使用本项目产生的一切问题与后果由使用者自行承担,项目开发者不承担任何责任 diff --git a/config/PluginConfigView.yaml b/config/PluginConfigView.yaml new file mode 100644 index 0000000..f96b51b --- /dev/null +++ b/config/PluginConfigView.yaml @@ -0,0 +1,271 @@ +- + # 配置文件描述 + name: Cookies相关 + # 配置文件名 + file: cookies.yaml + # 视图信息 + view: + - + # 配置项 + key: 抖音ck + # 配置描述 + comment: 抖音ck,用于请求官方API数据 + # 配置路径 + path: 'douyin' + # 配置类型 + type: 'text' + - + key: B站ck + comment: B站ck,用于请求官方API数据 + path: 'bilibili' + type: 'text' + +- + # 配置文件描述 + name: 应用设置 + # 配置文件名 + file: app.yaml + # 视图信息 + view: + - + # 配置项 + key: 总开关 + # 配置描述 + comment: 视频解析工具总开关,修改后重启生效,关闭后可使用 kkk/kkk解析/解析 + 视频分享链接代替 + # 配置路径 + path: 'videotool' + # 配置类型 + type: 'boolean' + - + key: 默认解析 + comment: 识别最高优先级,修改后重启生效 + path: 'defaulttool' + type: 'boolean' + - + key: 发送合并转发消息 + comment: 可能多用于抖音解析 + path: 'sendforwardmsg' + type: 'boolean' + - + key: 视频文件上传限制 + comment: 开启后会根据解析的视频文件大小判断是否需要上传(B站番剧无影响) + path: 'usefilelimit' + type: 'boolean' + - + key: 缓存删除 + comment: 非必要不修改! + path: 'rmmp4' + type: 'boolean' + - + key: API服务 + comment: '将所有api接口放出,作为一个本地的视频解析API服务,默认端口4567' + path: 'APIServer' + type: 'boolean' + - + key: API服务端口 + comment: 'API服务端口' + path: 'APIServerPort' + type: 'number' + - + key: API服务日志 + comment: '打开或关闭运行日志' + path: 'APIServerLog' + type: 'boolean' + - + key: 自定义优先级 + comment: 「默认解析」关闭后才会生效。修改后重启生效 + path: 'priority' + type: 'number' + - + key: 视频文件大小限制 + comment: '视频文件大于该数值则不会上传 单位: MB,「视频文件上传限制」开启后才会生效(B站番剧无影响)' + path: 'filelimit' + type: 'number' + - + key: 渲染精度 + comment: 可选值50~200,建议100。设置高精度会提高图片的精细度,过高可能会影响渲染与发送速度 + path: 'renderScale' + type: 'number' + +- + # 配置文件描述 + name: 抖音相关 + # 配置文件名 + file: douyin.yaml + # 视图信息 + view: + - + # 配置项 + key: 抖音解析开关 + # 配置描述 + comment: 单独开关,受「总开关」影响 + # 配置路径 + path: 'douyintool' + # 配置类型 + type: 'boolean' + - + key: 抖音解析提示 + comment: 发送提示信息:“检测到抖音链接,开始解析” + path: 'douyintip' + type: 'boolean' + - + key: 抖音评论解析 + path: 'comments' + type: 'boolean' + - + key: 抖音评论数量 + comment: 范围1~50条 + path: 'numcomments' + type: 'number' + - + key: 发送抖音作品评论图 + path: 'commentsimg' + type: 'boolean' + - + key: 抖音推送 + comment: 开启后需重启;使用[#设置抖音推送+抖音号]配置推送列表 + path: 'douyinpush' + type: 'boolean' + - + key: 抖音推送日志 + comment: 打开或关闭定时任务日志 + path: 'douyinpushlog' + type: 'boolean' + - + key: 抖音推送设置权限 + comment: '0: (all)所有人;1: (admin)群主和管理员;2: (owner)群主;3: (master)主人' + path: 'douyinpushGroup' + type: 'select' + # 是否可以多选 + multiple: false + # 选项 + item: + - + name: 所有人都可以添加 + value: all + - + name: 只有群管理员可以添加 + value: admin + - + name: 只有群主可以添加 + value: owner + - + name: 只有主人可以添加 + value: master + - + key: 抖音推送表达式 + path: 'douyinpushcron' + type: 'boolean' + - + key: 图集BGM是否使用高清语音发送 + comment: 高清语音「ios/PC」系统均无法播放,自行衡量开关(仅icqq) + path: 'sendHDrecord' + type: 'boolean' + - + key: 抖音推送是否一同发送作品视频 + comment: 和推送图一同将新作品内容发送出去(图集暂未支持) + path: 'senddynamicwork' + type: 'boolean' + +- + # 配置文件描述 + name: bilibili相关 + # 配置文件名 + file: bilibili.yaml + # 视图信息 + view: + - + # 配置项 + key: B站解析开关 + # 配置描述 + comment: 单独开关,受「总开关」影响 + # 配置路径 + path: 'bilibilitool' + # 配置类型 + type: 'boolean' + - + key: B站解析提示 + comment: 发送提示信息:“检测到B站链接,开始解析” + path: 'bilibilitip' + type: 'boolean' + - + key: B站评论图 + comment: 发送哔哩哔哩作品评论图 + path: 'bilibilicommentsimg' + type: 'boolean' + - + key: B站评论数量 + comment: 范围1~20条 + path: 'bilibilinumcomments' + type: 'number' + - + key: B站推送 + comment: 开启后需重启;使用[#设置B站推送+UID]配置推送列表 + path: 'bilibilipush' + type: 'boolean' + - + key: B站推送日志 + comment: 打开或关闭定时任务日志 + path: 'bilibilipushlog' + type: 'boolean' + - + key: B站推送设置权限 + comment: '0: (all)所有人;1: (admin)群主和管理员;2: (owner)群主;3: (master)主人' + path: 'bilibilipushGroup' + type: 'select' + # 是否可以多选 + multiple: false + # 选项 + item: + - + name: 所有人都可以添加 + value: all + - + name: 只有群管理员可以添加 + value: admin + - + name: 只有群主可以添加 + value: owner + - + name: 只有主人可以添加 + value: master + - + key: B站推送表达式 + path: 'bilibilipushcron' + type: 'boolean' + - + key: B站动态视频发送 + comment: 该UP的最新动态可能是视频,可选是否与推送图片一同发送 + path: 'senddynamicvideo' + type: 'boolean' + - + key: B站动态视频发送 + comment: 解析视频是否优先保内容,打开为优先保证上传将使用最低分辨率,关闭为优先保清晰度将使用最高分辨率 + path: 'videopriority' + type: 'boolean' +- + # 配置文件描述 + name: 快手相关 + # 配置文件名 + file: kuaishou.yaml + # 视图信息 + view: + - + # 配置项 + key: 快手解析开关 + # 配置描述 + comment: 单独开关,受「总开关」影响 + # 配置路径 + path: 'kuaishoutool' + # 配置类型 + type: 'boolean' + - + key: 快手解析提示 + comment: 发送提示信息:“检测到快手链接,开始解析” + path: 'kuaishoutip' + type: 'boolean' + - + key: 快手评论数量 + comment: 范围1~30条 + path: 'kuaishounumcomments' + type: 'number' \ No newline at end of file diff --git a/config/default_config/app.yaml b/config/default_config/app.yaml new file mode 100644 index 0000000..6d209ee --- /dev/null +++ b/config/default_config/app.yaml @@ -0,0 +1,26 @@ +# 视频解析工具总开关,修改后重启生效 +videotool: true + +# 默认解析,即识别最高优先级,修改后重启生效 +defaulttool: true + +# 自定义优先级,「默认解析」关闭后才会生效。修改后重启生效 +priority: 800 + +# 发送合并转发消息,可能多用于抖音解析 +sendforwardmsg: true + +# 缓存删除,非必要不修改! +rmmp4: true + +# 渲染精度,可选值50~200,建议100。设置高精度会提高图片的精细度,过高可能会影响渲染与发送速度 +renderScale: 100 + +# 放出API服务(本地部署一个抖音、B站和快手的api服务) +APIServer: false + +# API服务端口 +APIServerPort: 4567 + +# 渲染评论图和推送图的主题色,0为自动,1为浅色,2为深色 +Theme: 0 \ No newline at end of file diff --git a/config/default_config/bilibili.yaml b/config/default_config/bilibili.yaml new file mode 100644 index 0000000..3fbae5a --- /dev/null +++ b/config/default_config/bilibili.yaml @@ -0,0 +1,35 @@ +# B站解析开关,单独开关,受「总开关」影响 +switch: true + +# B站解析提示,发送提示信息:“检测到B站链接,开始解析” +tip: true + +# B站评论解析,发送哔哩哔哩作品评论图 +comment: true + +# B站评论数量,设置接口返回的评论数量,范围 1 ~ x 条 +numcomment: 5 + +# 解析视频是否优先保内容,true为优先保证上传将使用最低分辨率,false为优先保清晰度将使用最高分辨率 +videopriority: false + +# B站推送相关配置 +push: + # 推送开关,开启后需重启;使用「#设置B站推送 + 用户UID」配置推送列表 + switch: true + # 动态中有指定关键词时,不推送 + banWords: + - 关键词1 + - 关键词2 + # 动态中有指定标签时,不推送 + banTags: + - 标签1 + - 标签2 + # 推送权限,all为所有人,admin为管理员,master为主人,group.owner为群主,group.admin为群管理员 + permission: master + # 推送表达式 + cron: '*/10 * * * *' + # 推送时是否一同解析该动态 + parsedynamic: true + # 是否打印日志 + log: true \ No newline at end of file diff --git a/config/default_config/cookies.yaml b/config/default_config/cookies.yaml new file mode 100644 index 0000000..b58e887 --- /dev/null +++ b/config/default_config/cookies.yaml @@ -0,0 +1,8 @@ +# 抖音ck +douyin: + +# B站ck +bilibili: + +# 快手ck +kuaishou: \ No newline at end of file diff --git a/config/default_config/douyin.yaml b/config/default_config/douyin.yaml new file mode 100644 index 0000000..a2ffae5 --- /dev/null +++ b/config/default_config/douyin.yaml @@ -0,0 +1,35 @@ +# 抖音解析开关,单独开关,受「总开关」影响 +switch: true + +# 抖音解析提示,发送提示信息:“检测到抖音链接,开始解析” +tip: true + +# 抖音评论解析 +comment: true + +# 抖音评论数量,范围 1 ~ x 条 +numcomment: 5 + +# 图集BGM是否使用高清语音发送,高清语音「ios/PC」系统均无法播放,自行衡量开关(仅icqq) +sendHDrecord: true + +# 抖音推送相关配置 +push: + # 推送开关,开启后需重启;使用「#设置抖音推送 + 抖音号」配置推送列表 + switch: true + # 作品中有指定关键词时,不推送 + banWords: + - 关键词1 + - 关键词2 + # 作品中有指定标签时,不推送 + banTags: + - 标签1 + - 标签2 + # 推送权限,all为所有人,admin为管理员,master为主人,group.owner为群主,group.admin为群管理员 + permission: master + # 推送表达式 + cron: '*/10 * * * *' + # 推送时是否一同解析该作品 + parsedynamic: true + # 是否打印日志 + log: true \ No newline at end of file diff --git a/config/default_config/kuaishou.yaml b/config/default_config/kuaishou.yaml new file mode 100644 index 0000000..f4fea8b --- /dev/null +++ b/config/default_config/kuaishou.yaml @@ -0,0 +1,8 @@ +# 快手解析开关,单独开关,受「总开关」影响 +switch: true + +# 快手解析提示,发送提示信息:“检测到快手链接,开始解析” +tip: true + +# 快手评论数量,范围1~30条 +kscomments: 5 \ No newline at end of file diff --git a/config/default_config/pushlist.yaml b/config/default_config/pushlist.yaml new file mode 100644 index 0000000..98ead1b --- /dev/null +++ b/config/default_config/pushlist.yaml @@ -0,0 +1,29 @@ +# # 抖音推送列表 +# douyin: +# - +# # 抖音用户(可不填,执行推送时会自动填上) +# sec_uid: +# # 抖音号(必填) +# short_id: +# # 推送群号和机器人账号,多个则使用逗号隔开(必填,例子:[12345678:87654321, 11451419:88888888],群号就是11451419,机器人账号就是88888888) +# group_id: +# - 1145141919810:8888888888 +# # 这个博主的名字信息(可不填,执行推送时会自动填上) +# remark: + +# # B站推送列表 +# bilibili: +# - +# # B站用户(必填) +# host_mid: +# # 推送群号和机器人账号,多个则使用逗号隔开(必填,例子:[12345678:87654321, 11451419:88888888],群号就是11451419,机器人账号就是88888888) +# group_id: +# - 1145141919810:8888888888 +# # 这个UP主的名字信息(可不填,执行推送时会自动填上) +# remark: + +# 抖音推送列表 +douyin: [] + +# B站推送列表 +bilibili: [] \ No newline at end of file diff --git a/config/default_config/upload.yaml b/config/default_config/upload.yaml new file mode 100644 index 0000000..8988231 --- /dev/null +++ b/config/default_config/upload.yaml @@ -0,0 +1,23 @@ +# 发送视频经本插件转换为base64格式后再发送,适合Karin与机器人不在同一网络环境下开启 +sendbase64: false + +# 视频上传拦截,开启后会根据解析的视频文件大小判断是否需要上传(B站番剧无影响) +usefilelimit: false + +# 视频大小拦截值(填数字),视频文件大于该数值则不会上传 单位: MB,「视频文件上传限制」开启后才会生效(B站番剧无影响) +filelimit: 20 + +# 压缩视频,开启后会将视频文件压缩后再上传,适合上传大文件 +compress: false + +# 触发视频压缩的阈值,单位:MB。当文件大小超过该值时,才会压缩视频,「压缩视频」开启后才会生效 +compresstrigger: 80 + +# 压缩后的值,若视频文件大小大于「触发视频压缩的阈值」的值,则会进行压缩至该值(±5%),「压缩视频」开启后才会生效 +compressvalue: 30 + +# 使用群文件上传,开启后会将视频文件上传到群文件中 +usegroupfile: false + +# 群文件上传阈值,当文件大小超过该值时将使用群文件上传,单位:MB,「使用群文件上传」开启后才会生效 +groupfilevalue: 100 \ No newline at end of file diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 0000000..966f094 --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,74 @@ +import tsParser from '@typescript-eslint/parser' +import tsPlugin from '@typescript-eslint/eslint-plugin' +import globals from 'globals' + +export default [ + { + files: ['lib/**/*.js', 'lib/**/*.d.ts'], + languageOptions: { + ecmaVersion: 11, + sourceType: 'module', + parser: tsParser, + globals: { + ...globals.node + } + }, + rules: { + // 禁用驼峰命名命名规则,允许使用下划线命名法。 + 'camelcase': ['off'], + // 启用等号严格比较规则,静止使用==和!=进行比较。 + 'eqeqeq': [1, 'always'], + // 禁用优先使用const声明变量的规则,允许使用let和var。 + 'prefer-const': ['off'], + // 要求对象属性的末尾不能有逗号,设置为错误等级1。 + 'comma-dangle': [1, 'never'], + // 禁用箭头函数体风格规则,允许使用任意风格。 + 'arrow-body-style': 'off', + // 启用缩进规则,要求使用两个空格进行缩进,并且switch语句的case子句缩进增加一层。 + 'indent': [1, 2, { "SwitchCase": 1 }], + // 要求函数参数列表前的空格,设置为错误等级1。 + 'space-before-function-paren': 1, + // 要求语句末尾不使用分号,设置为错误等级1。 + "semi": [1, 'never'], + // 要求代码中不能有尾随空格,设置为错误等级1。 + "no-trailing-spaces": 1, + // 要求对象字面量大括号内两侧必须有空格,设置为错误等级1。 + "object-curly-spacing": [1, 'always'], + // 要求数组字面量中括号内两侧必须有空格,设置为错误等级1。 + "array-bracket-spacing": [1, 'always'], + // 最多允许 2 个连续的空行,禁止文件末尾空行 + 'no-multiple-empty-lines': [1, { max: 2, maxEOF: 0 }] + }, + }, + { + files: ['src/**/*.ts', 'src/**/*.d.ts'], + languageOptions: { + ecmaVersion: 11, + sourceType: 'module', + parser: tsParser, + globals: { + ...globals.node + }, + parserOptions: { + project: './tsconfig.json' + }, + }, + plugins: { + '@typescript-eslint': tsPlugin + }, + rules: { + 'camelcase': ['off'], + 'eqeqeq': [1, 'always'], + 'prefer-const': ['off'], + 'comma-dangle': [1, 'never'], + 'arrow-body-style': 'off', + 'indent': [1, 2, { "SwitchCase": 1 }], + 'space-before-function-paren': 1, + "semi": [1, 'never'], + "no-trailing-spaces": 1, + "object-curly-spacing": [1, 'always'], + "array-bracket-spacing": [1, 'always'], + 'no-multiple-empty-lines': [1, { max: 2, maxEOF: 0 }] + } + } +] \ No newline at end of file diff --git a/package.json b/package.json new file mode 100644 index 0000000..7e6b5ed --- /dev/null +++ b/package.json @@ -0,0 +1,72 @@ +{ + "name": "karin-plugin-kkk", + "version": "0.0.1", + "description": "a Karin video parsing tool", + "keywords": [ + "karin-plugin" + ], + "homepage": "https://github.com/ikenxuan/karin-plugin-kkk", + "bugs": { + "url": "https://github.com/ikenxuan/karin-plugin-kkk/issues" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ikenxuan/karin-plugin-kkk.git" + }, + "license": "GPL-3.0-only", + "author": "ikenxuan", + "type": "module", + "main": "lib/index.js", + "files": [ + "config/", + "lib/", + "resources/", + "LICENSE", + "package.json", + "README.md", + "CHANGELOG.md" + ], + "scripts": { + "build": "tsc --project tsconfig.json && tsc-alias -p tsconfig.json && npm run fix", + "clean": "node lib/clean.js", + "fix": "eslint lib/**/*.js --fix && eslint lib/**/*.d.ts --fix", + "fix:ts": "eslint src/**/*.ts --fix", + "pub": "npm publish --access public", + "sort": "npx sort-package-json" + }, + "dependencies": { + "@ikenxuan/amagi": "^3.4.3", + "@karinjs/md-html": "^1.1.6", + "axios": "^1.7.8", + "heic-convert": "^2.1.0", + "icqq": "^0.6.10", + "playwright": "^1.49.0", + "qrcode": "^1.5.4", + "sequelize": "6.37.3", + "sqlite3": "5.1.6" + }, + "devDependencies": { + "@types/heic-convert": "^2.1.0", + "@types/lodash": "^4.17.13", + "@types/node": "^22.10.0", + "@types/qrcode": "^1.5.5", + "@typescript-eslint/eslint-plugin": "^8.16.0", + "@typescript-eslint/parser": "^8.16.0", + "eslint": "^9.15.0", + "globals": "^15.12.0", + "sort-package-json": "^2.12.0", + "tsc-alias": "^1.8.10", + "typescript": "^5.7.2" + }, + "publishConfig": { + "access": "public", + "registry": "https://registry.npmjs.org" + }, + "karin": { + "apps": [ + "lib/apps" + ], + "outDir": "lib", + "rootDir": "src" + } +} \ No newline at end of file diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.1.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.1.woff2 new file mode 100644 index 0000000..45b6aaa Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.1.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.10.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.10.woff2 new file mode 100644 index 0000000..7435d82 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.10.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.11.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.11.woff2 new file mode 100644 index 0000000..051356a Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.11.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.12.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.12.woff2 new file mode 100644 index 0000000..d8bc8dd Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.12.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.13.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.13.woff2 new file mode 100644 index 0000000..14115f5 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.13.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.14.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.14.woff2 new file mode 100644 index 0000000..f8b88ec Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.14.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.15.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.15.woff2 new file mode 100644 index 0000000..be3e692 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.15.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.16.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.16.woff2 new file mode 100644 index 0000000..c3017f7 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.16.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.17.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.17.woff2 new file mode 100644 index 0000000..afda035 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.17.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.18.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.18.woff2 new file mode 100644 index 0000000..0636ce7 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.18.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.19.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.19.woff2 new file mode 100644 index 0000000..89bbb21 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.19.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.2.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.2.woff2 new file mode 100644 index 0000000..5a5c372 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.2.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.20.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.20.woff2 new file mode 100644 index 0000000..133a343 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.20.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.21.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.21.woff2 new file mode 100644 index 0000000..a994c75 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.21.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.22.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.22.woff2 new file mode 100644 index 0000000..6ee0d6b Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.22.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.23.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.23.woff2 new file mode 100644 index 0000000..d0622ac Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.23.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.24.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.24.woff2 new file mode 100644 index 0000000..61e62e2 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.24.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.25.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.25.woff2 new file mode 100644 index 0000000..500daee Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.25.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.26.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.26.woff2 new file mode 100644 index 0000000..c7e8069 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.26.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.27.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.27.woff2 new file mode 100644 index 0000000..a8086d4 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.27.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.28.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.28.woff2 new file mode 100644 index 0000000..0d3ecd0 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.28.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.29.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.29.woff2 new file mode 100644 index 0000000..f794b14 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.29.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.3.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.3.woff2 new file mode 100644 index 0000000..6559b71 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.3.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.30.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.30.woff2 new file mode 100644 index 0000000..d9bdf52 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.30.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.31.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.31.woff2 new file mode 100644 index 0000000..191cbba Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.31.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.32.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.32.woff2 new file mode 100644 index 0000000..27e5039 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.32.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.33.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.33.woff2 new file mode 100644 index 0000000..58c8d29 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.33.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.34.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.34.woff2 new file mode 100644 index 0000000..7b5870c Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.34.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.35.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.35.woff2 new file mode 100644 index 0000000..5fcc75f Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.35.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.36.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.36.woff2 new file mode 100644 index 0000000..5e76f54 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.36.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.37.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.37.woff2 new file mode 100644 index 0000000..d9de6be Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.37.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.38.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.38.woff2 new file mode 100644 index 0000000..f197c64 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.38.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.39.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.39.woff2 new file mode 100644 index 0000000..02ec93d Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.39.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.4.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.4.woff2 new file mode 100644 index 0000000..c307ecd Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.4.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.40.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.40.woff2 new file mode 100644 index 0000000..e728e76 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.40.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.41.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.41.woff2 new file mode 100644 index 0000000..d4b730c Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.41.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.42.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.42.woff2 new file mode 100644 index 0000000..25470ff Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.42.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.43.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.43.woff2 new file mode 100644 index 0000000..1bc0f3d Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.43.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.44.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.44.woff2 new file mode 100644 index 0000000..14a07db Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.44.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.45.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.45.woff2 new file mode 100644 index 0000000..b884943 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.45.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.46.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.46.woff2 new file mode 100644 index 0000000..fcc6ea3 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.46.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.47.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.47.woff2 new file mode 100644 index 0000000..ed1c158 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.47.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.48.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.48.woff2 new file mode 100644 index 0000000..d447746 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.48.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.49.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.49.woff2 new file mode 100644 index 0000000..680d6b7 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.49.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.5.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.5.woff2 new file mode 100644 index 0000000..eacd717 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.5.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.50.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.50.woff2 new file mode 100644 index 0000000..4ba2958 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.50.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.51.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.51.woff2 new file mode 100644 index 0000000..49838f1 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.51.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.52.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.52.woff2 new file mode 100644 index 0000000..754399d Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.52.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.53.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.53.woff2 new file mode 100644 index 0000000..cc2156e Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.53.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.54.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.54.woff2 new file mode 100644 index 0000000..da6db30 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.54.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.55.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.55.woff2 new file mode 100644 index 0000000..b21ec5c Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.55.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.56.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.56.woff2 new file mode 100644 index 0000000..ff77d17 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.56.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.57.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.57.woff2 new file mode 100644 index 0000000..3e3809b Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.57.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.58.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.58.woff2 new file mode 100644 index 0000000..a891f61 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.58.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.59.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.59.woff2 new file mode 100644 index 0000000..6c988cb Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.59.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.6.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.6.woff2 new file mode 100644 index 0000000..2768fd2 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.6.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.60.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.60.woff2 new file mode 100644 index 0000000..625d1e7 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.60.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.61.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.61.woff2 new file mode 100644 index 0000000..42718ab Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.61.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.62.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.62.woff2 new file mode 100644 index 0000000..2281f0b Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.62.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.63.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.63.woff2 new file mode 100644 index 0000000..711ad81 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.63.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.64.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.64.woff2 new file mode 100644 index 0000000..cf22561 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.64.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.65.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.65.woff2 new file mode 100644 index 0000000..e0d24d8 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.65.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.66.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.66.woff2 new file mode 100644 index 0000000..539c4ae Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.66.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.67.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.67.woff2 new file mode 100644 index 0000000..7781fdb Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.67.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.68.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.68.woff2 new file mode 100644 index 0000000..2ca9911 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.68.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.69.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.69.woff2 new file mode 100644 index 0000000..028d4e0 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.69.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.7.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.7.woff2 new file mode 100644 index 0000000..c2d8215 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.7.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.70.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.70.woff2 new file mode 100644 index 0000000..c65f922 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.70.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.71.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.71.woff2 new file mode 100644 index 0000000..d9002e5 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.71.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.72.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.72.woff2 new file mode 100644 index 0000000..94c6265 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.72.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.73.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.73.woff2 new file mode 100644 index 0000000..a29f415 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.73.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.74.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.74.woff2 new file mode 100644 index 0000000..961cf41 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.74.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.75.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.75.woff2 new file mode 100644 index 0000000..ef2d556 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.75.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.76.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.76.woff2 new file mode 100644 index 0000000..2c2266f Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.76.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.77.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.77.woff2 new file mode 100644 index 0000000..ec85559 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.77.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.78.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.78.woff2 new file mode 100644 index 0000000..a4e306a Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.78.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.79.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.79.woff2 new file mode 100644 index 0000000..0a6bc96 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.79.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.8.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.8.woff2 new file mode 100644 index 0000000..19b54a1 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.8.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.80.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.80.woff2 new file mode 100644 index 0000000..933b1c7 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.80.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.81.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.81.woff2 new file mode 100644 index 0000000..812895b Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.81.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.82.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.82.woff2 new file mode 100644 index 0000000..531a6a4 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.82.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.83.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.83.woff2 new file mode 100644 index 0000000..fdebeb3 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.83.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.84.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.84.woff2 new file mode 100644 index 0000000..ea39eb4 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.84.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.85.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.85.woff2 new file mode 100644 index 0000000..f36f3ae Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.85.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.86.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.86.woff2 new file mode 100644 index 0000000..9582249 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.86.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.87.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.87.woff2 new file mode 100644 index 0000000..008f2a7 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.87.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.88.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.88.woff2 new file mode 100644 index 0000000..0bdb541 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.88.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.89.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.89.woff2 new file mode 100644 index 0000000..6c5eae7 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.89.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.9.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.9.woff2 new file mode 100644 index 0000000..4f0350d Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.9.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.90.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.90.woff2 new file mode 100644 index 0000000..41d974d Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.90.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.91.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.91.woff2 new file mode 100644 index 0000000..2b74675 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.91.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.92.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.92.woff2 new file mode 100644 index 0000000..b0a1d13 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.92.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.93.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.93.woff2 new file mode 100644 index 0000000..b2bb0e9 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.93.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.94.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.94.woff2 new file mode 100644 index 0000000..17dbad2 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.94.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.95.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.95.woff2 new file mode 100644 index 0000000..9221cbd Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.95.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.96.woff2 b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.96.woff2 new file mode 100644 index 0000000..003b080 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Black/HarmonyOS_Sans_SC_Black.96.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Black/font.css b/resources/font/HarmonyOS_Sans_SC_Black/font.css new file mode 100644 index 0000000..9a2a6d1 --- /dev/null +++ b/resources/font/HarmonyOS_Sans_SC_Black/font.css @@ -0,0 +1,769 @@ +/** generated by https://github.com/voderl/font-slice */ +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.1.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+ff03,U+ff04,U+ff07,U+ff0a,U+ff17-ff19,U+ff1c,U+ff1d,U+ff20-ff3a,U+ff3c,U+ff3e-ff5b,U+ff5d,U+ffe0-ffe4; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.2.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+f92c,U+f979,U+fa11,U+fe30,U+fe31,U+fe33-fe44,U+fe49-fe52,U+fe54-fe57,U+fe59-fe66,U+fe68-fe6b; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.3.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+9f3d,U+9f3e,U+9f41,U+9f4a,U+9f4b,U+9f51,U+9f52,U+9f61-9f63,U+9f66,U+9f67,U+9f80,U+9f81,U+9f83,U+9f85-9f8d,U+9f90,U+9f91,U+9f94-9f96,U+9f98,U+9f9b,U+9f9c,U+9f9e,U+9fa0,U+9fa2; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.4.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+9dfa,U+9e0a,U+9e11,U+9e1a,U+9e1e,U+9e20,U+9e22,U+9e28-9e2c,U+9e2e-9e33,U+9e35-9e3b,U+9e3e,U+9e40-9e44,U+9e46-9e4e,U+9e51,U+9e53,U+9e55-9e58,U+9e5a-9e5c,U+9e5e-9e63,U+9e66-9e6e,U+9e71,U+9e73,U+9e75,U+9e78,U+9e79,U+9e7c-9e7e,U+9e82,U+9e86-9e88,U+9e8b,U+9e8c,U+9e90,U+9e91,U+9e93,U+9e95,U+9e97,U+9e9d,U+9ea4,U+9ea5,U+9ea9,U+9eaa,U+9eb4,U+9eb5,U+9eb8-9eba,U+9ebc-9ebf,U+9ec3,U+9ec9,U+9ecd,U+9ed0,U+9ed2,U+9ed3,U+9ed5,U+9ed6,U+9ed9,U+9edc,U+9edd,U+9edf,U+9ee0,U+9ee2,U+9ee5,U+9ee7-9eea,U+9eef,U+9ef1,U+9ef3,U+9ef4,U+9ef6,U+9ef9,U+9efb,U+9efc,U+9efe,U+9f0b,U+9f0d,U+9f10,U+9f14,U+9f17,U+9f19,U+9f22,U+9f29,U+9f2c,U+9f2f,U+9f31,U+9f37,U+9f39; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.5.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+9c3b,U+9c40,U+9c47-9c49,U+9c53,U+9c57,U+9c64,U+9c72,U+9c77,U+9c78,U+9c7b,U+9c7f,U+9c80,U+9c82,U+9c83,U+9c85-9c8c,U+9c8e-9c92,U+9c94-9c9b,U+9c9e-9ca3,U+9ca5-9ca7,U+9ca9,U+9cab,U+9cad,U+9cae,U+9cb1-9cb7,U+9cb9-9cbd,U+9cbf,U+9cc0,U+9cc3,U+9cc5-9cc7,U+9cc9-9cd1,U+9cd3-9cda,U+9cdc,U+9cdd,U+9cdf,U+9ce1-9ce3,U+9ce5,U+9ce9,U+9cee,U+9cef,U+9cf3,U+9cf4,U+9cf6,U+9cfc,U+9cfd,U+9d02,U+9d08,U+9d09,U+9d12,U+9d1b,U+9d1e,U+9d26,U+9d28,U+9d37,U+9d3b,U+9d3f,U+9d51,U+9d59,U+9d5c,U+9d5d,U+9d5f-9d61,U+9d6c,U+9d70,U+9d72,U+9d7a,U+9d7e,U+9d84,U+9d89,U+9d8f,U+9d92,U+9daf,U+9db4,U+9db8,U+9dbc,U+9dc4,U+9dc7,U+9dc9,U+9dd7,U+9ddf,U+9df2,U+9df9; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.6.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+9a5f,U+9a62,U+9a65,U+9a69,U+9a6b,U+9a6e,U+9a75,U+9a77-9a7a,U+9a7d,U+9a80,U+9a83,U+9a85,U+9a87-9a8a,U+9a8d,U+9a8e,U+9a90,U+9a92,U+9a93,U+9a95,U+9a96,U+9a98,U+9a99,U+9a9b-9aa2,U+9aa5,U+9aa7,U+9aaf-9ab1,U+9ab5,U+9ab6,U+9ab9,U+9aba,U+9abc,U+9ac0-9ac4,U+9ac8,U+9acb,U+9acc,U+9ace,U+9acf,U+9ad1,U+9ad2,U+9ad9,U+9adf,U+9ae1,U+9ae3,U+9aea,U+9aeb,U+9aed-9aef,U+9af4,U+9af9,U+9afb,U+9b03,U+9b04,U+9b06,U+9b08,U+9b0d,U+9b0f,U+9b10,U+9b13,U+9b18,U+9b1a,U+9b1f,U+9b22,U+9b23,U+9b25,U+9b27,U+9b28,U+9b2a,U+9b2f,U+9b31,U+9b32,U+9b3b,U+9b43,U+9b46-9b49,U+9b4d,U+9b4e,U+9b51,U+9b56,U+9b58,U+9b5a,U+9b5c,U+9b5f,U+9b61,U+9b62,U+9b6f,U+9b77,U+9b80,U+9b88,U+9b8b,U+9b8e,U+9b91,U+9b9f,U+9ba0,U+9ba8,U+9baa,U+9bab,U+9bad,U+9bae,U+9bb0,U+9bb1,U+9bb8,U+9bc9,U+9bca,U+9bd3,U+9bd6,U+9bdb,U+9be8,U+9bf0,U+9bf1,U+9c02,U+9c10,U+9c15,U+9c24,U+9c2d,U+9c32,U+9c39; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.7.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+98c8,U+98cf-98d6,U+98da,U+98db,U+98dd,U+98e1,U+98e2,U+98e7-98ea,U+98ec,U+98ee,U+98ef,U+98f2,U+98f4,U+98fc-98fe,U+9903,U+9905,U+9908,U+990a,U+990c,U+990d,U+9913,U+9914,U+9918,U+991a,U+991b,U+991e,U+9921,U+9928,U+992c,U+992e,U+9935,U+9938,U+9939,U+993d,U+993e,U+9945,U+994b,U+994c,U+9951,U+9952,U+9954,U+9955,U+9957,U+995e,U+9963,U+9966-9969,U+996b,U+996c,U+996f,U+9974,U+9975,U+9977-9979,U+997d,U+997e,U+9980,U+9981,U+9983,U+9984,U+9987,U+998a,U+998b,U+998d-9991,U+9993-9995,U+9997,U+9998,U+99a5,U+99ab-99ae,U+99b1,U+99b3,U+99b4,U+99bc,U+99bf,U+99c1,U+99c3-99c6,U+99cc,U+99d0,U+99d2,U+99d5,U+99db,U+99dd,U+99e1,U+99ed,U+99f1,U+99ff,U+9a01,U+9a03,U+9a04,U+9a0e,U+9a0f,U+9a11-9a13,U+9a19,U+9a1b,U+9a28,U+9a2b,U+9a30,U+9a32,U+9a37,U+9a40,U+9a45,U+9a4a,U+9a4d,U+9a4e,U+9a52,U+9a55,U+9a57,U+9a5a,U+9a5b; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.8.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+972a,U+972d,U+9730,U+973d,U+9742,U+9744,U+9748,U+9749,U+9750,U+9751,U+975a-975c,U+9763,U+9765,U+9766,U+976c,U+976d,U+9773,U+9776,U+977a,U+977c,U+9784,U+9785,U+978e,U+978f,U+9791,U+9792,U+9794,U+9795,U+9798,U+979a,U+979e,U+97a3,U+97a5,U+97a6,U+97a8,U+97ab,U+97ac,U+97ae,U+97af,U+97b2,U+97b4,U+97c6,U+97cb,U+97cc,U+97d3,U+97d8,U+97dc,U+97e1,U+97ea,U+97eb,U+97ee,U+97fb,U+97fe,U+97ff,U+9801-9803,U+9805,U+9806,U+9808,U+980c,U+9810-9814,U+9817,U+9818,U+981e,U+9820,U+9821,U+9824,U+9828,U+982b-982d,U+9830,U+9834,U+9838,U+9839,U+983c,U+9846,U+984d-984f,U+9851,U+9852,U+9854,U+9855,U+9857,U+9858,U+985a,U+985b,U+9862,U+9863,U+9865,U+9867,U+986b,U+986f-9871,U+9877,U+9878,U+987c,U+9880,U+9883,U+9885,U+9889,U+988b-988f,U+9893-9895,U+9899-989b,U+989e,U+989f,U+98a1,U+98a2,U+98a5-98a7,U+98a9,U+98af,U+98b1,U+98b6,U+98ba,U+98be,U+98c3,U+98c4,U+98c6,U+98c7; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.9.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+95b9-95ca,U+95cc,U+95cd,U+95d4-95d6,U+95d8,U+95e1,U+95e2,U+95e9,U+95f0,U+95f1,U+95f3,U+95f6,U+95fc,U+95fe,U+95ff,U+9602-9604,U+9606-960d,U+960f,U+9611-9613,U+9615-9617,U+9619-961b,U+961d,U+9621,U+9628,U+962f,U+963c-963e,U+9641,U+9642,U+9649,U+9654,U+965b-965f,U+9661,U+9663,U+9665,U+9667,U+9668,U+966c,U+9670,U+9672-9674,U+9678,U+967a,U+967d,U+9682,U+9685,U+9688,U+968a,U+968d,U+968e,U+9695,U+9697,U+9698,U+969e,U+96a0,U+96a3,U+96a4,U+96a8,U+96aa,U+96b0,U+96b1,U+96b3,U+96b4,U+96b7-96b9,U+96bb-96bd,U+96c9,U+96cb,U+96ce,U+96d1,U+96d2,U+96d6,U+96d9,U+96db,U+96dc,U+96de,U+96e0,U+96e3,U+96e9,U+96eb,U+96f0-96f2,U+96f9,U+96ff,U+9701,U+9702,U+9705,U+9708,U+970a,U+970e,U+970f,U+9711,U+9719,U+9727; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.10.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+94e7-94ec,U+94ee-94f1,U+94f3,U+94f5,U+94f7,U+94f9,U+94fb-94fd,U+94ff,U+9503,U+9504,U+9506,U+9507,U+9509,U+950a,U+950d-950f,U+9511-9518,U+951a-9520,U+9522,U+9528-952d,U+9530-953a,U+953c-953f,U+9543-9546,U+9548-9550,U+9552-9555,U+9557-955b,U+955d-9568,U+956a-956d,U+9570-9574,U+9583,U+9586,U+9589,U+958e,U+958f,U+9591,U+9592,U+9594,U+9598,U+9599,U+959e-95a0,U+95a2-95a6,U+95a8-95b2,U+95b4,U+95b8; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.11.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+9410-941a,U+941c-942b,U+942d,U+942e,U+9432,U+9433,U+9435,U+9438,U+943a,U+943e,U+9444,U+944a,U+9451,U+9452,U+945a,U+9462,U+9463,U+9465,U+9470-9487,U+948a-9492,U+9494-9498,U+949a,U+949c,U+949d,U+94a1,U+94a3,U+94a4,U+94a8,U+94aa-94ad,U+94af,U+94b2,U+94b4-94ba,U+94bc-94c0,U+94c4,U+94c6-94db,U+94de-94e6; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.12.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+92b7,U+92b9,U+92c1,U+92c5,U+92c6,U+92c8,U+92cc,U+92d0,U+92d2,U+92e4,U+92ea,U+92ec,U+92ed,U+92f0,U+92f3,U+92f8,U+92fc,U+9304,U+9306,U+9310,U+9312,U+9315,U+9318,U+931a,U+931e,U+9320-9322,U+9324,U+9326-9329,U+932b,U+932c,U+932f,U+9331,U+9332,U+9335,U+9336,U+933e,U+9340,U+9341,U+934a-9360,U+9362,U+9363,U+9365-936b,U+936e,U+9375,U+937e,U+9382,U+938a,U+938c,U+938f,U+9393,U+9394,U+9396,U+9397,U+939a,U+93a2,U+93a7,U+93ac-93cd,U+93d0,U+93d1,U+93d6-93d8,U+93de,U+93df,U+93e1,U+93e2,U+93e4,U+93f8,U+93fb,U+93fd,U+940e,U+940f; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.13.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+914c,U+914e-9150,U+9154,U+9157,U+915a,U+915d,U+915e,U+9161-9164,U+9169,U+9170,U+9172,U+9174,U+9179,U+917a,U+917d,U+917e,U+9182,U+9183,U+9185,U+918c,U+918d,U+9190,U+9191,U+919a,U+919c,U+91a1-91a4,U+91a8,U+91aa-91af,U+91b4,U+91b5,U+91b8,U+91ba,U+91be,U+91c0,U+91c1,U+91c6,U+91c8,U+91cb,U+91d0,U+91d2,U+91d7,U+91d8,U+91dd,U+91e3,U+91e6,U+91e7,U+91ed,U+91f0,U+91f5,U+91f9,U+9200,U+9205,U+9207-920a,U+920d,U+920e,U+9210,U+9214,U+9215,U+921c,U+921e,U+9221,U+9223-9227,U+9229,U+922a,U+922d,U+9234,U+9235,U+9237,U+9239,U+923a,U+923c-9240,U+9244-9246,U+9249,U+924e,U+924f,U+9251,U+9253,U+9257,U+925b,U+925e,U+9262,U+9264-9266,U+9268,U+926c,U+926f,U+9271,U+927b,U+927e,U+9280,U+9283,U+9285-928a,U+928e,U+9291,U+9293,U+9296,U+9298,U+929c,U+929d,U+92a8,U+92ab-92ae,U+92b3,U+92b6; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.14.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+8fe2-8fe5,U+8fe8,U+8fe9,U+8fee,U+8ff3,U+8ff4,U+8ff8,U+8ffa,U+9004,U+900b,U+9011,U+9015,U+9016,U+901e,U+9021,U+9026,U+902d,U+902f,U+9031,U+9035,U+9036,U+9039,U+903a,U+9041,U+9044-9046,U+904a,U+904f-9052,U+9054,U+9055,U+9058,U+9059,U+905b-905e,U+9060-9062,U+9068,U+9069,U+906f,U+9072,U+9074,U+9076-907a,U+907c,U+907d,U+9081,U+9083,U+9085,U+9087-908b,U+908f,U+9095,U+9097,U+9099-909b,U+909d,U+90a0,U+90a1,U+90a8,U+90a9,U+90ac,U+90b0,U+90b2-90b4,U+90b6,U+90b8,U+90ba,U+90bd,U+90be,U+90c3-90c5,U+90c7,U+90c8,U+90cf,U+90d0,U+90d3,U+90d5,U+90d7,U+90da-90dc,U+90de,U+90e2,U+90e4,U+90e6,U+90e7,U+90ea,U+90eb,U+90ef,U+90f4,U+90f5,U+90f7,U+90fe-9100,U+9104,U+9109,U+910c,U+9112,U+9114,U+9115,U+9118,U+911c,U+911e,U+9120,U+9122,U+9123,U+9127,U+912d,U+912f-9132,U+9139,U+913a,U+9143,U+9146,U+9149,U+914a; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.15.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+8e2d-8e31,U+8e34,U+8e35,U+8e39,U+8e3a,U+8e3d,U+8e40-8e42,U+8e47,U+8e49-8e4b,U+8e50-8e53,U+8e59,U+8e5a,U+8e5f,U+8e60,U+8e64,U+8e69,U+8e6c,U+8e70,U+8e74,U+8e76,U+8e7a-8e7c,U+8e7f,U+8e84,U+8e85,U+8e87,U+8e89,U+8e8b,U+8e8d,U+8e8f,U+8e90,U+8e94,U+8e99,U+8e9c,U+8e9e,U+8eaa,U+8eac,U+8eb0,U+8eb6,U+8ec0,U+8ec6,U+8eca-8ece,U+8ed2,U+8eda,U+8edf,U+8ee2,U+8eeb,U+8ef8,U+8efb-8efe,U+8f03,U+8f09,U+8f0b,U+8f12-8f15,U+8f1b,U+8f1d,U+8f1f,U+8f29,U+8f2a,U+8f2f,U+8f36,U+8f38,U+8f3b,U+8f3e,U+8f3f,U+8f44,U+8f45,U+8f49,U+8f4d,U+8f4e,U+8f5f,U+8f6b,U+8f6d,U+8f71-8f73,U+8f75,U+8f76,U+8f78-8f7a,U+8f7c,U+8f7e,U+8f81,U+8f82,U+8f84,U+8f87,U+8f8a,U+8f8b,U+8f8d-8f8f,U+8f94,U+8f95,U+8f97-8f9a,U+8fa6,U+8fad-8faf,U+8fb2,U+8fb5-8fb7,U+8fba-8fbc,U+8fbf,U+8fc2,U+8fcb,U+8fcd,U+8fd3,U+8fd5,U+8fd7,U+8fda; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.16.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+8caf,U+8cb0,U+8cb3,U+8cb4,U+8cb6-8cb9,U+8cbb-8cbd,U+8cbf-8cc4,U+8cc7,U+8cc8,U+8cca,U+8ccd,U+8cd1,U+8cd3,U+8cdb,U+8cdc,U+8cde,U+8ce0,U+8ce2-8ce4,U+8ce6-8ce8,U+8cea,U+8ced,U+8cf4,U+8cf8,U+8cfa,U+8cfc,U+8cfd,U+8d04,U+8d05,U+8d07,U+8d08,U+8d0a,U+8d0d,U+8d0f,U+8d13,U+8d14,U+8d16,U+8d1b,U+8d20,U+8d2e,U+8d30,U+8d32,U+8d33,U+8d36,U+8d3b,U+8d3d,U+8d40,U+8d42,U+8d43,U+8d45,U+8d46,U+8d48-8d4a,U+8d4d,U+8d51,U+8d53,U+8d55,U+8d59,U+8d5c,U+8d5d,U+8d5f,U+8d61,U+8d66,U+8d67,U+8d6a,U+8d6d,U+8d71,U+8d73,U+8d84,U+8d90,U+8d91,U+8d94,U+8d95,U+8d99,U+8da8,U+8daf,U+8db1,U+8db5,U+8db8,U+8dba,U+8dbc,U+8dbf,U+8dc2,U+8dc4,U+8dc6,U+8dcb,U+8dce,U+8dcf,U+8dd6,U+8dd7,U+8dda,U+8ddb,U+8dde,U+8de1,U+8de3,U+8de4,U+8de9,U+8deb,U+8dec,U+8df0,U+8df1,U+8df6-8dfd,U+8e05,U+8e07,U+8e09,U+8e0a,U+8e0c,U+8e0e,U+8e10,U+8e14,U+8e1d-8e1f,U+8e23,U+8e26,U+8e2b,U+8e2c; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.17.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+8b5e,U+8b60,U+8b6c,U+8b6f,U+8b70,U+8b72,U+8b74,U+8b77,U+8b7d,U+8b80,U+8b83,U+8b8a,U+8b8c,U+8b90,U+8b93,U+8b99,U+8b9a,U+8ba0,U+8ba3,U+8ba5-8ba7,U+8baa-8bac,U+8bb3-8bb5,U+8bb7,U+8bb9,U+8bc2,U+8bc3,U+8bc5,U+8bcb,U+8bcc,U+8bce-8bd0,U+8bd2-8bd4,U+8bd6,U+8bd8,U+8bd9,U+8bdc,U+8bdf,U+8be3,U+8be4,U+8be7-8be9,U+8beb,U+8bec,U+8bee,U+8bf0,U+8bf2,U+8bf3,U+8bf6,U+8bf9,U+8bfc,U+8bfd,U+8bff,U+8c00,U+8c02,U+8c04,U+8c06,U+8c07,U+8c0c,U+8c0f,U+8c11,U+8c12,U+8c14-8c1b,U+8c1d-8c21,U+8c24,U+8c25,U+8c27,U+8c2a-8c2c,U+8c2e-8c30,U+8c32-8c36,U+8c3f,U+8c47-8c4c,U+8c4e-8c50,U+8c54-8c56,U+8c62,U+8c68,U+8c6c,U+8c73,U+8c78,U+8c7a,U+8c82,U+8c85,U+8c89,U+8c8a,U+8c8d,U+8c8e,U+8c90,U+8c93,U+8c94,U+8c98,U+8c9d,U+8c9e,U+8ca0-8ca2,U+8ca7-8cac; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.18.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+8a02,U+8a03,U+8a07-8a0a,U+8a0e,U+8a0f,U+8a13,U+8a15-8a18,U+8a1a,U+8a1b,U+8a1d,U+8a1f,U+8a22,U+8a23,U+8a25,U+8a2b,U+8a2d,U+8a31,U+8a33,U+8a34,U+8a36-8a38,U+8a3a,U+8a3c,U+8a3e,U+8a40,U+8a41,U+8a46,U+8a48,U+8a50,U+8a52,U+8a54,U+8a55,U+8a58,U+8a5b,U+8a5d-8a63,U+8a66,U+8a69-8a6b,U+8a6d,U+8a6e,U+8a70,U+8a72,U+8a73,U+8a7a,U+8a85,U+8a87,U+8a8a,U+8a8c,U+8a8d,U+8a90-8a92,U+8a95,U+8a98,U+8aa0,U+8aa1,U+8aa3-8aa6,U+8aa8,U+8aa9,U+8aac-8aae,U+8ab0,U+8ab2,U+8ab8,U+8ab9,U+8abc,U+8abe,U+8abf,U+8ac7,U+8acf,U+8ad2,U+8ad6,U+8ad7,U+8adb,U+8adc,U+8adf,U+8ae1,U+8ae6-8ae8,U+8aeb,U+8aed,U+8aee,U+8af1,U+8af3,U+8af4,U+8af7,U+8af8,U+8afa,U+8afe,U+8b00-8b02,U+8b07,U+8b0a,U+8b0c,U+8b0e,U+8b10,U+8b17,U+8b19,U+8b1b,U+8b1d,U+8b20,U+8b21,U+8b26,U+8b28,U+8b2c,U+8b33,U+8b39,U+8b3e,U+8b3f,U+8b41,U+8b45,U+8b49,U+8b4c,U+8b4f,U+8b57,U+8b58,U+8b5a,U+8b5c; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.19.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+8869,U+886a,U+886e,U+886f,U+8872,U+8879,U+887d-887f,U+8882,U+8884-8886,U+8888,U+888f,U+8892,U+8893,U+889b,U+88a2,U+88a4,U+88a6,U+88a8,U+88aa,U+88ae,U+88b1,U+88b4,U+88b7,U+88bc,U+88c0,U+88c6-88c9,U+88ce,U+88cf,U+88d1-88d3,U+88d8,U+88db-88dd,U+88df,U+88e1-88e3,U+88e5,U+88e8,U+88ec,U+88f0,U+88f1,U+88f3,U+88f4,U+88fc-88fe,U+8900,U+8902,U+8906,U+8907,U+8909-890c,U+8912-8915,U+8918-891b,U+8921,U+8925,U+892b,U+8930,U+8932,U+8934,U+8936,U+893b,U+893d,U+8941,U+894c,U+8955,U+8956,U+8959,U+895c,U+895e-8960,U+8966,U+896a,U+896c,U+896f,U+8970,U+8972,U+897b,U+897e,U+8980,U+8983,U+8985,U+8987,U+8988,U+898c,U+898f,U+8993,U+8997,U+899a,U+89a1,U+89a7,U+89a9,U+89aa,U+89b2,U+89b3,U+89b7,U+89c0,U+89c7,U+89ca-89cc,U+89ce-89d1,U+89d6,U+89da,U+89dc,U+89de,U+89e5,U+89e7,U+89eb,U+89ef,U+89f1,U+89f3,U+89f4,U+89f8,U+89ff,U+8a01; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.20.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+86e4,U+86e6,U+86e9,U+86ed,U+86ef-86f4,U+86f8,U+86f9,U+86fb,U+86fe,U+8703,U+8706-870a,U+870d,U+8711-8713,U+871a,U+871e,U+8722,U+8723,U+8725,U+8729,U+872e,U+8731,U+8734,U+8737,U+873a,U+873b,U+873e-8740,U+8742,U+8747,U+8748,U+8753,U+8755,U+8757,U+8758,U+875d,U+875f,U+8762-8766,U+8768,U+876e,U+8770,U+8772,U+8775,U+8778,U+877b-877e,U+8782,U+8785,U+8788,U+878b,U+8793,U+8797,U+879a,U+879e-87a0,U+87a2,U+87a3,U+87a8,U+87ab-87ad,U+87af,U+87b3,U+87b5,U+87bd,U+87c0,U+87c4,U+87c6,U+87ca,U+87cb,U+87d1,U+87d2,U+87db,U+87dc,U+87de,U+87e0,U+87e5,U+87ea,U+87ec,U+87ee,U+87f2,U+87f3,U+87fb,U+87fd,U+87fe,U+8802,U+8803,U+8805,U+880a,U+880b,U+880d,U+8813-8816,U+8819,U+881b,U+881f,U+8821,U+8823,U+8831,U+8832,U+8835,U+8836,U+8839,U+883b,U+883c,U+8844,U+8846,U+884a,U+884e,U+8852,U+8853,U+8855,U+8859,U+885b,U+885d,U+885e,U+8862,U+8864; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.21.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+8532,U+8534,U+8535,U+8538-853a,U+853c,U+8543,U+8545,U+8548,U+854e,U+8553,U+8556,U+8557,U+8559,U+855e,U+8561,U+8564,U+8565,U+8568-856a,U+856d,U+856f,U+8570,U+8572,U+8576,U+8579-857b,U+8580,U+8585,U+8586,U+8588,U+858a,U+858f,U+8591,U+8594,U+8599,U+859c,U+85a2,U+85a4,U+85a6,U+85a8,U+85a9,U+85ab,U+85ac,U+85ae,U+85b7-85b9,U+85be,U+85c1,U+85c7,U+85cd,U+85d0,U+85d3,U+85d5,U+85dc,U+85dd,U+85df,U+85e0,U+85e5,U+85e6,U+85e8-85ea,U+85f4,U+85f9,U+85fe,U+85ff,U+8602,U+8605-8607,U+860a,U+860b,U+8616,U+8618,U+861a,U+8627,U+8629,U+862d,U+8638,U+863c,U+863f,U+864d,U+864f,U+8652-8655,U+865b,U+865c,U+865f,U+8662,U+8667,U+866c,U+866e,U+8671,U+8675,U+867a-867c,U+867f,U+868b,U+868d,U+8693,U+869c,U+869d,U+86a1,U+86a3,U+86a4,U+86a7-86a9,U+86ac,U+86af-86b1,U+86b4-86b6,U+86ba,U+86c0,U+86c4,U+86c6,U+86c9,U+86ca,U+86cd-86d1,U+86d4,U+86d8,U+86de,U+86df; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.22.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+83b4,U+83b6,U+83b8,U+83ba,U+83bc,U+83bd,U+83bf,U+83c0,U+83c2,U+83c5,U+83c8,U+83c9,U+83cb,U+83d1,U+83d3-83d6,U+83d8,U+83db,U+83dd,U+83df,U+83e1,U+83e5,U+83ea,U+83eb,U+83f0,U+83f4,U+83f8,U+83f9,U+83fb,U+83fd,U+83ff,U+8401,U+8406,U+840a,U+840b,U+840f,U+8411,U+8418,U+841c,U+8420,U+8422-8424,U+8426,U+8429,U+842c,U+8438,U+8439,U+843b,U+843c,U+843f,U+8446,U+8447,U+8449,U+844e,U+8451,U+8452,U+8456,U+8459,U+845a,U+845c,U+8462,U+8466,U+846d,U+846f,U+8470,U+8473,U+8476-8478,U+847a,U+847d,U+8484,U+8485,U+8487,U+8489,U+848c,U+848e,U+8490,U+8493,U+8494,U+8497,U+849b,U+849e,U+849f,U+84a1,U+84a5,U+84a8,U+84af,U+84b4,U+84b9-84bf,U+84c1,U+84c2,U+84c5-84c7,U+84ca,U+84cb,U+84cd,U+84d0,U+84d1,U+84d3,U+84d6,U+84df,U+84e0,U+84e2,U+84e3,U+84e5-84e7,U+84ee,U+84f3,U+84f6,U+84fa,U+84fc,U+84ff,U+8500,U+850c,U+8511,U+8514,U+8515,U+8517,U+8518,U+851f,U+8523,U+8525,U+8526,U+8529,U+852b,U+852d; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.23.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+82a9-82ab,U+82ae,U+82b0,U+82b2,U+82b4-82b6,U+82bc,U+82be,U+82c0-82c2,U+82c4-82c8,U+82ca-82cc,U+82ce,U+82d0,U+82d2,U+82d3,U+82d5,U+82d6,U+82d8,U+82d9,U+82dc-82de,U+82e0-82e4,U+82e7,U+82e9-82eb,U+82ed,U+82ee,U+82f3,U+82f4,U+82f7,U+82f8,U+82fa-8301,U+8306-8308,U+830c,U+830d,U+830f,U+8311,U+8313-8315,U+8318,U+831a,U+831b,U+831d,U+8324,U+8327,U+832a,U+832c,U+832d,U+832f,U+8331-8334,U+833a-833c,U+8340,U+8343-8345,U+8347,U+8348,U+834a,U+834c,U+834f,U+8351,U+8356,U+8358-835c,U+835e,U+8360,U+8364-8366,U+8368-836a,U+836c-836e,U+8373,U+8378,U+837b-837d,U+837f,U+8380,U+8382,U+8388,U+838a,U+838b,U+8392,U+8394,U+8396,U+8398,U+8399,U+839b,U+839c,U+83a0,U+83a2,U+83a3,U+83a8-83aa,U+83ae-83b0,U+83b3; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.24.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+814d,U+814e,U+8151,U+8153,U+8158-815a,U+815e,U+8160,U+8166-8169,U+816b,U+816d,U+8171,U+8173,U+8174,U+8178,U+817c,U+817d,U+8182,U+8188,U+8191,U+8198-819b,U+81a0,U+81a3,U+81a5,U+81a6,U+81a9,U+81b6,U+81ba,U+81bb,U+81bd,U+81bf,U+81c1,U+81c3,U+81c6,U+81c9,U+81ca,U+81cc,U+81cd,U+81d1,U+81d3,U+81d4,U+81d8,U+81db,U+81dc,U+81de,U+81df,U+81e5,U+81e7-81e9,U+81eb,U+81ec,U+81ee,U+81ef,U+81f5,U+81f8,U+81fa,U+81fc,U+81fe,U+8200-8202,U+8204,U+8208-820a,U+820e-8210,U+8216-8218,U+821b,U+821c,U+8221-8224,U+8226-8228,U+822b,U+822d,U+822f,U+8232-8234,U+8237,U+8238,U+823a,U+823b,U+823e,U+8244,U+8249,U+824b,U+824f,U+8259,U+825a,U+825f,U+8266,U+8268,U+826e,U+8271,U+8276-8279,U+827d,U+827f,U+8283,U+8284,U+8288-828a,U+828d-8291,U+8293,U+8294,U+8296-8298,U+829f-82a1,U+82a3,U+82a4,U+82a7,U+82a8; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.25.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+7ffa,U+7ffe,U+8004,U+8006,U+800b,U+800e,U+8011,U+8012,U+8014,U+8016,U+8018,U+8019,U+801c,U+801e,U+8026-802a,U+8031,U+8034,U+8035,U+8037,U+8043,U+804b,U+804d,U+8052,U+8056,U+8059,U+805e,U+8061,U+8068,U+8069,U+806e-8074,U+8076-8078,U+807c-8080,U+8082,U+8084,U+8085,U+8088,U+808f,U+8093,U+809c,U+809f,U+80ab,U+80ad,U+80ae,U+80b1,U+80b6-80b8,U+80bc,U+80bd,U+80c2,U+80c4,U+80ca,U+80cd,U+80d1,U+80d4,U+80d7,U+80d9-80db,U+80dd,U+80e0,U+80e4,U+80e5,U+80e7-80ed,U+80ef-80f1,U+80f3,U+80f4,U+80fc,U+8101,U+8104,U+8105,U+8107,U+8108,U+810c-810e,U+8112-8115,U+8117-8119,U+811b-811f,U+8121-8130,U+8132-8134,U+8137,U+8139,U+813f,U+8140,U+8142,U+8146,U+8148; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.26.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+7ed7,U+7edb,U+7ee0-7ee2,U+7ee5,U+7ee6,U+7ee8,U+7eeb,U+7ef0-7ef2,U+7ef6,U+7efa,U+7efb,U+7efe,U+7f01-7f04,U+7f08,U+7f0a-7f12,U+7f17,U+7f19,U+7f1b,U+7f1c,U+7f1f,U+7f21-7f23,U+7f25-7f28,U+7f2a-7f33,U+7f35-7f37,U+7f3d,U+7f42,U+7f44,U+7f45,U+7f4c,U+7f4d,U+7f52,U+7f54,U+7f58,U+7f59,U+7f5d,U+7f5f-7f61,U+7f63,U+7f65,U+7f68,U+7f70,U+7f71,U+7f73-7f75,U+7f77,U+7f79,U+7f7d,U+7f7e,U+7f85,U+7f86,U+7f88,U+7f89,U+7f8b,U+7f8c,U+7f90,U+7f91,U+7f94-7f96,U+7f98-7f9b,U+7f9d,U+7f9f,U+7fa3,U+7fa7-7fa9,U+7fac-7fb2,U+7fb4,U+7fb6,U+7fb8,U+7fbc,U+7fbf,U+7fc0,U+7fc3,U+7fca,U+7fcc,U+7fce,U+7fd2,U+7fd5,U+7fd9-7fdb,U+7fdf,U+7fe3,U+7fe5-7fe7,U+7fe9,U+7feb,U+7fec,U+7fee,U+7fef,U+7ff1,U+7ff3,U+7ff4,U+7ff9; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.27.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+7dc4,U+7dc7,U+7dc8,U+7dca-7dcd,U+7dcf,U+7dd1,U+7dd2,U+7dd4,U+7dd6-7dd8,U+7dda-7de0,U+7de2-7de6,U+7de8-7ded,U+7def,U+7df1-7df5,U+7df7,U+7df9,U+7dfb,U+7dfc,U+7dfe-7e02,U+7e04,U+7e08-7e0b,U+7e12,U+7e1b,U+7e1e,U+7e20,U+7e22,U+7e23,U+7e26,U+7e29,U+7e2b,U+7e2e,U+7e2f,U+7e31,U+7e37,U+7e39-7e3e,U+7e40,U+7e43,U+7e44,U+7e46,U+7e47,U+7e4a,U+7e4b,U+7e4d,U+7e4e,U+7e51,U+7e54-7e56,U+7e58-7e5b,U+7e5d,U+7e5e,U+7e61,U+7e66,U+7e67,U+7e69-7e6b,U+7e6d,U+7e70,U+7e73,U+7e77,U+7e79,U+7e7b-7e7d,U+7e81,U+7e82,U+7e8c,U+7e8d,U+7e8f,U+7e92-7e94,U+7e96,U+7e98,U+7e9a-7e9c,U+7e9e,U+7e9f,U+7ea1,U+7ea3,U+7ea5,U+7ea8,U+7ea9,U+7eab,U+7ead,U+7eae,U+7eb0,U+7ebb,U+7ebe,U+7ec0-7ec2,U+7ec9,U+7ecb,U+7ecc,U+7ed0,U+7ed4; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.28.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+7ccc,U+7ccd,U+7cd7,U+7cdc,U+7cde,U+7ce0,U+7ce4,U+7ce5,U+7ce7,U+7ce8,U+7cec,U+7cf0,U+7cf5-7cf9,U+7cfc,U+7cfe,U+7d00,U+7d04-7d0b,U+7d0d,U+7d10-7d14,U+7d17-7d19,U+7d1b-7d1f,U+7d21,U+7d24-7d26,U+7d28-7d2a,U+7d2c-7d2e,U+7d30,U+7d31,U+7d33,U+7d35,U+7d36,U+7d38-7d3a,U+7d40,U+7d42-7d44,U+7d46,U+7d4b,U+7d4c,U+7d4f,U+7d51,U+7d54-7d56,U+7d58,U+7d5b,U+7d5c,U+7d5e,U+7d61-7d63,U+7d66,U+7d68,U+7d6a-7d6c,U+7d6f,U+7d71-7d73,U+7d75-7d77,U+7d79,U+7d7a,U+7d7e,U+7d81,U+7d84-7d8b,U+7d8d,U+7d8f,U+7d91,U+7d94,U+7d96,U+7d98-7d9a,U+7d9c-7da0,U+7da2,U+7da6,U+7daa-7db1,U+7db4-7db8,U+7dba-7dbf,U+7dc1; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.29.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+7bc3,U+7bc4,U+7bc6,U+7bc8-7bcc,U+7bd1,U+7bd3,U+7bd4,U+7bd9,U+7bda,U+7bdd,U+7be0,U+7be1,U+7be4-7be6,U+7be9,U+7bea,U+7bef,U+7bf4,U+7bf6,U+7bfc,U+7bfe,U+7c01,U+7c03,U+7c07,U+7c08,U+7c0a-7c0d,U+7c0f,U+7c11,U+7c15,U+7c16,U+7c19,U+7c1e-7c21,U+7c23,U+7c24,U+7c26,U+7c28-7c33,U+7c35,U+7c37-7c3b,U+7c3d,U+7c3e,U+7c40,U+7c41,U+7c43,U+7c47,U+7c48,U+7c4c,U+7c50,U+7c53,U+7c54,U+7c59,U+7c5f,U+7c60,U+7c63-7c65,U+7c6c,U+7c6e,U+7c72,U+7c74,U+7c79,U+7c7a,U+7c7c,U+7c81,U+7c82,U+7c84,U+7c85,U+7c88,U+7c8a-7c91,U+7c93-7c96,U+7c99,U+7c9b-7c9e,U+7ca0-7ca2,U+7ca6-7ca9,U+7cac,U+7caf-7cb3,U+7cb5-7cb7,U+7cba-7cbd,U+7cbf-7cc2,U+7cc5,U+7cc7-7cc9; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.30.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+7aca,U+7ad1,U+7ad2,U+7ada-7add,U+7ae1,U+7ae4,U+7ae6,U+7af4-7af7,U+7afa,U+7afb,U+7afd-7b0a,U+7b0c,U+7b0e,U+7b0f,U+7b13,U+7b15,U+7b16,U+7b18,U+7b19,U+7b1e-7b20,U+7b22-7b25,U+7b29-7b2b,U+7b2d,U+7b2e,U+7b30-7b3b,U+7b3e,U+7b3f,U+7b41,U+7b42,U+7b44-7b47,U+7b4a,U+7b4c-7b50,U+7b58,U+7b5a,U+7b5c,U+7b60,U+7b66,U+7b67,U+7b69,U+7b6c-7b6f,U+7b72-7b76,U+7b7b-7b7d,U+7b7f,U+7b82,U+7b85,U+7b87,U+7b8b-7b96,U+7b98,U+7b99,U+7b9b-7b9f,U+7ba2-7ba4,U+7ba6-7bac,U+7bae-7bb0,U+7bb4,U+7bb7-7bb9,U+7bbb,U+7bc0,U+7bc1; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.31.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+797c,U+797e-7980,U+7982,U+7986,U+7987,U+7989-798e,U+7992,U+7994,U+7995,U+7997,U+7998,U+799a-799c,U+799f,U+79a3-79a6,U+79a8-79ac,U+79ae-79b1,U+79b3-79b5,U+79b8,U+79ba,U+79bf,U+79c2,U+79c6,U+79c8,U+79cf,U+79d5,U+79d6,U+79dd,U+79de,U+79e3,U+79e7,U+79e8,U+79eb,U+79ed,U+79f4,U+79f7,U+79f8,U+79fa,U+79fe,U+7a02,U+7a03,U+7a05,U+7a0a,U+7a14,U+7a17,U+7a19,U+7a1c,U+7a1e,U+7a1f,U+7a23,U+7a25,U+7a26,U+7a2c,U+7a2e,U+7a30-7a32,U+7a36,U+7a37,U+7a39,U+7a3c,U+7a40,U+7a42,U+7a47,U+7a49,U+7a4c-7a4f,U+7a51,U+7a55,U+7a5b,U+7a5d,U+7a5e,U+7a62,U+7a63,U+7a66,U+7a68,U+7a69,U+7a6b,U+7a70,U+7a78,U+7a80,U+7a85-7a88,U+7a8a,U+7a90,U+7a93-7a96,U+7a98,U+7a9b,U+7a9c,U+7a9e,U+7aa0,U+7aa1,U+7aa3,U+7aa8-7aaa,U+7aac-7ab0,U+7ab3,U+7ab8,U+7aba,U+7abd-7abf,U+7ac4,U+7ac5,U+7ac7,U+7ac8; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.32.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+783e,U+7841-7844,U+7847-7849,U+784b,U+784c,U+784e-7854,U+7856,U+7857,U+7859,U+785a,U+7865,U+7869,U+786a,U+786d,U+786f,U+7876,U+7877,U+787c,U+787e,U+787f,U+7881,U+7887-7889,U+7893,U+7894,U+7898-789e,U+78a1,U+78a3,U+78a5,U+78a9,U+78ad,U+78b2,U+78b4,U+78b6,U+78b9,U+78ba,U+78bc,U+78bf,U+78c3,U+78c9,U+78cb,U+78d0-78d2,U+78d4,U+78d9,U+78da,U+78dc,U+78de,U+78e1,U+78e5,U+78e6,U+78ea,U+78ec,U+78ef,U+78f1,U+78f2,U+78f4,U+78fa,U+78fb,U+78fe,U+7901,U+7902,U+7905,U+7907,U+7909,U+790b,U+790c,U+790e,U+7910,U+7913,U+7919-791b,U+791e,U+791f,U+7921,U+7924,U+7926,U+792a,U+792b,U+7934,U+7936,U+7939,U+793b,U+793d,U+7940,U+7942,U+7943,U+7945-7947,U+7949,U+794a,U+794c,U+794e-7951,U+7953-7955,U+7957-795a,U+795c,U+795f,U+7960,U+7962,U+7964,U+7966,U+7967,U+7969,U+796b,U+796f,U+7972,U+7974,U+7979,U+797b; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.33.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+770f,U+7712,U+7714,U+7716,U+7719-771b,U+771e,U+7721,U+7722,U+7726,U+7728,U+772b-7730,U+7732-7736,U+7739,U+773a,U+773d-773f,U+7743,U+7746,U+7747,U+774c-774f,U+7751,U+7752,U+7758-775a,U+775c-775e,U+7762,U+7765,U+7766,U+7768-776a,U+776c,U+776d,U+7771,U+7772,U+777a,U+777c-777e,U+7780,U+7785,U+7787,U+778b-778d,U+778f-7791,U+7793,U+779e-77a0,U+77a2,U+77a5,U+77ad,U+77af,U+77b4-77b7,U+77bd-77c0,U+77c2,U+77c5,U+77c7,U+77cd,U+77d6,U+77d7,U+77d9,U+77da,U+77dd,U+77de,U+77e7,U+77ea,U+77ec,U+77ef,U+77f8,U+77fb,U+77fd,U+77fe,U+7800,U+7803,U+7806,U+7809,U+780f-7812,U+7815,U+7817,U+7818,U+781a-781f,U+7821-7823,U+7825-7827,U+7829,U+782b-7830,U+7832,U+7833,U+7835,U+7837,U+7839-783c; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.34.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+760a-760e,U+7610-7619,U+761b-761d,U+761f-7622,U+7625,U+7627-762a,U+762e-7630,U+7632-7635,U+7638-763a,U+763c,U+763d,U+763f,U+7640,U+7642,U+7643,U+7647,U+7648,U+764d,U+764e,U+7652,U+7654,U+7658,U+765a,U+765c,U+765e,U+765f,U+7661-7663,U+7665,U+7669,U+766c,U+766e,U+766f,U+7671-7673,U+7675,U+7676,U+7678-767a,U+767f,U+7681,U+7683,U+7688,U+768a-768c,U+768e,U+7690-7692,U+7695,U+7698,U+769a,U+769b,U+769d-76a0,U+76a2,U+76a4-76a7,U+76ab,U+76ac,U+76af,U+76b0,U+76b2,U+76b4,U+76b5,U+76ba,U+76bb,U+76bf,U+76c2,U+76c3,U+76c5,U+76c9,U+76cc-76ce,U+76dc-76de,U+76e1-76ea,U+76f1,U+76f9-76fb,U+76fd,U+76ff,U+7700,U+7703,U+7704,U+7707,U+7708,U+770c-770e; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.35.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+74ef,U+74f4,U+74ff,U+7501,U+7503,U+7505,U+7508,U+750d,U+750f,U+7511,U+7513,U+7515,U+7517,U+7519,U+7521-7527,U+752a,U+752c,U+752d,U+752f,U+7534,U+7536,U+753a,U+753e,U+7540,U+7544,U+7547-754b,U+754d,U+754e,U+7550-7553,U+7556,U+7557,U+755a,U+755b,U+755d,U+755e,U+7560,U+7562,U+7564,U+7566-7568,U+756b,U+756c,U+756f-7573,U+7575,U+7579-757c,U+757e,U+757f,U+7581-7584,U+7587,U+7589-758e,U+7590,U+7592,U+7594,U+7596,U+7599,U+759a,U+759d,U+759f,U+75a0,U+75a3,U+75a5,U+75a8,U+75ac,U+75ad,U+75b0,U+75b1,U+75b3-75b5,U+75b8,U+75bd,U+75c1-75c4,U+75c8-75ca,U+75cc,U+75cd,U+75d4,U+75d6,U+75d9,U+75de,U+75e0,U+75e2-75e4,U+75e6-75ea,U+75f1-75f3,U+75f7,U+75f9,U+75fa,U+75fc,U+75fe-7601,U+7603,U+7605,U+7606,U+7608,U+7609; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.36.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+73e7-73ea,U+73ee-73f0,U+73f2,U+73f4,U+73f5,U+73f7,U+73f9,U+73fa,U+73fc,U+73fd,U+73ff-7402,U+7404,U+7407,U+7408,U+740a-740f,U+7418,U+741a-741c,U+741e,U+7424,U+7425,U+7428,U+7429,U+742c-7430,U+7432,U+7435,U+7436,U+7438-743b,U+743e-7441,U+7443-7446,U+7448,U+744a,U+744b,U+7452,U+7457,U+745b,U+745d,U+7460,U+7462-7465,U+7467-746a,U+746d,U+746f,U+7471,U+7473,U+7474,U+7477,U+747a,U+747e,U+7481,U+7482,U+7484,U+7486,U+7488-748b,U+748e,U+748f,U+7493,U+7498,U+749a,U+749c-74a0,U+74a3,U+74a6,U+74a9,U+74aa,U+74ae,U+74b0-74b2,U+74b6,U+74b8-74ba,U+74bd,U+74bf,U+74c1,U+74c3,U+74c5,U+74c8,U+74ca,U+74cc,U+74cf,U+74d1,U+74d2,U+74d4,U+74d5,U+74d8-74db,U+74de-74e0,U+74e2,U+74e4,U+74e5,U+74e7-74e9,U+74ee; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.37.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+72dd-72df,U+72e1,U+72e5,U+72e6,U+72e8,U+72ef,U+72f0,U+72f2-72f4,U+72f6,U+72f7,U+72f9-72fb,U+72fd,U+7300-7304,U+7307,U+730a-730c,U+7313-7317,U+731d-7322,U+7327,U+7329,U+732c,U+732d,U+7330,U+7331,U+7333,U+7335-7337,U+7339,U+733d,U+733e,U+7340,U+7342,U+7344,U+7345,U+734a,U+734d-7350,U+7352,U+7355,U+7357,U+7359,U+735f,U+7360,U+7362,U+7363,U+7365,U+7368,U+736c,U+736d,U+736f,U+7370,U+7372,U+7374-7376,U+7378,U+737a,U+737b,U+737d,U+737e,U+7382,U+7383,U+7386,U+7388,U+738a,U+738c-7393,U+7395,U+7397-739a,U+739c,U+739e,U+73a0-73a3,U+73a5-73a8,U+73aa,U+73ad,U+73b1,U+73b3,U+73b6,U+73b7,U+73b9,U+73c2,U+73c5-73c9,U+73cc,U+73ce-73d0,U+73d2,U+73d6,U+73d9,U+73db-73de,U+73e3,U+73e5,U+73e6; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.38.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+719c,U+71a0,U+71a4,U+71a5,U+71a8,U+71af,U+71b1-71bc,U+71be,U+71c1,U+71c2,U+71c4,U+71c8-71cb,U+71ce-71d0,U+71d2,U+71d4,U+71d9,U+71da,U+71dc,U+71df,U+71e0,U+71e6-71e8,U+71ea,U+71ed,U+71ee,U+71f4,U+71f6,U+71f9,U+71fb,U+71fc,U+71ff,U+7200,U+7207,U+720c,U+720d,U+7210,U+7216,U+721a-721e,U+7223,U+7228,U+722b,U+722d,U+722e,U+7230,U+7232,U+723a-723c,U+723e-7242,U+7246,U+724b,U+724d,U+724e,U+7252,U+7256,U+7258,U+725a,U+725c,U+725d,U+7260,U+7264-7266,U+726a,U+726c,U+726e,U+726f,U+7271,U+7273,U+7274,U+7278,U+727b,U+727d,U+727e,U+7281,U+7282,U+7284,U+7287,U+728a,U+728d,U+728f,U+7292,U+729b,U+729f,U+72a0,U+72a7,U+72ad,U+72ae,U+72b0-72b5,U+72b7,U+72b8,U+72ba-72be,U+72c0,U+72c1,U+72c3,U+72c5,U+72c6,U+72c8,U+72cc-72ce,U+72d2,U+72d6,U+72db; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.39.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+7005,U+7006,U+7009,U+700b,U+700d,U+7015,U+7018,U+701b,U+701d-701f,U+7023,U+7026-7028,U+702c,U+702e-7030,U+7035,U+7037,U+7039,U+703a,U+703c-703e,U+7044,U+7049-704b,U+704f,U+7051,U+7058,U+705a,U+705c-705e,U+7061,U+7064,U+7066,U+706c,U+707d,U+7080,U+7081,U+7085,U+7086,U+708a,U+708f,U+7091,U+7094,U+7095,U+7098,U+7099,U+709c,U+709d,U+709f,U+70a4,U+70a9,U+70aa,U+70af-70b2,U+70b4-70b7,U+70bb,U+70c0,U+70c3,U+70c7,U+70cb,U+70ce,U+70cf,U+70d4,U+70d9,U+70da,U+70dc,U+70dd,U+70e0,U+70e9,U+70ec,U+70f7,U+70fa,U+70fd,U+70ff,U+7104,U+7108,U+7109,U+710c,U+7110,U+7113,U+7114,U+7116-7118,U+711c,U+711e,U+7120,U+712e,U+712f,U+7131,U+713c,U+7142,U+7144-7147,U+7149-714b,U+7150,U+7152,U+7155,U+7156,U+7159,U+715a,U+715c,U+7161,U+7165,U+7166,U+7168,U+7169,U+716d,U+7173,U+7174,U+7176,U+7178,U+717a,U+717d,U+717f,U+7180,U+7184,U+7186-7188,U+7192,U+7198; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.40.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+6ed8,U+6ed9,U+6edb,U+6edd,U+6edf,U+6ee0,U+6ee2,U+6ee6,U+6eea,U+6eec,U+6eee,U+6eef,U+6ef2,U+6ef3,U+6ef7-6efa,U+6efe,U+6f01,U+6f03,U+6f08,U+6f09,U+6f15,U+6f16,U+6f19,U+6f22-6f25,U+6f28-6f2a,U+6f2c,U+6f2d,U+6f2f,U+6f31,U+6f32,U+6f36-6f38,U+6f3f,U+6f43-6f46,U+6f48,U+6f4b,U+6f4e,U+6f4f,U+6f51,U+6f54-6f57,U+6f59-6f5b,U+6f5e,U+6f5f,U+6f61,U+6f64-6f67,U+6f69-6f6c,U+6f6f-6f72,U+6f74-6f76,U+6f78-6f7e,U+6f80-6f83,U+6f86,U+6f89,U+6f8b-6f8d,U+6f90,U+6f92,U+6f94,U+6f97,U+6f98,U+6f9b,U+6fa3-6fa5,U+6fa7,U+6faa,U+6faf,U+6fb1,U+6fb4,U+6fb6,U+6fb9,U+6fc1-6fcb,U+6fd1-6fd3,U+6fd5,U+6fdb,U+6fde-6fe1,U+6fe4,U+6fe9,U+6feb,U+6fec,U+6fee-6ff1,U+6ffa,U+6ffe; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.41.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+6dc3,U+6dc5,U+6dc6,U+6dc9,U+6dcc,U+6dcf,U+6dd2,U+6dd3,U+6dd6,U+6dd9-6dde,U+6de0,U+6de4,U+6de6,U+6de8-6dea,U+6dec,U+6def,U+6df0,U+6df5,U+6df6,U+6df8,U+6dfa,U+6dfc,U+6e03,U+6e04,U+6e07-6e09,U+6e0b,U+6e0c,U+6e0e,U+6e11,U+6e13,U+6e15,U+6e16,U+6e19-6e1b,U+6e1e,U+6e1f,U+6e22,U+6e25-6e27,U+6e2b,U+6e2c,U+6e36,U+6e37,U+6e39,U+6e3a,U+6e3c-6e41,U+6e44,U+6e45,U+6e47,U+6e49-6e4b,U+6e4d,U+6e4e,U+6e51,U+6e53-6e55,U+6e5c-6e5f,U+6e61-6e63,U+6e65-6e67,U+6e6a,U+6e6b,U+6e6d-6e70,U+6e72-6e74,U+6e76-6e78,U+6e7c,U+6e80-6e82,U+6e86,U+6e87,U+6e89,U+6e8d,U+6e8f,U+6e96,U+6e98,U+6e9d-6e9f,U+6ea1,U+6ea5-6ea7,U+6eab,U+6eb1,U+6eb2,U+6eb4,U+6eb7,U+6ebb-6ebd,U+6ebf-6ec6,U+6ec8,U+6ec9,U+6ecc,U+6ecf,U+6ed0,U+6ed3,U+6ed4,U+6ed7; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.42.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+6cb2,U+6cb4,U+6cb5,U+6cb7,U+6cba,U+6cbc,U+6cbd,U+6cc1-6cc3,U+6cc5-6cc7,U+6cd0-6cd4,U+6cd6,U+6cd7,U+6cd9,U+6cda,U+6cde-6ce0,U+6ce4,U+6ce6,U+6ce9,U+6ceb-6cef,U+6cf1,U+6cf2,U+6cf6,U+6cf7,U+6cfa,U+6cfe,U+6d03-6d05,U+6d07,U+6d08,U+6d0a,U+6d0c,U+6d0e-6d11,U+6d13,U+6d14,U+6d16,U+6d18-6d1a,U+6d1c,U+6d1f,U+6d22,U+6d23,U+6d26-6d29,U+6d2b,U+6d2e-6d30,U+6d33,U+6d35,U+6d36,U+6d38-6d3a,U+6d3c,U+6d3f,U+6d42-6d44,U+6d48,U+6d49,U+6d4d,U+6d50,U+6d52,U+6d54,U+6d56-6d58,U+6d5a-6d5c,U+6d5e,U+6d60,U+6d61,U+6d63-6d65,U+6d67,U+6d6c,U+6d6d,U+6d6f,U+6d75,U+6d7b-6d7d,U+6d87,U+6d8a,U+6d8e,U+6d90-6d9a,U+6d9c-6da0,U+6da2,U+6da3,U+6da7,U+6daa-6dac,U+6dae,U+6db3,U+6db4,U+6db6,U+6db8,U+6dbc,U+6dbf,U+6dc2; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.43.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+6b85,U+6b86,U+6b89,U+6b8d,U+6b91-6b93,U+6b95,U+6b97,U+6b98,U+6b9a,U+6b9b,U+6b9e,U+6ba1-6ba4,U+6ba9,U+6baa,U+6bad,U+6baf,U+6bb0,U+6bb2,U+6bb3,U+6bba-6bbd,U+6bc0,U+6bc2,U+6bc6,U+6bca-6bcc,U+6bce,U+6bd0,U+6bd1,U+6bd3,U+6bd6-6bd8,U+6bda,U+6be1,U+6be6,U+6bec,U+6bf1,U+6bf3-6bf5,U+6bf9,U+6bfd,U+6c05-6c08,U+6c0d,U+6c10,U+6c15-6c1a,U+6c21,U+6c23-6c26,U+6c29-6c2d,U+6c30-6c33,U+6c35-6c37,U+6c39,U+6c3a,U+6c3c-6c3f,U+6c46,U+6c4a-6c4c,U+6c4e-6c50,U+6c54,U+6c56,U+6c59-6c5c,U+6c5e,U+6c63,U+6c67-6c69,U+6c6b,U+6c6d,U+6c6f,U+6c72-6c74,U+6c78-6c7a,U+6c7c,U+6c84-6c87,U+6c8b,U+6c8c,U+6c8f,U+6c91,U+6c93-6c96,U+6c98,U+6c9a,U+6c9d,U+6ca2-6ca4,U+6ca8,U+6ca9,U+6cac-6cae,U+6cb1; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.44.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+6a01,U+6a06,U+6a09,U+6a0b,U+6a11,U+6a13,U+6a17-6a19,U+6a1b,U+6a1e,U+6a23,U+6a28,U+6a29,U+6a2b,U+6a2f,U+6a30,U+6a35,U+6a38-6a40,U+6a46-6a48,U+6a4a,U+6a4b,U+6a4e,U+6a50,U+6a52,U+6a5b,U+6a5e,U+6a62,U+6a65-6a67,U+6a6b,U+6a79,U+6a7c,U+6a7e,U+6a7f,U+6a84,U+6a86,U+6a8e,U+6a90,U+6a91,U+6a94,U+6a97,U+6a9c,U+6a9e,U+6aa0,U+6aa2,U+6aa4,U+6aa9,U+6aab,U+6aae-6ab0,U+6ab2,U+6ab3,U+6ab5,U+6ab7,U+6ab8,U+6aba,U+6abb,U+6abd,U+6abf,U+6ac2-6ac4,U+6ac6,U+6ac8,U+6acc,U+6ace,U+6ad2,U+6ad3,U+6ad8-6adc,U+6adf,U+6ae0,U+6ae4,U+6ae5,U+6ae7,U+6ae8,U+6afb,U+6b04,U+6b05,U+6b0d-6b13,U+6b16,U+6b17,U+6b19,U+6b24,U+6b25,U+6b2c,U+6b37-6b39,U+6b3b,U+6b3d,U+6b43,U+6b46,U+6b4e,U+6b50,U+6b53,U+6b54,U+6b58,U+6b59,U+6b5b,U+6b60,U+6b69,U+6b6d,U+6b6f,U+6b70,U+6b73,U+6b74,U+6b77-6b7a,U+6b80-6b84; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.45.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+68e1,U+68e3,U+68e4,U+68e6-68ed,U+68ef,U+68f0,U+68f2,U+68f4,U+68f6,U+68f7,U+68f9,U+68fb-68fd,U+68ff-6902,U+6906-6908,U+690b,U+6910,U+691a-691c,U+691f,U+6920,U+6924,U+6925,U+692a,U+692d,U+6934,U+6939,U+693c-6945,U+694a,U+694b,U+6952-6954,U+6957,U+6959,U+695b,U+695d,U+695f,U+6962-6964,U+6966,U+6968-696c,U+696e,U+696f,U+6971,U+6973,U+6974,U+6978,U+6979,U+697d,U+697f,U+6980,U+6985,U+6987-698a,U+698d,U+698e,U+6994-6999,U+699b,U+69a3,U+69a4,U+69a6,U+69a7,U+69ab,U+69ad,U+69ae,U+69b1,U+69b7,U+69bb,U+69bc,U+69c1,U+69c3-69c5,U+69c7,U+69ca-69ce,U+69d0,U+69d1,U+69d3,U+69d4,U+69d7-69da,U+69e0,U+69e4,U+69e6,U+69ec,U+69ed,U+69f1-69f3,U+69f8,U+69fa-69fc,U+69fe-6a00; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.46.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+6792,U+6793,U+6796,U+6798,U+679e-67a1,U+67a5,U+67a7-67a9,U+67ac,U+67ad,U+67b0,U+67b1,U+67b3,U+67b5,U+67b7,U+67b9,U+67bb,U+67bc,U+67c0,U+67c1,U+67c3,U+67c5-67ca,U+67d1,U+67d2,U+67d7-67d9,U+67dd-67df,U+67e2-67e4,U+67e6-67e9,U+67f0,U+67f5,U+67f7,U+67f8,U+67fa,U+67fb,U+67fd,U+67fe,U+6800,U+6801,U+6803,U+6804,U+6806,U+6809,U+680a,U+680c,U+680e,U+6812,U+681d-681f,U+6822,U+6824-6829,U+682b-682d,U+6831-6835,U+683b,U+683e,U+6840,U+6841,U+6844,U+6845,U+6849,U+684e,U+6853,U+6855,U+6856,U+685c,U+685d,U+685f-6862,U+6864,U+6866-6868,U+686b,U+686f,U+6872,U+6874,U+6877,U+687f,U+6883,U+6886,U+688f,U+689b,U+689f,U+68a0,U+68a2,U+68a3,U+68b1,U+68b6,U+68b9,U+68ba,U+68bc-68bf,U+68c1-68c4,U+68c6,U+68c8,U+68ca,U+68cc,U+68d0,U+68d1,U+68d3,U+68d7,U+68dd,U+68df; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.47.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+663a,U+663b,U+663d,U+6641,U+6644,U+6645,U+6649,U+664c,U+664f,U+6654,U+6659,U+665b,U+665d,U+665e,U+6660-6667,U+6669,U+666b,U+666c,U+6671,U+6673,U+6677-6679,U+667c,U+6680,U+6681,U+6684,U+6685,U+6688,U+6689,U+668b-668e,U+6690,U+6692,U+6695,U+6698,U+669a,U+669d,U+669f,U+66a0,U+66a2,U+66a3,U+66a6,U+66aa,U+66ab,U+66b1,U+66b2,U+66b5,U+66b8,U+66b9,U+66bb,U+66be,U+66c1,U+66c6-66c9,U+66cc,U+66d5-66d8,U+66da-66dc,U+66de-66e2,U+66e8-66ea,U+66ec,U+66f1,U+66f3,U+66f7,U+66fa,U+66fd,U+6702,U+6705,U+670a,U+670f,U+6710,U+6713,U+6715,U+6719,U+6722,U+6723,U+6725-6727,U+6729,U+672d,U+672e,U+6732,U+6733,U+6736,U+6739,U+673b,U+673f,U+6744,U+6748,U+674c,U+674d,U+6753,U+6755,U+6762,U+6767,U+6769-676c,U+676e,U+6772,U+6773,U+6775,U+6777,U+677a-677d,U+6782,U+6783,U+6787,U+678a-678d,U+678f; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.48.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+64f8,U+64fa,U+64fc,U+64fe,U+64ff,U+6503,U+6509,U+650f,U+6514,U+6518,U+651c-651e,U+6522-6525,U+652a-652c,U+652e,U+6530-6532,U+6534,U+6535,U+6537,U+6538,U+653a,U+653c,U+653d,U+6542,U+6549-654b,U+654d,U+654e,U+6553-6555,U+6557,U+6558,U+655d,U+6564,U+6569,U+656b,U+656d-656f,U+6571,U+6573,U+6575,U+6576,U+6578-657e,U+6581-6583,U+6585,U+6586,U+6589,U+658e,U+658f,U+6592,U+6593,U+6595,U+6596,U+659b,U+659d,U+659f-65a1,U+65a3,U+65ab,U+65ac,U+65b2,U+65b6,U+65b7,U+65ba,U+65bb,U+65be-65c0,U+65c2-65c4,U+65c6-65c8,U+65cc,U+65ce,U+65d0,U+65d2,U+65d3,U+65d6,U+65db,U+65dd,U+65e1,U+65e3,U+65ee-65f0,U+65f3-65f5,U+65f8,U+65fb,U+65fc,U+65fe-6600,U+6603,U+6607,U+6609,U+660b,U+6610,U+6611,U+6619,U+661a,U+661c-661e,U+6621,U+6624,U+6626,U+662a-662c,U+662e,U+6630,U+6631,U+6633,U+6634,U+6636; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.49.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+63bc,U+63be,U+63c0,U+63c3,U+63c4,U+63c6,U+63c8,U+63cd,U+63ce,U+63d1,U+63d6,U+63da,U+63db,U+63de,U+63e0,U+63e3,U+63e9,U+63ea,U+63ee,U+63f2,U+63f5-63fa,U+63fc,U+63fe-6400,U+6406,U+640b-640d,U+6410,U+6414,U+6416,U+6417,U+641b,U+6420-6423,U+6425-6428,U+642a,U+6431,U+6432,U+6434-6437,U+643d-6442,U+6445,U+6448,U+6450-6452,U+645b-645f,U+6462,U+6465,U+6468,U+646d,U+646f-6471,U+6473,U+6477,U+6479-647d,U+6482-6485,U+6487,U+6488,U+648c,U+6490,U+6493,U+6496-649a,U+649d,U+64a0,U+64a5,U+64ab,U+64ac,U+64b1-64b7,U+64b9-64bb,U+64be-64c1,U+64c4,U+64c7,U+64c9-64cb,U+64d0,U+64d4,U+64d7,U+64d8,U+64da,U+64de,U+64e0-64e2,U+64e4,U+64e9,U+64ec,U+64f0-64f2,U+64f4,U+64f7; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.50.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+623b,U+623d,U+623e,U+6243,U+6246,U+6248,U+6249,U+624c,U+6255,U+6259,U+625e,U+6260,U+6261,U+6265,U+6266,U+626a,U+6271,U+627a,U+627c,U+627d,U+6283,U+6286,U+6289,U+628e,U+6294,U+629c,U+629e,U+629f,U+62a1,U+62a8,U+62ba,U+62bb,U+62bf,U+62c2,U+62c4,U+62c8,U+62ca,U+62cb,U+62ce,U+62cf,U+62d1,U+62d7,U+62d9,U+62da,U+62dd,U+62e0,U+62e1,U+62e3,U+62e4,U+62e7,U+62eb,U+62ee,U+62f0,U+62f4-62f6,U+6308,U+630a-630e,U+6310,U+6312,U+6313,U+6317,U+6319,U+631b,U+631d-631f,U+6322,U+6326,U+6329,U+6331,U+6332,U+6334-6337,U+6339,U+633b,U+633c,U+633e-6340,U+6343,U+6347,U+634b-634e,U+6354,U+635c,U+635d,U+6368,U+6369,U+636d,U+636f-6372,U+6376,U+637a,U+637b,U+637d,U+6382,U+6383,U+6387,U+638a,U+638b,U+638d,U+638e,U+6391,U+6393-6397,U+6399,U+639b,U+639e,U+639f,U+63a1,U+63a3,U+63a4,U+63ac-63ae,U+63b1-63b5,U+63b7-63bb; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.51.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+60fa,U+6100,U+6106,U+610d,U+610e,U+6112,U+6114,U+6115,U+6119,U+611c,U+6120,U+6122,U+6123,U+6126,U+6128-6130,U+6136,U+6137,U+613a,U+613d,U+613e,U+6144,U+6146,U+6147,U+614a,U+614b,U+6151,U+6153,U+6158,U+615a,U+615c,U+615d,U+615f,U+6161,U+6163-6165,U+616b,U+616c,U+616e,U+6171,U+6173-6177,U+617e,U+6182,U+6187,U+618a,U+618d,U+618e,U+6190,U+6191,U+6194,U+6199,U+619a,U+619c,U+619f,U+61a1,U+61a3,U+61a4,U+61a7-61a9,U+61ab-61ad,U+61b2,U+61b3,U+61b5-61b7,U+61ba,U+61bb,U+61bf,U+61c3,U+61c4,U+61c6,U+61c7,U+61c9-61cb,U+61d0,U+61d1,U+61d3,U+61d4,U+61d7,U+61da,U+61df-61e1,U+61e6,U+61ee,U+61f0,U+61f2,U+61f6-61f8,U+61fa,U+61fc-61fe,U+6200,U+6206,U+6207,U+6209,U+620b,U+620d,U+620e,U+6213-6215,U+6217,U+6219,U+621b-6223,U+6225,U+6226,U+622c,U+622e-6230,U+6232,U+6238; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.52.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+5fd1-5fd6,U+5fda-5fde,U+5fe1,U+5fe2,U+5fe4,U+5fe5,U+5fea,U+5fed,U+5fee,U+5ff1-5ff3,U+5ff6,U+5ff8,U+5ffb,U+5ffe,U+5fff,U+6002-6006,U+600a,U+600d,U+600f,U+6014,U+6019,U+601b,U+6020,U+6023,U+6026,U+6029,U+602b,U+602e,U+602f,U+6031,U+6033,U+6035,U+6039,U+603f,U+6041-6043,U+6046,U+604f,U+6053,U+6054,U+6058-605b,U+605d,U+605e,U+6060,U+6063,U+6065,U+6067,U+606a-606c,U+6075,U+6078,U+6079,U+607b,U+607d,U+607f,U+6083,U+6085-6087,U+608a,U+608c,U+608e,U+608f,U+6092,U+6093,U+6095-6097,U+609b-609d,U+60a2,U+60a7,U+60a9-60ab,U+60ad,U+60af-60b1,U+60b3-60b6,U+60b8,U+60bb,U+60bd,U+60be,U+60c0-60c3,U+60c6-60c9,U+60cb,U+60ce,U+60d3,U+60d4,U+60d7-60db,U+60dd,U+60e1-60e4,U+60e6,U+60ea,U+60ec-60ee,U+60f0,U+60f1,U+60f4,U+60f6; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.53.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+5ea3-5ea5,U+5ea8,U+5eab,U+5eaf,U+5eb3,U+5eb5,U+5eb6,U+5eb9,U+5ebe,U+5ec1-5ec3,U+5ec6,U+5ec8,U+5ecb,U+5ecc,U+5ed1,U+5ed2,U+5ed4,U+5ed9-5edb,U+5edd,U+5edf,U+5ee0,U+5ee2,U+5ee3,U+5ee8,U+5eea,U+5eec,U+5eef,U+5ef0,U+5ef3,U+5ef4,U+5ef8,U+5efb,U+5efc,U+5efe,U+5eff,U+5f01,U+5f07,U+5f0b-5f0e,U+5f10-5f12,U+5f14,U+5f1a,U+5f22,U+5f28,U+5f29,U+5f2c,U+5f2d,U+5f35,U+5f36,U+5f38,U+5f3b-5f43,U+5f45-5f4a,U+5f4c-5f4e,U+5f50,U+5f54,U+5f56-5f59,U+5f5b-5f5f,U+5f61,U+5f63,U+5f65,U+5f67,U+5f68,U+5f6b,U+5f6e,U+5f6f,U+5f72-5f78,U+5f7a,U+5f7e,U+5f7f,U+5f82,U+5f83,U+5f87,U+5f89,U+5f8a,U+5f8d,U+5f91,U+5f93,U+5f95,U+5f98,U+5f99,U+5f9c,U+5f9e,U+5fa0,U+5fa6-5fa9,U+5fac,U+5fad,U+5faf,U+5fb3-5fb5,U+5fb9,U+5fbc,U+5fc4,U+5fc9,U+5fcb,U+5fce-5fd0; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.54.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+5d32-5d34,U+5d3c-5d3e,U+5d41-5d44,U+5d46-5d48,U+5d4a,U+5d4b,U+5d4e,U+5d50,U+5d52,U+5d55-5d58,U+5d5a-5d5d,U+5d68,U+5d69,U+5d6b,U+5d6c,U+5d6f,U+5d74,U+5d7f,U+5d82-5d89,U+5d8b,U+5d8c,U+5d8f,U+5d92,U+5d93,U+5d99,U+5d9d,U+5db2,U+5db6,U+5db7,U+5dba,U+5dbc,U+5dbd,U+5dc2,U+5dc3,U+5dc6,U+5dc7,U+5dc9,U+5dcc,U+5dd2,U+5dd4,U+5dd6-5dd8,U+5ddb,U+5ddc,U+5de3,U+5ded,U+5def,U+5df3,U+5df6,U+5dfa-5dfd,U+5dff,U+5e00,U+5e07,U+5e0f,U+5e11,U+5e13,U+5e14,U+5e19-5e1b,U+5e22,U+5e25,U+5e28,U+5e2a,U+5e2f-5e31,U+5e33,U+5e34,U+5e36,U+5e39-5e3c,U+5e3e,U+5e40,U+5e44,U+5e46-5e48,U+5e4c,U+5e4f,U+5e53,U+5e54,U+5e57,U+5e59,U+5e5b,U+5e5e,U+5e5f,U+5e61,U+5e63,U+5e6a,U+5e6b,U+5e75,U+5e77,U+5e79,U+5e7a,U+5e7e,U+5e80,U+5e81,U+5e83,U+5e85,U+5e87,U+5e8b,U+5e91,U+5e92,U+5e96,U+5e98,U+5e9b,U+5e9d,U+5ea0-5ea2; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.55.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+5bf5,U+5bf6,U+5bfe,U+5c02,U+5c03,U+5c05,U+5c07-5c09,U+5c0b,U+5c0c,U+5c0e,U+5c10,U+5c12,U+5c13,U+5c15,U+5c17,U+5c19,U+5c1b,U+5c1c,U+5c1e,U+5c1f,U+5c22,U+5c25,U+5c28,U+5c2a,U+5c2b,U+5c2f,U+5c30,U+5c37,U+5c3b,U+5c43,U+5c44,U+5c46,U+5c47,U+5c4d,U+5c50,U+5c59,U+5c5b,U+5c5c,U+5c62-5c64,U+5c66,U+5c6c,U+5c6e,U+5c74,U+5c78-5c7e,U+5c80,U+5c83,U+5c84,U+5c88,U+5c8b-5c8d,U+5c91,U+5c94-5c96,U+5c98,U+5c99,U+5c9c,U+5c9e,U+5ca1-5ca3,U+5cab,U+5cac,U+5cb1,U+5cb5,U+5cb7,U+5cba,U+5cbd-5cbf,U+5cc1,U+5cc3,U+5cc4,U+5cc7,U+5ccb,U+5cd2,U+5cd8,U+5cd9,U+5cdf,U+5ce0,U+5ce3-5ce6,U+5ce8-5cea,U+5ced,U+5cef,U+5cf3,U+5cf4,U+5cf6,U+5cf8,U+5cfd,U+5d00-5d04,U+5d06,U+5d08,U+5d0b-5d0d,U+5d0f-5d13,U+5d15,U+5d17-5d1a,U+5d1d-5d22,U+5d24-5d27,U+5d2e-5d31; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.56.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+5ab2,U+5ab4,U+5ab5,U+5ab7-5aba,U+5abd-5abf,U+5ac3,U+5ac4,U+5ac6-5ac8,U+5aca,U+5acb,U+5acd,U+5acf-5ad2,U+5ad4,U+5ad8-5ada,U+5adc,U+5adf-5ae2,U+5ae4,U+5ae6,U+5ae8,U+5aea-5aed,U+5af0-5af3,U+5af5,U+5af9-5afb,U+5afd,U+5b01,U+5b05,U+5b08,U+5b0b,U+5b0c,U+5b11,U+5b16,U+5b17,U+5b1b,U+5b21,U+5b22,U+5b24,U+5b27-5b2e,U+5b30,U+5b32,U+5b34,U+5b36-5b38,U+5b3e-5b40,U+5b43,U+5b45,U+5b4a,U+5b4b,U+5b51-5b53,U+5b56,U+5b5a,U+5b5b,U+5b62,U+5b65,U+5b67,U+5b6a-5b6e,U+5b70,U+5b71,U+5b73,U+5b7a,U+5b7b,U+5b7f,U+5b80,U+5b84,U+5b8d,U+5b91,U+5b93-5b95,U+5b9f,U+5ba5,U+5ba6,U+5bac,U+5bae,U+5bb8,U+5bc0,U+5bc3,U+5bcb,U+5bd0,U+5bd1,U+5bd4-5bd8,U+5bda-5bdc,U+5be2,U+5be4-5be7,U+5be9,U+5beb,U+5bec,U+5bee-5bf0,U+5bf2,U+5bf3; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.57.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+5981,U+598f,U+5997,U+5998,U+599a,U+599c,U+599d,U+59a0,U+59a1,U+59a3,U+59a4,U+59a7,U+59aa-59ad,U+59af,U+59b2,U+59b3,U+59b5,U+59b6,U+59b8,U+59ba,U+59bd,U+59be,U+59c0,U+59c1,U+59c3,U+59c4,U+59c7-59ca,U+59cc,U+59cd,U+59cf,U+59d2,U+59d5,U+59d6,U+59d8,U+59d9,U+59db,U+59dd-59e0,U+59e2-59e7,U+59e9-59eb,U+59ee,U+59f1,U+59f3,U+59f5,U+59f7-59f9,U+59fd,U+5a06,U+5a08-5a0a,U+5a0c,U+5a0d,U+5a11-5a13,U+5a15,U+5a16,U+5a1a,U+5a1b,U+5a21-5a23,U+5a2d-5a2f,U+5a32,U+5a38,U+5a3c,U+5a3e-5a45,U+5a47,U+5a4a,U+5a4c,U+5a4d,U+5a4f-5a51,U+5a53,U+5a55-5a57,U+5a5e,U+5a60,U+5a62,U+5a65-5a67,U+5a6a,U+5a6c,U+5a6d,U+5a72,U+5a73,U+5a75,U+5a76,U+5a79-5a7c,U+5a81-5a84,U+5a8c,U+5a8e,U+5a93,U+5a96,U+5a97,U+5a9c,U+5a9e,U+5aa0,U+5aa3,U+5aa4,U+5aaa,U+5aae,U+5aaf,U+5ab1; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.58.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+5831,U+583a,U+583d,U+583f-5842,U+5844-5846,U+5848,U+584a,U+584d,U+5852,U+5857,U+5859,U+585a,U+585c,U+585d,U+5862,U+5868,U+5869,U+586c,U+586d,U+586f-5873,U+5875,U+5879,U+587d,U+587e,U+5880,U+5881,U+5888-588a,U+588d,U+5892,U+5896-5898,U+589a,U+589c,U+589d,U+58a0,U+58a1,U+58a3,U+58a6,U+58a9,U+58ab-58ae,U+58b0,U+58b3,U+58bb-58bf,U+58c2,U+58c3,U+58c5-58c8,U+58ca,U+58cc,U+58ce,U+58d1-58d3,U+58d5,U+58d8,U+58d9,U+58de,U+58df,U+58e2,U+58e9,U+58ec,U+58ef,U+58f1,U+58f2,U+58f5,U+58f7,U+58f8,U+58fa,U+58fd,U+5900,U+5902,U+5906,U+5908-590c,U+590e,U+5910,U+5914,U+5919,U+591b,U+591d,U+591e,U+5920,U+5922-5925,U+5928,U+592c,U+592d,U+592f,U+5932,U+5936,U+593c,U+593e,U+5940-5942,U+5944,U+594c,U+594d,U+5950,U+5953,U+5958,U+595a,U+5961,U+5966-5968,U+596a,U+596c-596e,U+5977,U+597b,U+597c; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.59.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+570a,U+570c,U+570d,U+570f,U+5712,U+5713,U+5718,U+5719,U+571c,U+571e,U+5725,U+5727,U+5729,U+572a,U+572c,U+572e,U+572f,U+5734,U+5735,U+5739,U+573b,U+5741,U+5743,U+5745,U+5749,U+574c,U+574d,U+575c,U+5763,U+5768,U+5769,U+576b,U+576d,U+576e,U+5770,U+5773,U+5775,U+5777,U+577b,U+577c,U+5785,U+5786,U+5788,U+578c,U+578e,U+578f,U+5793-5795,U+5799-57a1,U+57a3,U+57a4,U+57a6-57aa,U+57ac,U+57ad,U+57af-57b2,U+57b4-57b6,U+57b8,U+57b9,U+57bd-57bf,U+57c2,U+57c4-57c8,U+57cc,U+57cd,U+57cf,U+57d2,U+57d5-57de,U+57e1,U+57e2,U+57e4,U+57e5,U+57e7,U+57eb,U+57ed,U+57ef,U+57f4-57f8,U+57fc,U+57fd,U+5800,U+5801,U+5803,U+5805,U+5807,U+5809,U+580b-580e,U+5811,U+5814,U+5819,U+581b-5820,U+5822,U+5823,U+5825,U+5826,U+582c,U+582f; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.60.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+5605,U+5606,U+5608,U+560c,U+560d,U+560f,U+5614,U+5616,U+5617,U+561a,U+561c,U+561e,U+5621-5625,U+5627,U+5629,U+562b-5630,U+5636,U+5638-563a,U+563c,U+5640-5642,U+5649,U+564c-5650,U+5653-5655,U+5657-565b,U+5660,U+5663,U+5664,U+5666,U+566b,U+566f-5671,U+5673-567c,U+567e,U+5684-5687,U+568c,U+568e-5693,U+5695,U+5697,U+569b,U+569c,U+569e,U+569f,U+56a1,U+56a2,U+56a4-56a9,U+56ac-56af,U+56b1,U+56b4,U+56b6-56b8,U+56bf,U+56c1-56c3,U+56c9,U+56cd,U+56d1,U+56d4,U+56d6-56d9,U+56dd,U+56df,U+56e1,U+56e3-56e6,U+56e8-56ec,U+56ee,U+56ef,U+56f1-56f3,U+56f5,U+56f7-56f9,U+56fc,U+56ff,U+5700,U+5703,U+5704,U+5709; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.61.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+5519,U+551b,U+551d,U+551e,U+5520,U+5522,U+5523,U+5526,U+5527,U+552a-552c,U+5530,U+5532-5535,U+5537,U+5538,U+553b-5541,U+5543,U+5544,U+5547-5549,U+554b,U+554d,U+5550,U+5553,U+5555-5558,U+555b-555f,U+5567-5569,U+556b-5572,U+5574-5577,U+557b,U+557c,U+557e,U+557f,U+5581,U+5583,U+5585,U+5586,U+5588,U+558b,U+558c,U+558e-5591,U+5593,U+5599,U+559a,U+559f,U+55a5,U+55a6,U+55a8-55ac,U+55ae,U+55b0-55b3,U+55b6,U+55b9,U+55ba,U+55bc-55be,U+55c4,U+55c6,U+55c7,U+55c9,U+55cc-55d2,U+55d4-55db,U+55dd-55df,U+55e1,U+55e3-55e6,U+55ea-55ee,U+55f0-55f3,U+55f5-55f7,U+55fb,U+55fe,U+5600,U+5601; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.62.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+53fb-5400,U+5402,U+5405-5407,U+540b,U+540f,U+5412,U+5414,U+5416,U+5418-541a,U+541d,U+5420-5423,U+5425,U+5429,U+542a,U+542d,U+542e,U+5431-5433,U+5436,U+543d,U+543f,U+5442,U+5443,U+5449,U+544b,U+544c,U+544e,U+5451-5454,U+5456,U+5459,U+545b,U+545c,U+5461,U+5463,U+5464,U+546a-5472,U+5474,U+5476-5478,U+547a,U+547e-5484,U+5486,U+548a,U+548d,U+548e,U+5490,U+5491,U+5494,U+5497-5499,U+549b,U+549d,U+54a1-54a7,U+54a9,U+54ab,U+54ad,U+54b4,U+54b5,U+54b9,U+54bb,U+54be,U+54bf,U+54c2,U+54c3,U+54c9-54cc,U+54cf,U+54d0,U+54d3,U+54d5,U+54d6,U+54d9,U+54da,U+54dc-54de,U+54e2,U+54e7,U+54f3,U+54f4,U+54f8,U+54f9,U+54fd-54ff,U+5501,U+5504-5506,U+550c-550f,U+5511-5514,U+5516,U+5517; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.63.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+52a2,U+52a6,U+52a7,U+52ac,U+52ad,U+52af,U+52b4,U+52b5,U+52b9,U+52bb,U+52bc,U+52be,U+52c1,U+52c5,U+52ca,U+52cd,U+52d0,U+52d6,U+52d7,U+52d9,U+52db,U+52dd,U+52de,U+52e0,U+52e2,U+52e3,U+52e5,U+52e7-52f0,U+52f2,U+52f3,U+52f5-52f9,U+52fb,U+52fc,U+5302,U+5304,U+530b,U+530d,U+530f,U+5310,U+5315,U+531a,U+531c,U+531d,U+5321,U+5323,U+5326,U+532e-5331,U+5338,U+533c-533e,U+5340,U+5344,U+5345,U+534b-534d,U+5350,U+5354,U+5358,U+535d-535f,U+5363,U+5368,U+5369,U+536c,U+536e,U+536f,U+5372,U+5379-537b,U+537d,U+538d,U+538e,U+5390,U+5393,U+5394,U+5396,U+539b-539d,U+53a0,U+53a1,U+53a3-53a5,U+53a9,U+53ad,U+53ae,U+53b0,U+53b2,U+53b3,U+53b5-53b8,U+53bc,U+53be,U+53c1,U+53c3-53c7,U+53ce,U+53cf,U+53d2,U+53d3,U+53d5,U+53da,U+53de,U+53df,U+53e1,U+53e2,U+53e7-53e9,U+53f1,U+53f4,U+53f5,U+53fa; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.64.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+5110,U+5113,U+5115,U+5117,U+5118,U+511a-511c,U+511e,U+511f,U+5121,U+5128,U+512b-512d,U+5131-5135,U+5137-5139,U+513c,U+5140,U+5142,U+5147,U+514c,U+514e-5150,U+5155-5158,U+5162,U+5169,U+5172,U+517f,U+5181-5184,U+5186,U+5187,U+518b,U+518f,U+5191,U+5195-5197,U+519a,U+51a2,U+51a3,U+51a6-51ab,U+51ad,U+51ae,U+51b1,U+51b4,U+51bc,U+51bd,U+51bf,U+51c3,U+51c7,U+51c8,U+51ca,U+51cb,U+51cd,U+51ce,U+51d4,U+51d6,U+51db,U+51dc,U+51e6,U+51e8-51eb,U+51f1,U+51f5,U+51fc,U+51ff,U+5202,U+5205,U+5208,U+520b,U+520d,U+520e,U+5215,U+5216,U+5228,U+522a,U+522c,U+522d,U+5233,U+523c,U+523d,U+523f,U+5240,U+5245,U+5247,U+5249,U+524b,U+524c,U+524e,U+5250,U+525b-525f,U+5261,U+5263,U+5264,U+5270,U+5273,U+5275,U+5277,U+527d,U+527f,U+5281-5285,U+5287,U+5289,U+528b,U+528d,U+528f,U+5291-5293,U+529a; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.65.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+4fe3,U+4fe4,U+4fe6,U+4fe8,U+4feb-4fed,U+4ff3,U+4ff5,U+4ff6,U+4ff8,U+4ffe,U+5001,U+5005,U+5006,U+5009,U+500c,U+500f,U+5013-5018,U+501b-501e,U+5022-5025,U+5027,U+5028,U+502b-502e,U+5030,U+5033,U+5034,U+5036-5039,U+503b,U+5041-5043,U+5045,U+5046,U+5048-504a,U+504c-504e,U+5051,U+5053,U+5055-5057,U+505b,U+505e,U+5060,U+5062,U+5063,U+5067,U+506a,U+506c,U+5070-5072,U+5074,U+5075,U+5078,U+507b,U+507d,U+507e,U+5080,U+5088,U+5089,U+5091,U+5092,U+5095,U+5097-509e,U+50a2,U+50a3,U+50a5-50a7,U+50a9,U+50ad,U+50b3,U+50b5,U+50b7,U+50ba,U+50be,U+50c4,U+50c5,U+50c7,U+50ca,U+50cd,U+50d1,U+50d5,U+50d6,U+50da,U+50de,U+50e5,U+50e6,U+50ec-50ee,U+50f0,U+50f1,U+50f3,U+50f9-50fb,U+50fe-5102,U+5104,U+5106,U+5107,U+5109-510b,U+510d,U+510f; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.66.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+4eb8,U+4eb9,U+4ebb-4ebe,U+4ec2-4ec4,U+4ec8,U+4ec9,U+4ecc,U+4ecf,U+4ed0,U+4ed2,U+4eda,U+4edb,U+4edd-4ee1,U+4ee6-4ee9,U+4eeb,U+4eee,U+4eef,U+4ef3-4ef5,U+4ef8-4efa,U+4efc,U+4f00,U+4f03-4f05,U+4f08,U+4f09,U+4f0b,U+4f0e,U+4f12,U+4f13,U+4f15,U+4f1b,U+4f1d,U+4f21,U+4f22,U+4f25,U+4f27-4f29,U+4f2b-4f2e,U+4f31-4f33,U+4f36,U+4f37,U+4f39,U+4f3e,U+4f40,U+4f41,U+4f43,U+4f47-4f49,U+4f54,U+4f57,U+4f58,U+4f5d,U+4f5e,U+4f61,U+4f62,U+4f64,U+4f65,U+4f67,U+4f6a,U+4f6e,U+4f6f,U+4f72,U+4f74-4f7e,U+4f80-4f82,U+4f84,U+4f89,U+4f8a,U+4f8e-4f98,U+4f9e,U+4fa1,U+4fa5,U+4fa9,U+4faa,U+4fac,U+4fb3,U+4fb6-4fb8,U+4fbd,U+4fc2,U+4fc5,U+4fc6,U+4fcd,U+4fce,U+4fd0,U+4fd1,U+4fd3,U+4fda-4fdc,U+4fdf,U+4fe0,U+4fe2; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.67.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+3127-3129,U+3220-3229,U+3231,U+32a3,U+338e,U+338f,U+339c-339e,U+33c4,U+33d1,U+33d2,U+33d5,U+3434,U+34dc,U+34ee,U+353e,U+355d,U+3566,U+3575,U+3592,U+35a0,U+35a1,U+35ad,U+35ce,U+36a2,U+36ab,U+38a8,U+3dab,U+3de7,U+3deb,U+3e1a,U+3f1b,U+3f6d,U+4495,U+4723,U+48fa,U+4ca3,U+4e02,U+4e04-4e06,U+4e0c,U+4e0f,U+4e15,U+4e17,U+4e1f-4e21,U+4e26,U+4e29,U+4e2c,U+4e2f,U+4e31,U+4e35,U+4e37,U+4e3c,U+4e3f-4e42,U+4e44,U+4e46,U+4e47,U+4e57,U+4e5a-4e5c,U+4e64,U+4e65,U+4e67,U+4e69,U+4e6d,U+4e78,U+4e7f-4e82,U+4e85,U+4e87,U+4e8a,U+4e8d,U+4e93,U+4e96,U+4e98,U+4e99,U+4e9c,U+4e9e-4ea0,U+4ea2,U+4ea3,U+4ea5,U+4eb0,U+4eb1,U+4eb3-4eb6; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.68.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+27e8,U+27e9,U+2ebb,U+3003,U+3005-3007,U+3012,U+3013,U+301d,U+301e,U+3021,U+3023,U+3024,U+3041,U+3043,U+3045,U+3047,U+3049,U+3056,U+3058,U+305c,U+305e,U+3062,U+306c,U+3074,U+3077,U+307a,U+307c,U+307d,U+3080,U+308e,U+3090,U+3091,U+309b,U+309d,U+309e,U+30a5,U+30bc,U+30be,U+30c2,U+30c5,U+30cc,U+30d8,U+30e2,U+30e8,U+30ee,U+30f0-30f2,U+30f4-30f6,U+30fd,U+30fe,U+3105-3126; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.69.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+254b,U+2550,U+2551,U+2554,U+2557,U+255a,U+255b,U+255d,U+255f,U+2560,U+2562,U+2563,U+2565-2567,U+2569,U+256a,U+256c-2572,U+2581-258f,U+2593-2595,U+25a1,U+25b3,U+25bd,U+25ca,U+25cb,U+25e2-25e5,U+2609,U+2640,U+2642; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.70.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+2465-2469,U+2474-249b,U+2500-2509,U+250b-2526,U+2528-2534,U+2536,U+2537,U+253b-2548,U+254a; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.71.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+207f-2083,U+20a6,U+20a8-20ac,U+20b1,U+20b9,U+20ba,U+20bd,U+2105,U+2109,U+2113,U+2116,U+2121,U+2126,U+2196-2199,U+2202,U+2206,U+2208,U+220f,U+2211,U+2212,U+2215,U+221d-2220,U+2223,U+2225,U+2227-222b,U+222e,U+2234-2237,U+223d,U+2248,U+224c,U+2252,U+2260,U+2261,U+2266,U+2267,U+226e,U+226f,U+2295,U+2299,U+22a5,U+22bf,U+2312; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.72.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+1ea0-1ea9,U+1eab-1ead,U+1eaf,U+1eb1,U+1eb3,U+1eb5,U+1eb7,U+1eb9,U+1ebb,U+1ebd,U+1ebe,U+1ec0-1ec3,U+1ec5,U+1ec6,U+1ec9-1ecd,U+1ecf-1ed3,U+1ed5,U+1ed7-1edf,U+1ee1,U+1ee3,U+1ee5-1eeb,U+1eed,U+1eef-1ef1,U+1ef3,U+1ef7,U+1ef9,U+2004-2006,U+2009,U+200a,U+2010,U+2011,U+2015,U+2016,U+201a,U+201e,U+2020,U+2021,U+2025,U+2027,U+2028,U+2030,U+2032,U+2033,U+2035,U+203c,U+2044,U+2060,U+2061,U+2070,U+2074-2078; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.73.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+2bb,U+2bc,U+2c6,U+2c7,U+2c9-2cb,U+2d8-2da,U+2dc,U+2f3,U+302-304,U+306-30a,U+30c,U+323,U+327,U+335,U+338; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.74.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+176-17f,U+192,U+1a0,U+1a1,U+1af,U+1b0,U+1d2,U+1d4,U+1d6,U+1d8,U+1da,U+1dc,U+1e7,U+1e9,U+1f0,U+1f9-1ff,U+219-21b,U+237,U+251,U+259,U+261,U+292; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.75.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+a1-a4,U+a6-a8,U+aa,U+ac,U+af,U+b1,U+b3-b6,U+b8-ba,U+bc-d6,U+d8-de,U+e6,U+eb,U+ee-f0,U+f5,U+f7,U+f8,U+fb,U+fd-100,U+102,U+104-107,U+10d,U+10f-112,U+115,U+117,U+119,U+11b,U+11e,U+11f,U+121,U+123,U+125-127,U+129,U+12a,U+12d,U+12f-13f,U+141,U+142,U+144,U+146,U+14b,U+14c,U+14f-153,U+158-15b,U+15e-160,U+163-165,U+168-16a,U+16d-175; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.76.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+221a,U+2264,U+2464,U+25a0,U+3008,U+4e10,U+512a,U+5152,U+5201,U+5241,U+5352,U+549a,U+54b2,U+54c6,U+54d7,U+54e1,U+5509,U+55c5,U+560e,U+5618,U+565c,U+56bc,U+5716,U+576f,U+5784,U+57a2,U+589f,U+5a20,U+5a25,U+5a29,U+5a34,U+5a7f,U+5ac9,U+5ad6,U+5b09,U+5b5c,U+5bc7,U+5c27,U+5d2d,U+5dcd,U+5f1b,U+5f37,U+604d,U+6055,U+6073,U+60eb,U+61ff,U+620c,U+62c7,U+62ed,U+6320,U+6345,U+6390,U+63b0,U+64ae,U+64c2,U+64d2,U+6556,U+663c,U+667e,U+66d9,U+66f8,U+6756,U+6789,U+689d,U+68f1,U+695e,U+6975,U+6a1f,U+6b0a,U+6b61,U+6b87,U+6c5d,U+6c7e,U+6c92,U+6d31,U+6df9,U+6e0d,U+6e2d,U+6f3e,U+70b3,U+70bd,U+70ca,U+70e8,U+725f,U+72e9,U+733f,U+7396,U+739f,U+7459,U+745a,U+74a7,U+75a1,U+75f0,U+76cf,U+76d4,U+7729,U+77aa,U+77b0,U+77e3,U+780c,U+78d5,U+7941,U+7977,U+797a,U+79c3,U+7a20,U+7a92,U+7b71,U+7bf1,U+7c9f,U+7eb6,U+7eca,U+7ef7,U+7f07,U+7f09,U+7f15,U+7f81,U+7fb9,U+8038,U+8098,U+80b4,U+8110,U+814b,U+814c,U+816e,U+818a,U+8205,U+8235,U+828b,U+82a5,U+82b7,U+82d4,U+82db,U+82df,U+8317,U+8338,U+8385,U+8386,U+83c1,U+83cf,U+8537,U+853b,U+854a,U+8715,U+8783,U+892a,U+8a71,U+8aaa,U+8d58,U+8dbe,U+8f67,U+8fab,U+8fc4,U+8fe6,U+9023,U+9084,U+9091,U+916a,U+91c9,U+91dc,U+94b3,U+9502,U+9523,U+9551,U+956f,U+960e,U+962a,U+962e,U+9647,U+96f3,U+9739,U+97a0,U+97ed,U+983b,U+985e,U+988a,U+9a6f,U+9a8b,U+9ab7,U+9ac5,U+9e25,U+ff06,U+ff14-ff16; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.77.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+161,U+2463,U+25c7,U+25ce,U+3009,U+3016,U+3017,U+4e4d,U+4e53,U+4f5a,U+4f70,U+4fae,U+4fd8,U+4ffa,U+5011,U+501a,U+516e,U+51c4,U+5225,U+5364,U+547b,U+5495,U+54e8,U+54ee,U+5594,U+55d3,U+55dc,U+55fd,U+5662,U+5669,U+566c,U+5742,U+5824,U+5834,U+598a,U+5992,U+59a9,U+5a04,U+5b75,U+5b7d,U+5bc5,U+5c49,U+5c90,U+5e1c,U+5e27,U+5e2b,U+5e37,U+5e90,U+618b,U+61f5,U+620a,U+6273,U+62f7,U+6342,U+6401,U+6402,U+6413,U+6512,U+655b,U+65a7,U+65f1,U+65f7,U+665f,U+6687,U+66a7,U+673d,U+67b8,U+6854,U+68d8,U+68fa,U+696d,U+6a02,U+6a0a,U+6a80,U+6b7c,U+6bd9,U+6c2e,U+6c76,U+6cf8,U+6d4a,U+6d85,U+6e24,U+6e32,U+6ec7,U+6ed5,U+6f88,U+700f,U+701a,U+7078,U+707c,U+70ac,U+70c1,U+7409,U+7422,U+7480,U+74a8,U+752b,U+7574,U+7656,U+7699,U+7737,U+785d,U+78be,U+79b9,U+7a3d,U+7a91,U+7a9f,U+7ae3,U+7b77,U+7c3f,U+7d1a,U+7d50,U+7d93,U+803f,U+8042,U+808b,U+8236,U+82b8,U+82b9,U+82ef,U+8309,U+836b,U+83ef,U+8431,U+85c9,U+865e,U+868c,U+8759,U+8760,U+8845,U+89ba,U+8a2a,U+8c41,U+8cec,U+8d2c,U+8d4e,U+8e66,U+8e6d,U+8eaf,U+902e,U+914b,U+916e,U+919b,U+949b,U+94a0,U+94b0,U+9541,U+9542,U+9556,U+95eb,U+95f5,U+964b,U+968b,U+96cc,U+96cd,U+96cf,U+9704,U+9713,U+9890,U+98a8,U+9985,U+9992,U+9a6d,U+9a81,U+9a86,U+9ab8,U+9ca4,U+9f9a,U+ff02,U+ff1e,U+ff3d; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.78.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+10c,U+203b,U+2265,U+2573,U+25b2,U+3448,U+3449,U+4e1e,U+4e5e,U+4f3a,U+4f5f,U+4fea,U+5026,U+508d,U+5189,U+5254,U+5288,U+52d8,U+52fa,U+5306,U+5308,U+5384,U+53ed,U+543c,U+5450,U+5455,U+5466,U+54c4,U+5578,U+55a7,U+561f,U+5631,U+572d,U+575f,U+57ae,U+57e0,U+5830,U+594e,U+5984,U+5993,U+5bdd,U+5c0d,U+5c7f,U+5c82,U+5e62,U+5ed3,U+5f08,U+607a,U+60bc,U+60df,U+625b,U+6292,U+62e2,U+6363,U+6467,U+6714,U+675e,U+6771,U+67a2,U+67ff,U+6805,U+6813,U+6869,U+68a7,U+68e0,U+6930,U+6986,U+69a8,U+69df,U+6a44,U+6a5f,U+6c13,U+6c1f,U+6c22,U+6c2f,U+6c40,U+6c81,U+6c9b,U+6ca5,U+6da4,U+6df3,U+6e85,U+6eba,U+6f13,U+6f33,U+6f62,U+715e,U+72c4,U+73d1,U+73fe,U+7405,U+7455,U+7487,U+7578,U+75a4,U+75eb,U+7693,U+7738,U+7741,U+776b,U+7792,U+77a7,U+77a9,U+77b3,U+788c,U+7984,U+79a7,U+79e4,U+7a1a,U+7a57,U+7aa6,U+7b0b,U+7b5d,U+7c27,U+7c7d,U+7caa,U+7cd9,U+7cef,U+7eda,U+7ede,U+7f24,U+8046,U+80fa,U+81b3,U+81fb,U+8207,U+8258,U+8335,U+8339,U+8354,U+840e,U+85b0,U+85fb,U+8695,U+86aa,U+8717,U+8749,U+874c,U+8996,U+89bd,U+89c5,U+8bdb,U+8bf5,U+8c5a,U+8d3f,U+8d9f,U+8e44,U+8fed,U+9005,U+9019,U+904e,U+9082,U+90af,U+90dd,U+90e1,U+90f8,U+9119,U+916f,U+9176,U+949e,U+94a7,U+94c2,U+9525,U+9580,U+95dc,U+96e2,U+96fb,U+9a7c,U+9a7f,U+9b41,U+9ca8,U+9cc4,U+9cde,U+9e92,U+9ede,U+ff10,U+ff13,U+ff3b; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.79.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+60,U+2606,U+3014,U+3015,U+309c,U+33a1,U+4e52,U+4ec6,U+4f86,U+4f8d,U+4fde,U+4fef,U+500b,U+502a,U+515c,U+518a,U+51a5,U+51f3,U+5243,U+52c9,U+52d5,U+53a2,U+53ee,U+54ce,U+54fa,U+54fc,U+5580,U+5587,U+563f,U+56da,U+5792,U+5815,U+5960,U+59d7,U+5a1f,U+5b78,U+5b9b,U+5be1,U+5c4e,U+5c51,U+5c6f,U+5c9a,U+5cfb,U+5d16,U+5ed6,U+5f27,U+5f6a,U+5f6c,U+603c,U+609a,U+6168,U+61c8,U+6236,U+62d0,U+62f1,U+62fd,U+631a,U+6328,U+632b,U+6346,U+638f,U+63a0,U+63c9,U+655e,U+6590,U+6615,U+6627,U+66ae,U+66e6,U+66f0,U+6703,U+67da,U+67ec,U+6816,U+6893,U+68ad,U+68f5,U+6977,U+6984,U+69db,U+6b72,U+6bb7,U+6ce3,U+6cfb,U+6d47,U+6da1,U+6dc4,U+6e43,U+6eaf,U+6eff,U+6f8e,U+7011,U+7063,U+7076,U+7096,U+70ba,U+70db,U+70ef,U+7119,U+711a,U+7172,U+718f,U+7194,U+727a,U+72d9,U+72ed,U+7325,U+73ae,U+73ba,U+73c0,U+7410,U+7426,U+7554,U+7576,U+75ae,U+75b9,U+762b,U+766b,U+7682,U+7750,U+7779,U+7784,U+77eb,U+77ee,U+78f7,U+79e9,U+7a79,U+7b1b,U+7b28,U+7bf7,U+7db2,U+7ec5,U+7eee,U+7f14,U+7f1a,U+7fe1,U+8087,U+809b,U+8231,U+830e,U+835f,U+83e9,U+849c,U+851a,U+868a,U+8718,U+874e,U+8822,U+8910,U+8944,U+8a3b,U+8bb6,U+8bbc,U+8d50,U+8e72,U+8f9c,U+900d,U+904b,U+9063,U+90a2,U+90b9,U+94f2,U+952f,U+9576,U+9577,U+9593,U+95f8,U+961c,U+9631,U+969b,U+96a7,U+96c1,U+9716,U+9761,U+97ad,U+97e7,U+98a4,U+997a,U+9a73,U+9b44,U+9e3d,U+9ecf,U+9ed4,U+ff11,U+ff12; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.80.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+2193,U+2462,U+4e19,U+4e2b,U+4e36,U+4ea8,U+4ed1,U+4ed7,U+4f51,U+4f63,U+4f83,U+50e7,U+5112,U+5167,U+51a4,U+51b6,U+5239,U+5265,U+532a,U+5351,U+537f,U+5401,U+548f,U+5492,U+54af,U+54b3,U+54bd,U+54d1,U+54df,U+554f,U+5564,U+5598,U+5632,U+56a3,U+56e7,U+574e,U+575d,U+575e,U+57d4,U+584c,U+58e4,U+5937,U+5955,U+5a05,U+5a49,U+5ac2,U+5bb0,U+5c39,U+5c61,U+5d0e,U+5de9,U+5e9a,U+5eb8,U+5f0a,U+5f13,U+5f8c,U+608d,U+611b,U+6127,U+62a0,U+634f,U+635e,U+63fd,U+6577,U+658b,U+65bc,U+660a,U+6643,U+6656,U+6760,U+67af,U+67c4,U+67e0,U+6817,U+68cd,U+690e,U+6960,U+69b4,U+6a71,U+6aac,U+6b67,U+6bb4,U+6c55,U+6c70,U+6c82,U+6ca6,U+6cb8,U+6cbe,U+6e9c,U+6ede,U+6ee5,U+6f4d,U+6f84,U+6f9c,U+7115,U+7121,U+722a,U+7261,U+7272,U+7280,U+72f8,U+7504,U+754f,U+75d8,U+767c,U+76ef,U+778e,U+77bb,U+77f6,U+786b,U+78b1,U+7948,U+7985,U+79be,U+7a83,U+7a8d,U+7eac,U+7eef,U+7ef8,U+7efd,U+7f00,U+803d,U+8086,U+810a,U+8165,U+819d,U+81a8,U+8214,U+829c,U+831c,U+8328,U+832b,U+8367,U+83e0,U+83f1,U+8403,U+846b,U+8475,U+84b2,U+8513,U+8574,U+85af,U+86d9,U+86db,U+8acb,U+8bbd,U+8be0,U+8be1,U+8c0e,U+8d29,U+8d63,U+8e81,U+8f7f,U+9032,U+9042,U+90b1,U+90b5,U+9165,U+9175,U+94a6,U+94c5,U+950c,U+9540,U+9610,U+9699,U+96c7,U+973e,U+978d,U+97ec,U+97f6,U+984c,U+987d,U+9882,U+9965,U+996a,U+9972,U+9a8f,U+9ad3,U+9ae6,U+9cb8,U+9edb,U+ff05,U+ff0b; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.81.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+5e,U+2190,U+250a,U+25bc,U+25cf,U+300f,U+4e56,U+4ea9,U+4f3d,U+4f6c,U+4f88,U+4fa8,U+4fcf,U+5029,U+5188,U+51f9,U+5203,U+524a,U+5256,U+529d,U+5375,U+53db,U+541f,U+5435,U+5457,U+548b,U+54b1,U+54c7,U+54d4,U+54e9,U+556a,U+5589,U+55bb,U+55e8,U+55ef,U+563b,U+566a,U+576a,U+58f9,U+598d,U+599e,U+59a8,U+5a9b,U+5ae3,U+5bde,U+5c4c,U+5c60,U+5d1b,U+5deb,U+5df7,U+5e18,U+5f26,U+5f64,U+601c,U+6084,U+60e9,U+614c,U+61be,U+6208,U+621a,U+6233,U+6254,U+62d8,U+62e6,U+62ef,U+6323,U+632a,U+633d,U+6361,U+6380,U+6405,U+640f,U+6614,U+6642,U+6657,U+67a3,U+6808,U+683d,U+6850,U+6897,U+68b3,U+68b5,U+68d5,U+6a58,U+6b47,U+6b6a,U+6c28,U+6c90,U+6ca7,U+6cf5,U+6d51,U+6da9,U+6dc7,U+6dd1,U+6e0a,U+6e5b,U+6f47,U+6f6d,U+70ad,U+70f9,U+710a,U+7130,U+71ac,U+745f,U+7476,U+7490,U+7529,U+7538,U+75d2,U+7696,U+76b1,U+76fc,U+777f,U+77dc,U+789f,U+795b,U+79bd,U+79c9,U+7a3b,U+7a46,U+7aa5,U+7ad6,U+7ca5,U+7cb9,U+7cdf,U+7d6e,U+7f06,U+7f38,U+7fa1,U+7fc1,U+8015,U+803b,U+80a2,U+80aa,U+8116,U+813e,U+82ad,U+82bd,U+8305,U+8346,U+846c,U+8549,U+859b,U+8611,U+8680,U+87f9,U+884d,U+8877,U+888d,U+88d4,U+898b,U+8a79,U+8a93,U+8c05,U+8c0d,U+8c26,U+8d1e,U+8d31,U+8d81,U+8e22,U+8f90,U+8f96,U+90ca,U+916c,U+917f,U+9187,U+918b,U+9499,U+94a9,U+9524,U+958b,U+9600,U+9640,U+96b6,U+96ef,U+98d9,U+9976,U+997f,U+9a74,U+9a84,U+9c8d,U+9e26,U+9e9f,U+ff0f; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.82.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+b0,U+2191,U+2460,U+2461,U+25c6,U+300e,U+4e1b,U+4e7e,U+4ed5,U+4ef2,U+4f10,U+4f1e,U+4f50,U+4fa6,U+4faf,U+5021,U+50f5,U+5179,U+5180,U+51d1,U+522e,U+52a3,U+52c3,U+52cb,U+5300,U+5319,U+5320,U+5349,U+5395,U+53d9,U+541e,U+5428,U+543e,U+54c0,U+54d2,U+570b,U+5858,U+58f6,U+5974,U+59a5,U+59e8,U+59ec,U+5a36,U+5a9a,U+5ab3,U+5b99,U+5baa,U+5ce1,U+5d14,U+5d4c,U+5dc5,U+5de2,U+5e99,U+5e9e,U+5f18,U+5f66,U+5f70,U+6070,U+60d5,U+60e7,U+6101,U+611a,U+6241,U+6252,U+626f,U+6296,U+62bc,U+62cc,U+63a9,U+644a,U+6454,U+64a9,U+64b8,U+6500,U+6572,U+65a5,U+65a9,U+65ec,U+660f,U+6749,U+6795,U+67ab,U+68da,U+6912,U+6bbf,U+6bef,U+6cab,U+6cca,U+6ccc,U+6cfc,U+6d3d,U+6d78,U+6dee,U+6e17,U+6e34,U+6e83,U+6ea2,U+6eb6,U+6f20,U+6fa1,U+707f,U+70d8,U+70eb,U+714c,U+714e,U+7235,U+7239,U+73ca,U+743c,U+745c,U+7624,U+763e,U+76f2,U+77db,U+77e9,U+780d,U+7838,U+7845,U+78ca,U+796d,U+7a84,U+7aed,U+7b3c,U+7eb2,U+7f05,U+7f20,U+7f34,U+7f62,U+7fc5,U+7fd8,U+7ff0,U+800d,U+8036,U+80ba,U+80be,U+80c0,U+80c1,U+8155,U+817a,U+8180,U+81e3,U+8206,U+8247,U+8270,U+8299,U+8304,U+8393,U+83b9,U+83ca,U+840d,U+8427,U+8469,U+8471,U+84c4,U+84ec,U+853d,U+8681,U+8682,U+8721,U+8854,U+88d5,U+88f9,U+8bc0,U+8c0a,U+8c29,U+8c2d,U+8d41,U+8dea,U+8eb2,U+8f9f,U+903b,U+903e,U+9102,U+9493,U+94a5,U+94f8,U+95ef,U+95f7,U+9706,U+9709,U+9774,U+9887,U+98a0,U+9e64,U+9f9f; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.83.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+2103,U+4e18,U+4e27,U+4e28,U+4e38,U+4e59,U+4e8f,U+4ead,U+4ec7,U+4fe9,U+503a,U+5085,U+5146,U+51af,U+51f8,U+52ab,U+5339,U+535c,U+5378,U+538c,U+5398,U+53f9,U+5415,U+5475,U+54aa,U+54ac,U+54b8,U+5582,U+5760,U+5764,U+57cb,U+5835,U+5885,U+5951,U+5983,U+59da,U+5a77,U+5b5d,U+5b5f,U+5bb5,U+5bc2,U+5be8,U+5bfa,U+5c2c,U+5c34,U+5c41,U+5c48,U+5c65,U+5cad,U+5e06,U+5e42,U+5ef7,U+5f17,U+5f25,U+5f6d,U+5f79,U+6028,U+6064,U+6068,U+606d,U+607c,U+6094,U+6109,U+6124,U+6247,U+626d,U+6291,U+629a,U+62ac,U+62b9,U+62fe,U+6324,U+6349,U+6367,U+6398,U+6495,U+64a4,U+64b0,U+64bc,U+64ce,U+658c,U+65ed,U+6602,U+6674,U+6691,U+66a8,U+674f,U+679a,U+67ef,U+67f4,U+680b,U+6876,U+68a8,U+6a59,U+6a61,U+6b20,U+6bc5,U+6d12,U+6d46,U+6d8c,U+6dc0,U+6e14,U+6e23,U+6f06,U+7164,U+716e,U+7199,U+71e5,U+72ac,U+742a,U+755c,U+75ab,U+75b2,U+75f4,U+7897,U+78b3,U+78c5,U+7978,U+79fd,U+7a74,U+7b4b,U+7b5b,U+7ece,U+7ed2,U+7ee3,U+7ef3,U+7f50,U+7f55,U+7f9e,U+7fe0,U+809d,U+8106,U+814a,U+8154,U+817b,U+818f,U+81c2,U+81ed,U+821f,U+82a6,U+82d1,U+8302,U+83c7,U+845b,U+848b,U+84c9,U+85e4,U+86ee,U+8700,U+8774,U+886c,U+8881,U+8c1c,U+8c79,U+8d2a,U+8d3c,U+8eba,U+8f70,U+8fa9,U+8fb1,U+900a,U+9017,U+901d,U+9022,U+906e,U+946b,U+94dd,U+94ed,U+953b,U+95fa,U+95fd,U+964c,U+96c0,U+971c,U+971e,U+9753,U+9756,U+97e6,U+9881,U+9b4f,U+9e2d,U+9f0e,U+ff5c; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.84.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+24,U+4e08,U+4e43,U+4e4f,U+4ef0,U+4f2a,U+507f,U+50ac,U+50bb,U+5151,U+51bb,U+51f6,U+51fd,U+5272,U+52fe,U+5362,U+53c9,U+53d4,U+53e0,U+543b,U+54f2,U+5507,U+5524,U+558a,U+55b5,U+561b,U+56ca,U+5782,U+57c3,U+5893,U+5915,U+5949,U+5962,U+59ae,U+59dc,U+59fb,U+5bd3,U+5c38,U+5cb3,U+5d07,U+5d29,U+5de1,U+5dfe,U+5e15,U+5eca,U+5f2f,U+5f7c,U+5fcc,U+6021,U+609f,U+60f9,U+6108,U+6148,U+6155,U+6170,U+61d2,U+6251,U+629b,U+62ab,U+62e8,U+62f3,U+6321,U+6350,U+6566,U+659c,U+65e8,U+6635,U+6655,U+6670,U+66f9,U+6734,U+679d,U+6851,U+6905,U+6b49,U+6b96,U+6c1b,U+6c41,U+6c6a,U+6c83,U+6cf3,U+6d9b,U+6dcb,U+6e1d,U+6e20,U+6e21,U+6eaa,U+6ee4,U+6ee9,U+6f58,U+70e4,U+722c,U+7262,U+7267,U+72b9,U+72e0,U+72ee,U+72f1,U+7334,U+73ab,U+7433,U+7470,U+758f,U+75d5,U+764c,U+7686,U+76c6,U+76fe,U+7720,U+77e2,U+7802,U+7816,U+788d,U+7891,U+7a00,U+7a9d,U+7b52,U+7bad,U+7c98,U+7cca,U+7eba,U+7eea,U+7ef5,U+7f1d,U+7f69,U+806a,U+809a,U+80bf,U+80c3,U+81c0,U+820c,U+82ac,U+82af,U+82cd,U+82d7,U+838e,U+839e,U+8404,U+84b8,U+852c,U+8587,U+85aa,U+8650,U+8679,U+86c7,U+8702,U+87ba,U+886b,U+8870,U+8c10,U+8c23,U+8c6b,U+8d3e,U+8d4b,U+8d4c,U+8d64,U+8d6b,U+8d74,U+8e29,U+8f69,U+8f74,U+8fb0,U+8fdf,U+901b,U+9038,U+9093,U+90aa,U+9171,U+9489,U+94ae,U+94c3,U+9508,U+9510,U+9601,U+9614,U+9675,U+97f5,U+9888,U+98d8,U+9971,U+9aa4,U+9e3f,U+9e45,U+9e4f,U+9e70,U+9f7f; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.85.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+a5,U+2022,U+2192,U+2605,U+4e11,U+4e22,U+4e32,U+4f0d,U+4f0f,U+4f69,U+4ff1,U+50b2,U+5154,U+51dd,U+51f0,U+5211,U+5269,U+533f,U+5366,U+5367,U+5389,U+5413,U+5440,U+5446,U+5561,U+574a,U+5751,U+57ab,U+5806,U+5821,U+582a,U+58f3,U+5938,U+5948,U+5978,U+59d1,U+5a03,U+5a07,U+5ac1,U+5acc,U+5ae9,U+5bb4,U+5bc4,U+5c3f,U+5e3d,U+5e7d,U+5f92,U+5faa,U+5fe0,U+5ffd,U+6016,U+60a0,U+60dc,U+60e8,U+614e,U+6212,U+6284,U+62c6,U+62d3,U+62d4,U+63f4,U+642c,U+6478,U+6491,U+6492,U+64e6,U+6591,U+65a4,U+664b,U+6735,U+6746,U+67f1,U+67f3,U+6842,U+68af,U+68c9,U+68cb,U+6a31,U+6b3a,U+6bc1,U+6c0f,U+6c27,U+6c57,U+6cc4,U+6ce5,U+6d2a,U+6d66,U+6d69,U+6daf,U+6e58,U+6ecb,U+6ef4,U+707e,U+7092,U+70ab,U+71d5,U+7275,U+7384,U+73b2,U+7434,U+74e6,U+74f7,U+75bc,U+76c8,U+76d0,U+7709,U+77ac,U+7855,U+78a7,U+78c1,U+7a77,U+7b79,U+7c92,U+7cae,U+7cd5,U+7ea4,U+7eb5,U+7ebd,U+7f5a,U+7fd4,U+7ffc,U+8083,U+8096,U+80a0,U+80d6,U+80de,U+8102,U+8109,U+810f,U+8179,U+8292,U+82b3,U+8352,U+8361,U+83cc,U+841d,U+8461,U+8482,U+8521,U+857e,U+866b,U+8776,U+8896,U+889c,U+88f8,U+8a9e,U+8bc8,U+8bf8,U+8c0b,U+8c28,U+8d2b,U+8d2f,U+8d37,U+8d3a,U+8d54,U+8dc3,U+8dcc,U+8df5,U+8e0f,U+8e48,U+8f86,U+8f88,U+8f9e,U+8fc1,U+8fc8,U+8feb,U+9065,U+90a6,U+90bb,U+90c1,U+94dc,U+9521,U+9676,U+96d5,U+970d,U+9897,U+997c,U+9a70,U+9a76,U+9a9a,U+9ad4,U+9e23,U+9e7f,U+9f3b,U+ffe5; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.86.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+300c,U+300d,U+4e54,U+4e58,U+4e95,U+4ec1,U+4f2f,U+4f38,U+4fa3,U+4fca,U+503e,U+5141,U+5144,U+517c,U+51cc,U+51ed,U+5242,U+52b2,U+52d2,U+52e4,U+540a,U+5439,U+5448,U+5496,U+54ed,U+5565,U+5761,U+5766,U+58ee,U+593a,U+594b,U+594f,U+5954,U+5996,U+59c6,U+59ff,U+5b64,U+5bff,U+5c18,U+5c1d,U+5c97,U+5ca9,U+5cb8,U+5e9f,U+5ec9,U+5f04,U+5f7b,U+5fa1,U+5fcd,U+6012,U+60a6,U+60ac,U+60b2,U+60ef,U+626e,U+6270,U+6276,U+62d6,U+62dc,U+6316,U+632f,U+633a,U+6355,U+63aa,U+6447,U+649e,U+64c5,U+654c,U+65c1,U+65cb,U+65e6,U+6606,U+6731,U+675c,U+67cf,U+67dc,U+6846,U+6b8b,U+6beb,U+6c61,U+6c88,U+6cbf,U+6cdb,U+6cea,U+6d45,U+6d53,U+6d74,U+6d82,U+6da8,U+6db5,U+6deb,U+6eda,U+6ee8,U+6f0f,U+706d,U+708e,U+70ae,U+70bc,U+70c2,U+70e6,U+7237,U+7238,U+72fc,U+730e,U+731b,U+739b,U+73bb,U+7483,U+74dc,U+74f6,U+7586,U+7626,U+775b,U+77ff,U+788e,U+78b0,U+7956,U+7965,U+79e6,U+7af9,U+7bee,U+7c97,U+7eb1,U+7eb7,U+7ed1,U+7ed5,U+7f6a,U+7f72,U+7fbd,U+8017,U+808c,U+80a9,U+80c6,U+80ce,U+8150,U+8170,U+819c,U+820d,U+8230,U+8239,U+827e,U+8377,U+8389,U+83b2,U+8428,U+8463,U+867e,U+88c2,U+88d9,U+8986,U+8bca,U+8bde,U+8c13,U+8c8c,U+8d21,U+8d24,U+8d56,U+8d60,U+8d8b,U+8db4,U+8e2a,U+8f68,U+8f89,U+8f9b,U+8fa8,U+8fbd,U+9003,U+90ce,U+90ed,U+9189,U+94bb,U+9505,U+95f9,U+963b,U+9655,U+966a,U+9677,U+96fe,U+9896,U+99a8,U+9a71,U+9a82,U+9a91,U+9b45,U+9ece,U+9f20,U+ff0d; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.87.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+4e4c,U+4e88,U+4ea1,U+4ea6,U+4ed3,U+4ed4,U+4eff,U+4f30,U+4fa7,U+4fc4,U+4fd7,U+500d,U+504f,U+5076,U+5077,U+517d,U+5192,U+51c9,U+51ef,U+5238,U+5251,U+526a,U+52c7,U+52df,U+52ff,U+53a6,U+53a8,U+53ec,U+5410,U+559d,U+55b7,U+5634,U+573e,U+5783,U+585e,U+586b,U+58a8,U+5999,U+59d3,U+5a1c,U+5a46,U+5b54,U+5b55,U+5b85,U+5b8b,U+5b8f,U+5bbf,U+5bd2,U+5c16,U+5c24,U+5e05,U+5e45,U+5e7c,U+5e84,U+5f03,U+5f1f,U+5f31,U+5f84,U+5f90,U+5fbd,U+5fc6,U+5fd9,U+5fe7,U+6052,U+6062,U+6089,U+60a3,U+60d1,U+6167,U+622a,U+6234,U+624e,U+6269,U+626c,U+62b5,U+62d2,U+6325,U+63e1,U+643a,U+6446,U+6562,U+656c,U+65e2,U+65fa,U+660c,U+6628,U+6652,U+6668,U+6676,U+66fc,U+66ff,U+6717,U+676d,U+67aa,U+67d4,U+6843,U+6881,U+68d2,U+695a,U+69fd,U+6a2a,U+6b8a,U+6c60,U+6c64,U+6c9f,U+6caa,U+6cc9,U+6ce1,U+6cfd,U+6d1b,U+6d1e,U+6d6e,U+6de1,U+6e10,U+6e7f,U+6f5c,U+704c,U+7070,U+7089,U+70b8,U+718a,U+71c3,U+723d,U+732a,U+73cd,U+7518,U+756a,U+75af,U+75be,U+75c7,U+76d2,U+76d7,U+7763,U+78e8,U+795d,U+79df,U+7c4d,U+7d2f,U+7ee9,U+7f13,U+7f8a,U+8000,U+8010,U+80af,U+80f6,U+80f8,U+8212,U+8273,U+82f9,U+83ab,U+83b1,U+83f2,U+8584,U+871c,U+8861,U+888b,U+88c1,U+88e4,U+8bd1,U+8bf1,U+8c31,U+8d5a,U+8d75,U+8d76,U+8de8,U+8f85,U+8fa3,U+8fc5,U+9006,U+903c,U+904d,U+9075,U+9178,U+9274,U+950b,U+9526,U+95ea,U+9636,U+9686,U+978b,U+987f,U+9a7e,U+9b42,U+9e1f,U+9ea6,U+9f13,U+9f84,U+ff5e; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.88.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+23,U+3d,U+4e01,U+4e39,U+4e73,U+4ecd,U+4ed9,U+4eea,U+4f0a,U+4f1f,U+4f5b,U+4fa0,U+4fc3,U+501f,U+50a8,U+515a,U+5175,U+51a0,U+51c0,U+51e1,U+51e4,U+5200,U+520a,U+5224,U+523a,U+52aa,U+52b1,U+52b3,U+5348,U+5353,U+5360,U+5371,U+5377,U+539a,U+541b,U+5434,U+547c,U+54e6,U+5510,U+5531,U+5609,U+56f0,U+56fa,U+5733,U+574f,U+5851,U+5854,U+5899,U+58c1,U+592e,U+5939,U+5976,U+5986,U+59bb,U+5a18,U+5a74,U+5b59,U+5b87,U+5b97,U+5ba0,U+5bab,U+5bbd,U+5bbe,U+5bf8,U+5c0a,U+5c3a,U+5c4a,U+5e16,U+5e1d,U+5e2d,U+5e8a,U+6015,U+602a,U+6050,U+6069,U+6162,U+61c2,U+6293,U+6297,U+62b1,U+62bd,U+62df,U+62fc,U+6302,U+635f,U+638c,U+63ed,U+6458,U+6469,U+6563,U+6620,U+6653,U+6696,U+6697,U+66dd,U+675f,U+676f,U+6770,U+67d0,U+67d3,U+684c,U+6865,U+6885,U+68b0,U+68ee,U+690d,U+6b23,U+6b32,U+6bd5,U+6c89,U+6d01,U+6d25,U+6d89,U+6da6,U+6db2,U+6df7,U+6ed1,U+6f02,U+70c8,U+70df,U+70e7,U+7126,U+7236,U+7259,U+731c,U+745e,U+74e3,U+751a,U+751c,U+7532,U+7545,U+75db,U+7761,U+7a0d,U+7b51,U+7ca4,U+7cd6,U+7d2b,U+7ea0,U+7eb9,U+7ed8,U+7f18,U+7f29,U+8033,U+804a,U+80a4,U+80a5,U+80e1,U+817f,U+829d,U+82e6,U+8336,U+840c,U+8499,U+864e,U+8651,U+865a,U+88ad,U+89e6,U+8bd7,U+8bfa,U+8c37,U+8d25,U+8d38,U+8ddd,U+8fea,U+9010,U+9012,U+906d,U+907f,U+9080,U+90d1,U+9177,U+91ca,U+94fa,U+9501,U+9634,U+9635,U+9694,U+9707,U+9738,U+9769,U+9a7b,U+9a97,U+9aa8,U+9b3c,U+9c81,U+9ed8; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.89.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+26,U+3c,U+d7,U+4e4e,U+4e61,U+4e71,U+4ebf,U+4ee4,U+4f26,U+5012,U+51ac,U+51b0,U+51b2,U+51b7,U+5218,U+521a,U+5220,U+5237,U+523b,U+526f,U+5385,U+53bf,U+53e5,U+53eb,U+53f3,U+53f6,U+5409,U+5438,U+54c8,U+54e5,U+552f,U+5584,U+5706,U+5723,U+5750,U+575a,U+5987,U+5988,U+59b9,U+59d0,U+59d4,U+5b88,U+5b9c,U+5bdf,U+5bfb,U+5c01,U+5c04,U+5c3e,U+5c4b,U+5c4f,U+5c9b,U+5cf0,U+5ddd,U+5de6,U+5de8,U+5e01,U+5e78,U+5e7b,U+5e9c,U+5ead,U+5ef6,U+5f39,U+5fd8,U+6000,U+6025,U+604b,U+6076,U+613f,U+6258,U+6263,U+6267,U+6298,U+62a2,U+62e5,U+62ec,U+6311,U+6377,U+6388,U+6389,U+63a2,U+63d2,U+641e,U+642d,U+654f,U+6551,U+6597,U+65cf,U+65d7,U+65e7,U+6682,U+66f2,U+671d,U+672b,U+6751,U+6768,U+6811,U+6863,U+6982,U+6bd2,U+6cf0,U+6d0b,U+6d17,U+6d59,U+6dd8,U+6dfb,U+6e7e,U+6f6e,U+6fb3,U+706f,U+719f,U+72af,U+72d0,U+72d7,U+732b,U+732e,U+7389,U+73e0,U+7530,U+7687,U+76d6,U+76db,U+7840,U+786c,U+79cb,U+79d2,U+7a0e,U+7a33,U+7a3f,U+7a97,U+7ade,U+7adf,U+7b26,U+7e41,U+7ec3,U+7f3a,U+8089,U+80dc,U+811a,U+8131,U+8138,U+821e,U+8349,U+83dc,U+8457,U+867d,U+86cb,U+8a89,U+8ba8,U+8bad,U+8bef,U+8bfe,U+8c6a,U+8d1d,U+8d4f,U+8d62,U+8dd1,U+8df3,U+8f6e,U+8ff9,U+900f,U+9014,U+9057,U+9192,U+91ce,U+9488,U+94a2,U+9547,U+955c,U+95f2,U+9644,U+964d,U+96c4,U+96c5,U+96e8,U+96f6,U+96f7,U+9732,U+9759,U+9760,U+987a,U+989c,U+9910,U+996d,U+996e,U+9b54,U+9e21,U+9ebb,U+9f50; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.90.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+7e,U+2026,U+4e03,U+4e25,U+4e30,U+4e34,U+4e45,U+4e5d,U+4e89,U+4eae,U+4ed8,U+4f11,U+4f19,U+4f24,U+4f34,U+4f59,U+4f73,U+4f9d,U+4fb5,U+5047,U+505c,U+5170,U+519c,U+51cf,U+5267,U+5356,U+5374,U+5382,U+538b,U+53e6,U+5426,U+542b,U+542f,U+5462,U+5473,U+554a,U+5566,U+5708,U+571f,U+5757,U+57df,U+57f9,U+5802,U+590f,U+591c,U+591f,U+592b,U+5965,U+5979,U+5a01,U+5a5a,U+5b69,U+5b81,U+5ba1,U+5ba3,U+5c3c,U+5c42,U+5c81,U+5de7,U+5dee,U+5e0c,U+5e10,U+5e55,U+5e86,U+5e8f,U+5ea7,U+5f02,U+5f52,U+5f81,U+5ff5,U+60ca,U+60e0,U+6279,U+62c5,U+62ff,U+63cf,U+6444,U+64cd,U+653b,U+65bd,U+65e9,U+665a,U+66b4,U+66fe,U+6728,U+6740,U+6742,U+677e,U+67b6,U+680f,U+68a6,U+68c0,U+699c,U+6b4c,U+6b66,U+6b7b,U+6bcd,U+6bdb,U+6c38,U+6c47,U+6c49,U+6cb3,U+6cb9,U+6ce2,U+6d32,U+6d3e,U+6d4f,U+6e56,U+6fc0,U+7075,U+7206,U+725b,U+72c2,U+73ed,U+7565,U+7591,U+7597,U+75c5,U+76ae,U+76d1,U+76df,U+7834,U+7968,U+7981,U+79c0,U+7a7f,U+7a81,U+7ae5,U+7b14,U+7c89,U+7d27,U+7eaf,U+7eb3,U+7eb8,U+7ec7,U+7ee7,U+7eff,U+7f57,U+7ffb,U+805a,U+80a1,U+822c,U+82cf,U+82e5,U+8363,U+836f,U+84dd,U+878d,U+8840,U+8857,U+8863,U+8865,U+8b66,U+8bb2,U+8bda,U+8c01,U+8c08,U+8c46,U+8d1f,U+8d35,U+8d5b,U+8d5e,U+8da3,U+8ddf,U+8f93,U+8fdd,U+8ff0,U+8ff7,U+8ffd,U+9000,U+9047,U+9152,U+949f,U+94c1,U+94f6,U+9646,U+9648,U+9669,U+969c,U+96ea,U+97e9,U+987b,U+987e,U+989d,U+9970,U+9986,U+9c7c,U+9c9c; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.91.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+25,U+4e14,U+4e1d,U+4e3d,U+4e49,U+4e60,U+4e9a,U+4eb2,U+4ec5,U+4efd,U+4f3c,U+4f4f,U+4f8b,U+4fbf,U+5019,U+5145,U+514b,U+516b,U+516d,U+5174,U+5178,U+517b,U+5199,U+519b,U+51b3,U+51b5,U+5207,U+5212,U+5219,U+521d,U+52bf,U+533b,U+5343,U+5347,U+534a,U+536b,U+5370,U+53e4,U+53f2,U+5403,U+542c,U+547d,U+54a8,U+54cd,U+54ea,U+552e,U+56f4,U+5747,U+575b,U+5883,U+589e,U+5931,U+5947,U+5956,U+5957,U+5a92,U+5b63,U+5b83,U+5ba4,U+5bb3,U+5bcc,U+5c14,U+5c1a,U+5c3d,U+5c40,U+5c45,U+5c5e,U+5df4,U+5e72,U+5e95,U+5f80,U+5f85,U+5fb7,U+5fd7,U+601d,U+626b,U+627f,U+62c9,U+62cd,U+6309,U+63a7,U+6545,U+65ad,U+65af,U+65c5,U+666e,U+667a,U+670b,U+671b,U+674e,U+677f,U+6781,U+6790,U+6797,U+6821,U+6838,U+6839,U+697c,U+6b27,U+6b62,U+6bb5,U+6c7d,U+6c99,U+6d4e,U+6d6a,U+6e29,U+6e2f,U+6ee1,U+6f14,U+6f2b,U+72b6,U+72ec,U+7387,U+7533,U+753b,U+76ca,U+76d8,U+7701,U+773c,U+77ed,U+77f3,U+7814,U+793c,U+79bb,U+79c1,U+79d8,U+79ef,U+79fb,U+7a76,U+7b11,U+7b54,U+7b56,U+7b97,U+7bc7,U+7c73,U+7d20,U+7eaa,U+7ec8,U+7edd,U+7eed,U+7efc,U+7fa4,U+804c,U+8058,U+80cc,U+8111,U+817e,U+826f,U+8303,U+843d,U+89c9,U+89d2,U+8ba2,U+8bbf,U+8bc9,U+8bcd,U+8be6,U+8c22,U+8c61,U+8d22,U+8d26,U+8d27,U+8d8a,U+8f6f,U+8f7b,U+8f83,U+8f91,U+8fb9,U+8fd4,U+8fdc,U+9002,U+94b1,U+9519,U+95ed,U+961f,U+9632,U+9633,U+963f,U+968f,U+9690,U+96be,U+9876,U+9884,U+98de,U+9988,U+9999,U+9ec4,U+ff1b; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.92.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+2b,U+40,U+3000,U+300a,U+300b,U+4e16,U+4e66,U+4e70,U+4e91,U+4e92,U+4e94,U+4e9b,U+4ec0,U+4eca,U+4f01,U+4f17,U+4f18,U+4f46,U+4f4e,U+4f9b,U+4fee,U+503c,U+5065,U+50cf,U+513f,U+5148,U+518d,U+51c6,U+51e0,U+5217,U+529e,U+529f,U+5341,U+534f,U+5361,U+5386,U+53c2,U+53c8,U+53cc,U+53d7,U+53d8,U+5404,U+5411,U+5417,U+5427,U+5468,U+559c,U+5668,U+56e0,U+56e2,U+56ed,U+5740,U+57fa,U+58eb,U+5904,U+592a,U+59cb,U+5a31,U+5b58,U+5b9d,U+5bc6,U+5c71,U+5dde,U+5df1,U+5e08,U+5e26,U+5e2e,U+5e93,U+5e97,U+5eb7,U+5f15,U+5f20,U+5f3a,U+5f62,U+5f69,U+5f88,U+5f8b,U+5fc5,U+600e,U+620f,U+6218,U+623f,U+627e,U+628a,U+62a4,U+62db,U+62e9,U+6307,U+6362,U+636e,U+64ad,U+6539,U+653f,U+6548,U+6574,U+6613,U+6625,U+663e,U+666f,U+672a,U+6750,U+6784,U+6a21,U+6b3e,U+6b65,U+6bcf,U+6c11,U+6c5f,U+6d4b,U+6df1,U+706b,U+7167,U+724c,U+738b,U+73a9,U+73af,U+7403,U+7537,U+754c,U+7559,U+767d,U+7740,U+786e,U+795e,U+798f,U+79f0,U+7aef,U+7b7e,U+7bb1,U+7ea2,U+7ea6,U+7ec4,U+7ec6,U+7ecd,U+7edc,U+7ef4,U+8003,U+80b2,U+81f3,U+81f4,U+822a,U+827a,U+82f1,U+83b7,U+8425,U+89c2,U+89c8,U+8ba9,U+8bb8,U+8bc6,U+8bd5,U+8be2,U+8be5,U+8bed,U+8c03,U+8d23,U+8d2d,U+8d34,U+8d70,U+8db3,U+8fbe,U+8fce,U+8fd1,U+8fde,U+9001,U+901f,U+9020,U+90a3,U+914d,U+91c7,U+94fe,U+9500,U+952e,U+9605,U+9645,U+9662,U+9664,U+9700,U+9752,U+975e,U+97f3,U+9879,U+9886,U+98df,U+9a6c,U+9a8c,U+9ed1,U+9f99; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.93.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+4e,U+201c,U+201d,U+3010,U+3011,U+4e07,U+4e1c,U+4e24,U+4e3e,U+4e48,U+4e50,U+4e5f,U+4e8b,U+4e8c,U+4ea4,U+4eab,U+4eac,U+4ecb,U+4ece,U+4ed6,U+4ee3,U+4ef6,U+4ef7,U+4efb,U+4f20,U+4f55,U+4f7f,U+4fdd,U+505a,U+5143,U+5149,U+514d,U+5171,U+5177,U+518c,U+51fb,U+521b,U+5229,U+522b,U+52a9,U+5305,U+5317,U+534e,U+5355,U+5357,U+535a,U+5373,U+539f,U+53bb,U+53ca,U+53cd,U+53d6,U+53e3,U+53ea,U+53f0,U+5458,U+5546,U+56db,U+573a,U+578b,U+57ce,U+58f0,U+590d,U+5934,U+5973,U+5b57,U+5b8c,U+5b98,U+5bb9,U+5bfc,U+5c06,U+5c11,U+5c31,U+5c55,U+5df2,U+5e03,U+5e76,U+5e94,U+5efa,U+5f71,U+5f97,U+5feb,U+6001,U+603b,U+60f3,U+611f,U+6216,U+624d,U+6253,U+6295,U+6301,U+6392,U+641c,U+652f,U+653e,U+6559,U+6599,U+661f,U+671f,U+672f,U+6761,U+67e5,U+6807,U+6837,U+683c,U+6848,U+6b22,U+6b64,U+6bd4,U+6c14,U+6c34,U+6c42,U+6ca1,U+6d41,U+6d77,U+6d88,U+6e05,U+6e38,U+6e90,U+7136,U+7231,U+7531,U+767e,U+76ee,U+76f4,U+771f,U+7801,U+793a,U+79cd,U+7a0b,U+7a7a,U+7acb,U+7ae0,U+7b2c,U+7b80,U+7ba1,U+7cbe,U+7d22,U+7ea7,U+7ed3,U+7ed9,U+7edf,U+7f16,U+7f6e,U+8001,U+800c,U+8272,U+8282,U+82b1,U+8350,U+88ab,U+88c5,U+897f,U+89c1,U+89c4,U+89e3,U+8a00,U+8ba1,U+8ba4,U+8bae-8bb0,U+8bbe,U+8bc1,U+8bc4,U+8bfb,U+8d28,U+8d39,U+8d77,U+8d85,U+8def,U+8eab,U+8f66,U+8f6c,U+8f7d,U+8fd0,U+9009,U+90ae,U+90fd,U+91cc,U+91cd,U+91cf,U+95fb,U+9650,U+96c6,U+9891,U+98ce,U+ff1f; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.94.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+3e,U+5f,U+7c,U+a0,U+a9,U+4e09-4e0b,U+4e0d,U+4e0e,U+4e13,U+4e1a,U+4e2a,U+4e3a,U+4e3b,U+4e4b,U+4e86,U+4e8e,U+4ea7,U+4eba,U+4ee5,U+4eec,U+4f1a,U+4f4d,U+4f53,U+4f5c,U+4f60,U+4fe1,U+5165,U+5168,U+516c,U+5173,U+5176,U+5185,U+51fa,U+5206,U+5230,U+5236,U+524d,U+529b,U+52a0,U+52a1,U+52a8,U+5316,U+533a,U+53cb,U+53d1,U+53ef,U+53f7,U+53f8,U+5408,U+540c-540e,U+544a,U+548c,U+54c1,U+56de,U+56fd,U+56fe,U+5728,U+5730,U+5907,U+5916,U+591a,U+5927,U+5929,U+597d,U+5982,U+5b50,U+5b66,U+5b89,U+5b9a,U+5b9e,U+5ba2,U+5bb6,U+5bf9,U+5c0f,U+5de5,U+5e02,U+5e38,U+5e73,U+5e74,U+5e7f,U+5ea6,U+5f00,U+5f0f,U+5f53,U+5f55,U+5fae,U+5fc3,U+6027,U+606f,U+60a8,U+60c5,U+610f,U+6210,U+6211,U+6237,U+6240,U+624b,U+6280,U+62a5,U+63a5,U+63a8,U+63d0,U+6536,U+6570,U+6587,U+65b9,U+65e0,U+65f6,U+660e,U+662d,U+662f,U+66f4,U+6700,U+670d,U+672c,U+673a,U+6743,U+6765,U+679c,U+682a,U+6b21,U+6b63,U+6cbb,U+6cd5,U+6ce8,U+6d3b,U+70ed,U+7247,U+7248,U+7269,U+7279,U+73b0,U+7406,U+751f,U+7528,U+7535,U+767b,U+76f8,U+770b,U+77e5,U+793e,U+79d1,U+7ad9,U+7b49,U+7c7b,U+7cfb,U+7ebf,U+7ecf,U+7f8e,U+8005,U+8054,U+80fd,U+81ea,U+85cf,U+884c,U+8868,U+8981,U+89c6,U+8bba,U+8bdd,U+8bf4,U+8bf7,U+8d44,U+8fc7,U+8fd8,U+8fd9,U+8fdb,U+901a,U+9053,U+90e8,U+91d1,U+957f,U+95e8,U+95ee,U+95f4,U+9762,U+9875,U+9898,U+9996,U+9ad8,U+ff01,U+ff08,U+ff09; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.95.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+20-22,U+27-2a,U+2c-3b,U+3f,U+41-4d,U+4f-5d,U+61-7b,U+7d,U+ab,U+ae,U+b2,U+b7,U+bb,U+2013,U+2014,U+2039,U+203a,U+2122,U+3001,U+3002,U+30fb,U+30fc,U+4e00,U+4e2d,U+65b0,U+65e5,U+6708,U+6709,U+70b9,U+7684,U+7f51,U+ff0c,U+ff0e,U+ff1a; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Black.96.woff2") format("woff2"); + font-weight: 900; + font-style: normal; + font-display: swap; + unicode-range: U+df-e5,U+e7-ea,U+ec,U+ed,U+f1-f4,U+f6,U+f9,U+fa,U+fc,U+101,U+103,U+113,U+12b,U+148,U+14d,U+16b,U+1ce,U+1d0,U+300,U+301,U+1ebf,U+1ec7,U+3042,U+3044,U+3046,U+3048,U+304a-3055,U+3057,U+3059-305b,U+305d,U+305f-3061,U+3063-306b,U+306d-3073,U+3075,U+3076,U+3078,U+3079,U+307b,U+307e,U+307f,U+3081-308d,U+308f,U+3092,U+3093,U+30a1-30a4,U+30a6-30bb,U+30bd,U+30bf-30c1,U+30c3,U+30c4,U+30c6-30cb,U+30cd-30d7,U+30d9-30e1,U+30e3-30e7,U+30e9-30ed,U+30ef,U+30f3; +} diff --git a/resources/font/HarmonyOS_Sans_SC_Black/index.html b/resources/font/HarmonyOS_Sans_SC_Black/index.html new file mode 100644 index 0000000..6228e42 --- /dev/null +++ b/resources/font/HarmonyOS_Sans_SC_Black/index.html @@ -0,0 +1,20 @@ + + + + + + Demo + + + + + +
+

Created by voderl ( https://github.com/voderl/font-slice )

+

如果遇到问题可以在 issue 中反馈

+ +
+ + \ No newline at end of file diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.1.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.1.woff2 new file mode 100644 index 0000000..4069020 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.1.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.10.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.10.woff2 new file mode 100644 index 0000000..63b24ac Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.10.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.11.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.11.woff2 new file mode 100644 index 0000000..fe31542 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.11.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.12.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.12.woff2 new file mode 100644 index 0000000..601ac0e Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.12.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.13.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.13.woff2 new file mode 100644 index 0000000..94508c9 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.13.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.14.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.14.woff2 new file mode 100644 index 0000000..cbb095f Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.14.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.15.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.15.woff2 new file mode 100644 index 0000000..66c8be0 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.15.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.16.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.16.woff2 new file mode 100644 index 0000000..72d80a2 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.16.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.17.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.17.woff2 new file mode 100644 index 0000000..b4d97c0 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.17.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.18.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.18.woff2 new file mode 100644 index 0000000..2db0f5e Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.18.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.19.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.19.woff2 new file mode 100644 index 0000000..5712bf2 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.19.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.2.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.2.woff2 new file mode 100644 index 0000000..b1bb853 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.2.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.20.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.20.woff2 new file mode 100644 index 0000000..d3523b5 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.20.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.21.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.21.woff2 new file mode 100644 index 0000000..703495d Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.21.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.22.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.22.woff2 new file mode 100644 index 0000000..9fa80d2 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.22.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.23.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.23.woff2 new file mode 100644 index 0000000..5077b09 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.23.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.24.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.24.woff2 new file mode 100644 index 0000000..f270788 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.24.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.25.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.25.woff2 new file mode 100644 index 0000000..19e3b2b Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.25.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.26.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.26.woff2 new file mode 100644 index 0000000..75c6b88 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.26.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.27.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.27.woff2 new file mode 100644 index 0000000..3673520 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.27.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.28.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.28.woff2 new file mode 100644 index 0000000..dd95896 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.28.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.29.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.29.woff2 new file mode 100644 index 0000000..29be73b Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.29.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.3.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.3.woff2 new file mode 100644 index 0000000..9989e7d Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.3.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.30.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.30.woff2 new file mode 100644 index 0000000..8914afd Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.30.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.31.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.31.woff2 new file mode 100644 index 0000000..541cbc8 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.31.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.32.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.32.woff2 new file mode 100644 index 0000000..78f1e4a Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.32.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.33.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.33.woff2 new file mode 100644 index 0000000..d9eb2bc Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.33.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.34.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.34.woff2 new file mode 100644 index 0000000..37b7e70 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.34.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.35.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.35.woff2 new file mode 100644 index 0000000..106d32a Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.35.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.36.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.36.woff2 new file mode 100644 index 0000000..3041a3e Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.36.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.37.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.37.woff2 new file mode 100644 index 0000000..aa2774f Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.37.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.38.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.38.woff2 new file mode 100644 index 0000000..bec6ead Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.38.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.39.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.39.woff2 new file mode 100644 index 0000000..e6156a0 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.39.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.4.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.4.woff2 new file mode 100644 index 0000000..4767507 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.4.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.40.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.40.woff2 new file mode 100644 index 0000000..d742380 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.40.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.41.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.41.woff2 new file mode 100644 index 0000000..94cb95a Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.41.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.42.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.42.woff2 new file mode 100644 index 0000000..c961a20 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.42.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.43.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.43.woff2 new file mode 100644 index 0000000..fecaae5 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.43.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.44.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.44.woff2 new file mode 100644 index 0000000..06391ba Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.44.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.45.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.45.woff2 new file mode 100644 index 0000000..e79d0eb Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.45.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.46.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.46.woff2 new file mode 100644 index 0000000..cdb896f Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.46.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.47.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.47.woff2 new file mode 100644 index 0000000..29b151b Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.47.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.48.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.48.woff2 new file mode 100644 index 0000000..7db8b0f Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.48.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.49.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.49.woff2 new file mode 100644 index 0000000..662f1bf Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.49.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.5.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.5.woff2 new file mode 100644 index 0000000..a1f586b Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.5.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.50.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.50.woff2 new file mode 100644 index 0000000..1c0d6fa Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.50.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.51.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.51.woff2 new file mode 100644 index 0000000..fc1d4b4 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.51.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.52.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.52.woff2 new file mode 100644 index 0000000..5266bf7 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.52.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.53.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.53.woff2 new file mode 100644 index 0000000..693ffb7 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.53.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.54.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.54.woff2 new file mode 100644 index 0000000..463ab5c Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.54.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.55.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.55.woff2 new file mode 100644 index 0000000..cab1989 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.55.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.56.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.56.woff2 new file mode 100644 index 0000000..6425445 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.56.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.57.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.57.woff2 new file mode 100644 index 0000000..ac211a8 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.57.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.58.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.58.woff2 new file mode 100644 index 0000000..8455af3 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.58.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.59.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.59.woff2 new file mode 100644 index 0000000..f13c20f Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.59.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.6.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.6.woff2 new file mode 100644 index 0000000..0a02fb1 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.6.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.60.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.60.woff2 new file mode 100644 index 0000000..c078166 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.60.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.61.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.61.woff2 new file mode 100644 index 0000000..866e7be Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.61.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.62.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.62.woff2 new file mode 100644 index 0000000..afc2505 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.62.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.63.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.63.woff2 new file mode 100644 index 0000000..2a7d72f Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.63.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.64.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.64.woff2 new file mode 100644 index 0000000..3e065b1 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.64.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.65.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.65.woff2 new file mode 100644 index 0000000..7e6ef45 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.65.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.66.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.66.woff2 new file mode 100644 index 0000000..efe9206 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.66.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.67.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.67.woff2 new file mode 100644 index 0000000..60be02c Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.67.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.68.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.68.woff2 new file mode 100644 index 0000000..d655c07 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.68.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.69.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.69.woff2 new file mode 100644 index 0000000..507632b Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.69.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.7.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.7.woff2 new file mode 100644 index 0000000..1ec1727 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.7.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.70.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.70.woff2 new file mode 100644 index 0000000..bf33113 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.70.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.71.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.71.woff2 new file mode 100644 index 0000000..a85e819 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.71.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.72.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.72.woff2 new file mode 100644 index 0000000..f7bbec6 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.72.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.73.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.73.woff2 new file mode 100644 index 0000000..1c56811 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.73.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.74.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.74.woff2 new file mode 100644 index 0000000..fc656d5 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.74.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.75.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.75.woff2 new file mode 100644 index 0000000..0887d70 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.75.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.76.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.76.woff2 new file mode 100644 index 0000000..e72c7b2 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.76.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.77.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.77.woff2 new file mode 100644 index 0000000..8f99e47 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.77.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.78.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.78.woff2 new file mode 100644 index 0000000..40bb42b Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.78.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.79.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.79.woff2 new file mode 100644 index 0000000..f960824 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.79.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.8.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.8.woff2 new file mode 100644 index 0000000..c7f06d5 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.8.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.80.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.80.woff2 new file mode 100644 index 0000000..7935669 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.80.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.81.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.81.woff2 new file mode 100644 index 0000000..6e04928 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.81.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.82.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.82.woff2 new file mode 100644 index 0000000..82ede9c Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.82.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.83.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.83.woff2 new file mode 100644 index 0000000..4f96831 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.83.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.84.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.84.woff2 new file mode 100644 index 0000000..d38af37 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.84.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.85.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.85.woff2 new file mode 100644 index 0000000..d624eb6 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.85.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.86.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.86.woff2 new file mode 100644 index 0000000..fefd1a5 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.86.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.87.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.87.woff2 new file mode 100644 index 0000000..9cdba60 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.87.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.88.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.88.woff2 new file mode 100644 index 0000000..5eecc23 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.88.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.89.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.89.woff2 new file mode 100644 index 0000000..c1c2e6e Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.89.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.9.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.9.woff2 new file mode 100644 index 0000000..263012f Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.9.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.90.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.90.woff2 new file mode 100644 index 0000000..4b1624f Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.90.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.91.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.91.woff2 new file mode 100644 index 0000000..ab3681d Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.91.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.92.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.92.woff2 new file mode 100644 index 0000000..8a2eb86 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.92.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.93.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.93.woff2 new file mode 100644 index 0000000..503ef39 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.93.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.94.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.94.woff2 new file mode 100644 index 0000000..e948926 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.94.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.95.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.95.woff2 new file mode 100644 index 0000000..06f149c Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.95.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.96.woff2 b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.96.woff2 new file mode 100644 index 0000000..012172e Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Bold/HarmonyOS_Sans_SC_Bold.96.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/font.css b/resources/font/HarmonyOS_Sans_SC_Bold/font.css new file mode 100644 index 0000000..4bc7252 --- /dev/null +++ b/resources/font/HarmonyOS_Sans_SC_Bold/font.css @@ -0,0 +1,769 @@ +/** generated by https://github.com/voderl/font-slice */ +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.1.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+ff03,U+ff04,U+ff07,U+ff0a,U+ff17-ff19,U+ff1c,U+ff1d,U+ff20-ff3a,U+ff3c,U+ff3e-ff5b,U+ff5d,U+ffe0-ffe4; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.2.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+f92c,U+f979,U+fa11,U+fe30,U+fe31,U+fe33-fe44,U+fe49-fe52,U+fe54-fe57,U+fe59-fe66,U+fe68-fe6b; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.3.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+9f3d,U+9f3e,U+9f41,U+9f4a,U+9f4b,U+9f51,U+9f52,U+9f61-9f63,U+9f66,U+9f67,U+9f80,U+9f81,U+9f83,U+9f85-9f8d,U+9f90,U+9f91,U+9f94-9f96,U+9f98,U+9f9b,U+9f9c,U+9f9e,U+9fa0,U+9fa2; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.4.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+9dfa,U+9e0a,U+9e11,U+9e1a,U+9e1e,U+9e20,U+9e22,U+9e28-9e2c,U+9e2e-9e33,U+9e35-9e3b,U+9e3e,U+9e40-9e44,U+9e46-9e4e,U+9e51,U+9e53,U+9e55-9e58,U+9e5a-9e5c,U+9e5e-9e63,U+9e66-9e6e,U+9e71,U+9e73,U+9e75,U+9e78,U+9e79,U+9e7c-9e7e,U+9e82,U+9e86-9e88,U+9e8b,U+9e8c,U+9e90,U+9e91,U+9e93,U+9e95,U+9e97,U+9e9d,U+9ea4,U+9ea5,U+9ea9,U+9eaa,U+9eb4,U+9eb5,U+9eb8-9eba,U+9ebc-9ebf,U+9ec3,U+9ec9,U+9ecd,U+9ed0,U+9ed2,U+9ed3,U+9ed5,U+9ed6,U+9ed9,U+9edc,U+9edd,U+9edf,U+9ee0,U+9ee2,U+9ee5,U+9ee7-9eea,U+9eef,U+9ef1,U+9ef3,U+9ef4,U+9ef6,U+9ef9,U+9efb,U+9efc,U+9efe,U+9f0b,U+9f0d,U+9f10,U+9f14,U+9f17,U+9f19,U+9f22,U+9f29,U+9f2c,U+9f2f,U+9f31,U+9f37,U+9f39; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.5.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+9c3b,U+9c40,U+9c47-9c49,U+9c53,U+9c57,U+9c64,U+9c72,U+9c77,U+9c78,U+9c7b,U+9c7f,U+9c80,U+9c82,U+9c83,U+9c85-9c8c,U+9c8e-9c92,U+9c94-9c9b,U+9c9e-9ca3,U+9ca5-9ca7,U+9ca9,U+9cab,U+9cad,U+9cae,U+9cb1-9cb7,U+9cb9-9cbd,U+9cbf,U+9cc0,U+9cc3,U+9cc5-9cc7,U+9cc9-9cd1,U+9cd3-9cda,U+9cdc,U+9cdd,U+9cdf,U+9ce1-9ce3,U+9ce5,U+9ce9,U+9cee,U+9cef,U+9cf3,U+9cf4,U+9cf6,U+9cfc,U+9cfd,U+9d02,U+9d08,U+9d09,U+9d12,U+9d1b,U+9d1e,U+9d26,U+9d28,U+9d37,U+9d3b,U+9d3f,U+9d51,U+9d59,U+9d5c,U+9d5d,U+9d5f-9d61,U+9d6c,U+9d70,U+9d72,U+9d7a,U+9d7e,U+9d84,U+9d89,U+9d8f,U+9d92,U+9daf,U+9db4,U+9db8,U+9dbc,U+9dc4,U+9dc7,U+9dc9,U+9dd7,U+9ddf,U+9df2,U+9df9; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.6.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+9a5f,U+9a62,U+9a65,U+9a69,U+9a6b,U+9a6e,U+9a75,U+9a77-9a7a,U+9a7d,U+9a80,U+9a83,U+9a85,U+9a87-9a8a,U+9a8d,U+9a8e,U+9a90,U+9a92,U+9a93,U+9a95,U+9a96,U+9a98,U+9a99,U+9a9b-9aa2,U+9aa5,U+9aa7,U+9aaf-9ab1,U+9ab5,U+9ab6,U+9ab9,U+9aba,U+9abc,U+9ac0-9ac4,U+9ac8,U+9acb,U+9acc,U+9ace,U+9acf,U+9ad1,U+9ad2,U+9ad9,U+9adf,U+9ae1,U+9ae3,U+9aea,U+9aeb,U+9aed-9aef,U+9af4,U+9af9,U+9afb,U+9b03,U+9b04,U+9b06,U+9b08,U+9b0d,U+9b0f,U+9b10,U+9b13,U+9b18,U+9b1a,U+9b1f,U+9b22,U+9b23,U+9b25,U+9b27,U+9b28,U+9b2a,U+9b2f,U+9b31,U+9b32,U+9b3b,U+9b43,U+9b46-9b49,U+9b4d,U+9b4e,U+9b51,U+9b56,U+9b58,U+9b5a,U+9b5c,U+9b5f,U+9b61,U+9b62,U+9b6f,U+9b77,U+9b80,U+9b88,U+9b8b,U+9b8e,U+9b91,U+9b9f,U+9ba0,U+9ba8,U+9baa,U+9bab,U+9bad,U+9bae,U+9bb0,U+9bb1,U+9bb8,U+9bc9,U+9bca,U+9bd3,U+9bd6,U+9bdb,U+9be8,U+9bf0,U+9bf1,U+9c02,U+9c10,U+9c15,U+9c24,U+9c2d,U+9c32,U+9c39; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.7.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+98c8,U+98cf-98d6,U+98da,U+98db,U+98dd,U+98e1,U+98e2,U+98e7-98ea,U+98ec,U+98ee,U+98ef,U+98f2,U+98f4,U+98fc-98fe,U+9903,U+9905,U+9908,U+990a,U+990c,U+990d,U+9913,U+9914,U+9918,U+991a,U+991b,U+991e,U+9921,U+9928,U+992c,U+992e,U+9935,U+9938,U+9939,U+993d,U+993e,U+9945,U+994b,U+994c,U+9951,U+9952,U+9954,U+9955,U+9957,U+995e,U+9963,U+9966-9969,U+996b,U+996c,U+996f,U+9974,U+9975,U+9977-9979,U+997d,U+997e,U+9980,U+9981,U+9983,U+9984,U+9987,U+998a,U+998b,U+998d-9991,U+9993-9995,U+9997,U+9998,U+99a5,U+99ab-99ae,U+99b1,U+99b3,U+99b4,U+99bc,U+99bf,U+99c1,U+99c3-99c6,U+99cc,U+99d0,U+99d2,U+99d5,U+99db,U+99dd,U+99e1,U+99ed,U+99f1,U+99ff,U+9a01,U+9a03,U+9a04,U+9a0e,U+9a0f,U+9a11-9a13,U+9a19,U+9a1b,U+9a28,U+9a2b,U+9a30,U+9a32,U+9a37,U+9a40,U+9a45,U+9a4a,U+9a4d,U+9a4e,U+9a52,U+9a55,U+9a57,U+9a5a,U+9a5b; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.8.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+972a,U+972d,U+9730,U+973d,U+9742,U+9744,U+9748,U+9749,U+9750,U+9751,U+975a-975c,U+9763,U+9765,U+9766,U+976c,U+976d,U+9773,U+9776,U+977a,U+977c,U+9784,U+9785,U+978e,U+978f,U+9791,U+9792,U+9794,U+9795,U+9798,U+979a,U+979e,U+97a3,U+97a5,U+97a6,U+97a8,U+97ab,U+97ac,U+97ae,U+97af,U+97b2,U+97b4,U+97c6,U+97cb,U+97cc,U+97d3,U+97d8,U+97dc,U+97e1,U+97ea,U+97eb,U+97ee,U+97fb,U+97fe,U+97ff,U+9801-9803,U+9805,U+9806,U+9808,U+980c,U+9810-9814,U+9817,U+9818,U+981e,U+9820,U+9821,U+9824,U+9828,U+982b-982d,U+9830,U+9834,U+9838,U+9839,U+983c,U+9846,U+984d-984f,U+9851,U+9852,U+9854,U+9855,U+9857,U+9858,U+985a,U+985b,U+9862,U+9863,U+9865,U+9867,U+986b,U+986f-9871,U+9877,U+9878,U+987c,U+9880,U+9883,U+9885,U+9889,U+988b-988f,U+9893-9895,U+9899-989b,U+989e,U+989f,U+98a1,U+98a2,U+98a5-98a7,U+98a9,U+98af,U+98b1,U+98b6,U+98ba,U+98be,U+98c3,U+98c4,U+98c6,U+98c7; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.9.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+95b9-95ca,U+95cc,U+95cd,U+95d4-95d6,U+95d8,U+95e1,U+95e2,U+95e9,U+95f0,U+95f1,U+95f3,U+95f6,U+95fc,U+95fe,U+95ff,U+9602-9604,U+9606-960d,U+960f,U+9611-9613,U+9615-9617,U+9619-961b,U+961d,U+9621,U+9628,U+962f,U+963c-963e,U+9641,U+9642,U+9649,U+9654,U+965b-965f,U+9661,U+9663,U+9665,U+9667,U+9668,U+966c,U+9670,U+9672-9674,U+9678,U+967a,U+967d,U+9682,U+9685,U+9688,U+968a,U+968d,U+968e,U+9695,U+9697,U+9698,U+969e,U+96a0,U+96a3,U+96a4,U+96a8,U+96aa,U+96b0,U+96b1,U+96b3,U+96b4,U+96b7-96b9,U+96bb-96bd,U+96c9,U+96cb,U+96ce,U+96d1,U+96d2,U+96d6,U+96d9,U+96db,U+96dc,U+96de,U+96e0,U+96e3,U+96e9,U+96eb,U+96f0-96f2,U+96f9,U+96ff,U+9701,U+9702,U+9705,U+9708,U+970a,U+970e,U+970f,U+9711,U+9719,U+9727; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.10.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+94e7-94ec,U+94ee-94f1,U+94f3,U+94f5,U+94f7,U+94f9,U+94fb-94fd,U+94ff,U+9503,U+9504,U+9506,U+9507,U+9509,U+950a,U+950d-950f,U+9511-9518,U+951a-9520,U+9522,U+9528-952d,U+9530-953a,U+953c-953f,U+9543-9546,U+9548-9550,U+9552-9555,U+9557-955b,U+955d-9568,U+956a-956d,U+9570-9574,U+9583,U+9586,U+9589,U+958e,U+958f,U+9591,U+9592,U+9594,U+9598,U+9599,U+959e-95a0,U+95a2-95a6,U+95a8-95b2,U+95b4,U+95b8; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.11.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+9410-941a,U+941c-942b,U+942d,U+942e,U+9432,U+9433,U+9435,U+9438,U+943a,U+943e,U+9444,U+944a,U+9451,U+9452,U+945a,U+9462,U+9463,U+9465,U+9470-9487,U+948a-9492,U+9494-9498,U+949a,U+949c,U+949d,U+94a1,U+94a3,U+94a4,U+94a8,U+94aa-94ad,U+94af,U+94b2,U+94b4-94ba,U+94bc-94c0,U+94c4,U+94c6-94db,U+94de-94e6; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.12.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+92b7,U+92b9,U+92c1,U+92c5,U+92c6,U+92c8,U+92cc,U+92d0,U+92d2,U+92e4,U+92ea,U+92ec,U+92ed,U+92f0,U+92f3,U+92f8,U+92fc,U+9304,U+9306,U+9310,U+9312,U+9315,U+9318,U+931a,U+931e,U+9320-9322,U+9324,U+9326-9329,U+932b,U+932c,U+932f,U+9331,U+9332,U+9335,U+9336,U+933e,U+9340,U+9341,U+934a-9360,U+9362,U+9363,U+9365-936b,U+936e,U+9375,U+937e,U+9382,U+938a,U+938c,U+938f,U+9393,U+9394,U+9396,U+9397,U+939a,U+93a2,U+93a7,U+93ac-93cd,U+93d0,U+93d1,U+93d6-93d8,U+93de,U+93df,U+93e1,U+93e2,U+93e4,U+93f8,U+93fb,U+93fd,U+940e,U+940f; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.13.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+914c,U+914e-9150,U+9154,U+9157,U+915a,U+915d,U+915e,U+9161-9164,U+9169,U+9170,U+9172,U+9174,U+9179,U+917a,U+917d,U+917e,U+9182,U+9183,U+9185,U+918c,U+918d,U+9190,U+9191,U+919a,U+919c,U+91a1-91a4,U+91a8,U+91aa-91af,U+91b4,U+91b5,U+91b8,U+91ba,U+91be,U+91c0,U+91c1,U+91c6,U+91c8,U+91cb,U+91d0,U+91d2,U+91d7,U+91d8,U+91dd,U+91e3,U+91e6,U+91e7,U+91ed,U+91f0,U+91f5,U+91f9,U+9200,U+9205,U+9207-920a,U+920d,U+920e,U+9210,U+9214,U+9215,U+921c,U+921e,U+9221,U+9223-9227,U+9229,U+922a,U+922d,U+9234,U+9235,U+9237,U+9239,U+923a,U+923c-9240,U+9244-9246,U+9249,U+924e,U+924f,U+9251,U+9253,U+9257,U+925b,U+925e,U+9262,U+9264-9266,U+9268,U+926c,U+926f,U+9271,U+927b,U+927e,U+9280,U+9283,U+9285-928a,U+928e,U+9291,U+9293,U+9296,U+9298,U+929c,U+929d,U+92a8,U+92ab-92ae,U+92b3,U+92b6; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.14.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+8fe2-8fe5,U+8fe8,U+8fe9,U+8fee,U+8ff3,U+8ff4,U+8ff8,U+8ffa,U+9004,U+900b,U+9011,U+9015,U+9016,U+901e,U+9021,U+9026,U+902d,U+902f,U+9031,U+9035,U+9036,U+9039,U+903a,U+9041,U+9044-9046,U+904a,U+904f-9052,U+9054,U+9055,U+9058,U+9059,U+905b-905e,U+9060-9062,U+9068,U+9069,U+906f,U+9072,U+9074,U+9076-907a,U+907c,U+907d,U+9081,U+9083,U+9085,U+9087-908b,U+908f,U+9095,U+9097,U+9099-909b,U+909d,U+90a0,U+90a1,U+90a8,U+90a9,U+90ac,U+90b0,U+90b2-90b4,U+90b6,U+90b8,U+90ba,U+90bd,U+90be,U+90c3-90c5,U+90c7,U+90c8,U+90cf,U+90d0,U+90d3,U+90d5,U+90d7,U+90da-90dc,U+90de,U+90e2,U+90e4,U+90e6,U+90e7,U+90ea,U+90eb,U+90ef,U+90f4,U+90f5,U+90f7,U+90fe-9100,U+9104,U+9109,U+910c,U+9112,U+9114,U+9115,U+9118,U+911c,U+911e,U+9120,U+9122,U+9123,U+9127,U+912d,U+912f-9132,U+9139,U+913a,U+9143,U+9146,U+9149,U+914a; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.15.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+8e2d-8e31,U+8e34,U+8e35,U+8e39,U+8e3a,U+8e3d,U+8e40-8e42,U+8e47,U+8e49-8e4b,U+8e50-8e53,U+8e59,U+8e5a,U+8e5f,U+8e60,U+8e64,U+8e69,U+8e6c,U+8e70,U+8e74,U+8e76,U+8e7a-8e7c,U+8e7f,U+8e84,U+8e85,U+8e87,U+8e89,U+8e8b,U+8e8d,U+8e8f,U+8e90,U+8e94,U+8e99,U+8e9c,U+8e9e,U+8eaa,U+8eac,U+8eb0,U+8eb6,U+8ec0,U+8ec6,U+8eca-8ece,U+8ed2,U+8eda,U+8edf,U+8ee2,U+8eeb,U+8ef8,U+8efb-8efe,U+8f03,U+8f09,U+8f0b,U+8f12-8f15,U+8f1b,U+8f1d,U+8f1f,U+8f29,U+8f2a,U+8f2f,U+8f36,U+8f38,U+8f3b,U+8f3e,U+8f3f,U+8f44,U+8f45,U+8f49,U+8f4d,U+8f4e,U+8f5f,U+8f6b,U+8f6d,U+8f71-8f73,U+8f75,U+8f76,U+8f78-8f7a,U+8f7c,U+8f7e,U+8f81,U+8f82,U+8f84,U+8f87,U+8f8a,U+8f8b,U+8f8d-8f8f,U+8f94,U+8f95,U+8f97-8f9a,U+8fa6,U+8fad-8faf,U+8fb2,U+8fb5-8fb7,U+8fba-8fbc,U+8fbf,U+8fc2,U+8fcb,U+8fcd,U+8fd3,U+8fd5,U+8fd7,U+8fda; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.16.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+8caf,U+8cb0,U+8cb3,U+8cb4,U+8cb6-8cb9,U+8cbb-8cbd,U+8cbf-8cc4,U+8cc7,U+8cc8,U+8cca,U+8ccd,U+8cd1,U+8cd3,U+8cdb,U+8cdc,U+8cde,U+8ce0,U+8ce2-8ce4,U+8ce6-8ce8,U+8cea,U+8ced,U+8cf4,U+8cf8,U+8cfa,U+8cfc,U+8cfd,U+8d04,U+8d05,U+8d07,U+8d08,U+8d0a,U+8d0d,U+8d0f,U+8d13,U+8d14,U+8d16,U+8d1b,U+8d20,U+8d2e,U+8d30,U+8d32,U+8d33,U+8d36,U+8d3b,U+8d3d,U+8d40,U+8d42,U+8d43,U+8d45,U+8d46,U+8d48-8d4a,U+8d4d,U+8d51,U+8d53,U+8d55,U+8d59,U+8d5c,U+8d5d,U+8d5f,U+8d61,U+8d66,U+8d67,U+8d6a,U+8d6d,U+8d71,U+8d73,U+8d84,U+8d90,U+8d91,U+8d94,U+8d95,U+8d99,U+8da8,U+8daf,U+8db1,U+8db5,U+8db8,U+8dba,U+8dbc,U+8dbf,U+8dc2,U+8dc4,U+8dc6,U+8dcb,U+8dce,U+8dcf,U+8dd6,U+8dd7,U+8dda,U+8ddb,U+8dde,U+8de1,U+8de3,U+8de4,U+8de9,U+8deb,U+8dec,U+8df0,U+8df1,U+8df6-8dfd,U+8e05,U+8e07,U+8e09,U+8e0a,U+8e0c,U+8e0e,U+8e10,U+8e14,U+8e1d-8e1f,U+8e23,U+8e26,U+8e2b,U+8e2c; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.17.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+8b5e,U+8b60,U+8b6c,U+8b6f,U+8b70,U+8b72,U+8b74,U+8b77,U+8b7d,U+8b80,U+8b83,U+8b8a,U+8b8c,U+8b90,U+8b93,U+8b99,U+8b9a,U+8ba0,U+8ba3,U+8ba5-8ba7,U+8baa-8bac,U+8bb3-8bb5,U+8bb7,U+8bb9,U+8bc2,U+8bc3,U+8bc5,U+8bcb,U+8bcc,U+8bce-8bd0,U+8bd2-8bd4,U+8bd6,U+8bd8,U+8bd9,U+8bdc,U+8bdf,U+8be3,U+8be4,U+8be7-8be9,U+8beb,U+8bec,U+8bee,U+8bf0,U+8bf2,U+8bf3,U+8bf6,U+8bf9,U+8bfc,U+8bfd,U+8bff,U+8c00,U+8c02,U+8c04,U+8c06,U+8c07,U+8c0c,U+8c0f,U+8c11,U+8c12,U+8c14-8c1b,U+8c1d-8c21,U+8c24,U+8c25,U+8c27,U+8c2a-8c2c,U+8c2e-8c30,U+8c32-8c36,U+8c3f,U+8c47-8c4c,U+8c4e-8c50,U+8c54-8c56,U+8c62,U+8c68,U+8c6c,U+8c73,U+8c78,U+8c7a,U+8c82,U+8c85,U+8c89,U+8c8a,U+8c8d,U+8c8e,U+8c90,U+8c93,U+8c94,U+8c98,U+8c9d,U+8c9e,U+8ca0-8ca2,U+8ca7-8cac; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.18.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+8a02,U+8a03,U+8a07-8a0a,U+8a0e,U+8a0f,U+8a13,U+8a15-8a18,U+8a1a,U+8a1b,U+8a1d,U+8a1f,U+8a22,U+8a23,U+8a25,U+8a2b,U+8a2d,U+8a31,U+8a33,U+8a34,U+8a36-8a38,U+8a3a,U+8a3c,U+8a3e,U+8a40,U+8a41,U+8a46,U+8a48,U+8a50,U+8a52,U+8a54,U+8a55,U+8a58,U+8a5b,U+8a5d-8a63,U+8a66,U+8a69-8a6b,U+8a6d,U+8a6e,U+8a70,U+8a72,U+8a73,U+8a7a,U+8a85,U+8a87,U+8a8a,U+8a8c,U+8a8d,U+8a90-8a92,U+8a95,U+8a98,U+8aa0,U+8aa1,U+8aa3-8aa6,U+8aa8,U+8aa9,U+8aac-8aae,U+8ab0,U+8ab2,U+8ab8,U+8ab9,U+8abc,U+8abe,U+8abf,U+8ac7,U+8acf,U+8ad2,U+8ad6,U+8ad7,U+8adb,U+8adc,U+8adf,U+8ae1,U+8ae6-8ae8,U+8aeb,U+8aed,U+8aee,U+8af1,U+8af3,U+8af4,U+8af7,U+8af8,U+8afa,U+8afe,U+8b00-8b02,U+8b07,U+8b0a,U+8b0c,U+8b0e,U+8b10,U+8b17,U+8b19,U+8b1b,U+8b1d,U+8b20,U+8b21,U+8b26,U+8b28,U+8b2c,U+8b33,U+8b39,U+8b3e,U+8b3f,U+8b41,U+8b45,U+8b49,U+8b4c,U+8b4f,U+8b57,U+8b58,U+8b5a,U+8b5c; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.19.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+8869,U+886a,U+886e,U+886f,U+8872,U+8879,U+887d-887f,U+8882,U+8884-8886,U+8888,U+888f,U+8892,U+8893,U+889b,U+88a2,U+88a4,U+88a6,U+88a8,U+88aa,U+88ae,U+88b1,U+88b4,U+88b7,U+88bc,U+88c0,U+88c6-88c9,U+88ce,U+88cf,U+88d1-88d3,U+88d8,U+88db-88dd,U+88df,U+88e1-88e3,U+88e5,U+88e8,U+88ec,U+88f0,U+88f1,U+88f3,U+88f4,U+88fc-88fe,U+8900,U+8902,U+8906,U+8907,U+8909-890c,U+8912-8915,U+8918-891b,U+8921,U+8925,U+892b,U+8930,U+8932,U+8934,U+8936,U+893b,U+893d,U+8941,U+894c,U+8955,U+8956,U+8959,U+895c,U+895e-8960,U+8966,U+896a,U+896c,U+896f,U+8970,U+8972,U+897b,U+897e,U+8980,U+8983,U+8985,U+8987,U+8988,U+898c,U+898f,U+8993,U+8997,U+899a,U+89a1,U+89a7,U+89a9,U+89aa,U+89b2,U+89b3,U+89b7,U+89c0,U+89c7,U+89ca-89cc,U+89ce-89d1,U+89d6,U+89da,U+89dc,U+89de,U+89e5,U+89e7,U+89eb,U+89ef,U+89f1,U+89f3,U+89f4,U+89f8,U+89ff,U+8a01; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.20.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+86e4,U+86e6,U+86e9,U+86ed,U+86ef-86f4,U+86f8,U+86f9,U+86fb,U+86fe,U+8703,U+8706-870a,U+870d,U+8711-8713,U+871a,U+871e,U+8722,U+8723,U+8725,U+8729,U+872e,U+8731,U+8734,U+8737,U+873a,U+873b,U+873e-8740,U+8742,U+8747,U+8748,U+8753,U+8755,U+8757,U+8758,U+875d,U+875f,U+8762-8766,U+8768,U+876e,U+8770,U+8772,U+8775,U+8778,U+877b-877e,U+8782,U+8785,U+8788,U+878b,U+8793,U+8797,U+879a,U+879e-87a0,U+87a2,U+87a3,U+87a8,U+87ab-87ad,U+87af,U+87b3,U+87b5,U+87bd,U+87c0,U+87c4,U+87c6,U+87ca,U+87cb,U+87d1,U+87d2,U+87db,U+87dc,U+87de,U+87e0,U+87e5,U+87ea,U+87ec,U+87ee,U+87f2,U+87f3,U+87fb,U+87fd,U+87fe,U+8802,U+8803,U+8805,U+880a,U+880b,U+880d,U+8813-8816,U+8819,U+881b,U+881f,U+8821,U+8823,U+8831,U+8832,U+8835,U+8836,U+8839,U+883b,U+883c,U+8844,U+8846,U+884a,U+884e,U+8852,U+8853,U+8855,U+8859,U+885b,U+885d,U+885e,U+8862,U+8864; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.21.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+8532,U+8534,U+8535,U+8538-853a,U+853c,U+8543,U+8545,U+8548,U+854e,U+8553,U+8556,U+8557,U+8559,U+855e,U+8561,U+8564,U+8565,U+8568-856a,U+856d,U+856f,U+8570,U+8572,U+8576,U+8579-857b,U+8580,U+8585,U+8586,U+8588,U+858a,U+858f,U+8591,U+8594,U+8599,U+859c,U+85a2,U+85a4,U+85a6,U+85a8,U+85a9,U+85ab,U+85ac,U+85ae,U+85b7-85b9,U+85be,U+85c1,U+85c7,U+85cd,U+85d0,U+85d3,U+85d5,U+85dc,U+85dd,U+85df,U+85e0,U+85e5,U+85e6,U+85e8-85ea,U+85f4,U+85f9,U+85fe,U+85ff,U+8602,U+8605-8607,U+860a,U+860b,U+8616,U+8618,U+861a,U+8627,U+8629,U+862d,U+8638,U+863c,U+863f,U+864d,U+864f,U+8652-8655,U+865b,U+865c,U+865f,U+8662,U+8667,U+866c,U+866e,U+8671,U+8675,U+867a-867c,U+867f,U+868b,U+868d,U+8693,U+869c,U+869d,U+86a1,U+86a3,U+86a4,U+86a7-86a9,U+86ac,U+86af-86b1,U+86b4-86b6,U+86ba,U+86c0,U+86c4,U+86c6,U+86c9,U+86ca,U+86cd-86d1,U+86d4,U+86d8,U+86de,U+86df; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.22.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+83b4,U+83b6,U+83b8,U+83ba,U+83bc,U+83bd,U+83bf,U+83c0,U+83c2,U+83c5,U+83c8,U+83c9,U+83cb,U+83d1,U+83d3-83d6,U+83d8,U+83db,U+83dd,U+83df,U+83e1,U+83e5,U+83ea,U+83eb,U+83f0,U+83f4,U+83f8,U+83f9,U+83fb,U+83fd,U+83ff,U+8401,U+8406,U+840a,U+840b,U+840f,U+8411,U+8418,U+841c,U+8420,U+8422-8424,U+8426,U+8429,U+842c,U+8438,U+8439,U+843b,U+843c,U+843f,U+8446,U+8447,U+8449,U+844e,U+8451,U+8452,U+8456,U+8459,U+845a,U+845c,U+8462,U+8466,U+846d,U+846f,U+8470,U+8473,U+8476-8478,U+847a,U+847d,U+8484,U+8485,U+8487,U+8489,U+848c,U+848e,U+8490,U+8493,U+8494,U+8497,U+849b,U+849e,U+849f,U+84a1,U+84a5,U+84a8,U+84af,U+84b4,U+84b9-84bf,U+84c1,U+84c2,U+84c5-84c7,U+84ca,U+84cb,U+84cd,U+84d0,U+84d1,U+84d3,U+84d6,U+84df,U+84e0,U+84e2,U+84e3,U+84e5-84e7,U+84ee,U+84f3,U+84f6,U+84fa,U+84fc,U+84ff,U+8500,U+850c,U+8511,U+8514,U+8515,U+8517,U+8518,U+851f,U+8523,U+8525,U+8526,U+8529,U+852b,U+852d; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.23.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+82a9-82ab,U+82ae,U+82b0,U+82b2,U+82b4-82b6,U+82bc,U+82be,U+82c0-82c2,U+82c4-82c8,U+82ca-82cc,U+82ce,U+82d0,U+82d2,U+82d3,U+82d5,U+82d6,U+82d8,U+82d9,U+82dc-82de,U+82e0-82e4,U+82e7,U+82e9-82eb,U+82ed,U+82ee,U+82f3,U+82f4,U+82f7,U+82f8,U+82fa-8301,U+8306-8308,U+830c,U+830d,U+830f,U+8311,U+8313-8315,U+8318,U+831a,U+831b,U+831d,U+8324,U+8327,U+832a,U+832c,U+832d,U+832f,U+8331-8334,U+833a-833c,U+8340,U+8343-8345,U+8347,U+8348,U+834a,U+834c,U+834f,U+8351,U+8356,U+8358-835c,U+835e,U+8360,U+8364-8366,U+8368-836a,U+836c-836e,U+8373,U+8378,U+837b-837d,U+837f,U+8380,U+8382,U+8388,U+838a,U+838b,U+8392,U+8394,U+8396,U+8398,U+8399,U+839b,U+839c,U+83a0,U+83a2,U+83a3,U+83a8-83aa,U+83ae-83b0,U+83b3; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.24.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+814d,U+814e,U+8151,U+8153,U+8158-815a,U+815e,U+8160,U+8166-8169,U+816b,U+816d,U+8171,U+8173,U+8174,U+8178,U+817c,U+817d,U+8182,U+8188,U+8191,U+8198-819b,U+81a0,U+81a3,U+81a5,U+81a6,U+81a9,U+81b6,U+81ba,U+81bb,U+81bd,U+81bf,U+81c1,U+81c3,U+81c6,U+81c9,U+81ca,U+81cc,U+81cd,U+81d1,U+81d3,U+81d4,U+81d8,U+81db,U+81dc,U+81de,U+81df,U+81e5,U+81e7-81e9,U+81eb,U+81ec,U+81ee,U+81ef,U+81f5,U+81f8,U+81fa,U+81fc,U+81fe,U+8200-8202,U+8204,U+8208-820a,U+820e-8210,U+8216-8218,U+821b,U+821c,U+8221-8224,U+8226-8228,U+822b,U+822d,U+822f,U+8232-8234,U+8237,U+8238,U+823a,U+823b,U+823e,U+8244,U+8249,U+824b,U+824f,U+8259,U+825a,U+825f,U+8266,U+8268,U+826e,U+8271,U+8276-8279,U+827d,U+827f,U+8283,U+8284,U+8288-828a,U+828d-8291,U+8293,U+8294,U+8296-8298,U+829f-82a1,U+82a3,U+82a4,U+82a7,U+82a8; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.25.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+7ffa,U+7ffe,U+8004,U+8006,U+800b,U+800e,U+8011,U+8012,U+8014,U+8016,U+8018,U+8019,U+801c,U+801e,U+8026-802a,U+8031,U+8034,U+8035,U+8037,U+8043,U+804b,U+804d,U+8052,U+8056,U+8059,U+805e,U+8061,U+8068,U+8069,U+806e-8074,U+8076-8078,U+807c-8080,U+8082,U+8084,U+8085,U+8088,U+808f,U+8093,U+809c,U+809f,U+80ab,U+80ad,U+80ae,U+80b1,U+80b6-80b8,U+80bc,U+80bd,U+80c2,U+80c4,U+80ca,U+80cd,U+80d1,U+80d4,U+80d7,U+80d9-80db,U+80dd,U+80e0,U+80e4,U+80e5,U+80e7-80ed,U+80ef-80f1,U+80f3,U+80f4,U+80fc,U+8101,U+8104,U+8105,U+8107,U+8108,U+810c-810e,U+8112-8115,U+8117-8119,U+811b-811f,U+8121-8130,U+8132-8134,U+8137,U+8139,U+813f,U+8140,U+8142,U+8146,U+8148; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.26.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+7ed7,U+7edb,U+7ee0-7ee2,U+7ee5,U+7ee6,U+7ee8,U+7eeb,U+7ef0-7ef2,U+7ef6,U+7efa,U+7efb,U+7efe,U+7f01-7f04,U+7f08,U+7f0a-7f12,U+7f17,U+7f19,U+7f1b,U+7f1c,U+7f1f,U+7f21-7f23,U+7f25-7f28,U+7f2a-7f33,U+7f35-7f37,U+7f3d,U+7f42,U+7f44,U+7f45,U+7f4c,U+7f4d,U+7f52,U+7f54,U+7f58,U+7f59,U+7f5d,U+7f5f-7f61,U+7f63,U+7f65,U+7f68,U+7f70,U+7f71,U+7f73-7f75,U+7f77,U+7f79,U+7f7d,U+7f7e,U+7f85,U+7f86,U+7f88,U+7f89,U+7f8b,U+7f8c,U+7f90,U+7f91,U+7f94-7f96,U+7f98-7f9b,U+7f9d,U+7f9f,U+7fa3,U+7fa7-7fa9,U+7fac-7fb2,U+7fb4,U+7fb6,U+7fb8,U+7fbc,U+7fbf,U+7fc0,U+7fc3,U+7fca,U+7fcc,U+7fce,U+7fd2,U+7fd5,U+7fd9-7fdb,U+7fdf,U+7fe3,U+7fe5-7fe7,U+7fe9,U+7feb,U+7fec,U+7fee,U+7fef,U+7ff1,U+7ff3,U+7ff4,U+7ff9; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.27.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+7dc4,U+7dc7,U+7dc8,U+7dca-7dcd,U+7dcf,U+7dd1,U+7dd2,U+7dd4,U+7dd6-7dd8,U+7dda-7de0,U+7de2-7de6,U+7de8-7ded,U+7def,U+7df1-7df5,U+7df7,U+7df9,U+7dfb,U+7dfc,U+7dfe-7e02,U+7e04,U+7e08-7e0b,U+7e12,U+7e1b,U+7e1e,U+7e20,U+7e22,U+7e23,U+7e26,U+7e29,U+7e2b,U+7e2e,U+7e2f,U+7e31,U+7e37,U+7e39-7e3e,U+7e40,U+7e43,U+7e44,U+7e46,U+7e47,U+7e4a,U+7e4b,U+7e4d,U+7e4e,U+7e51,U+7e54-7e56,U+7e58-7e5b,U+7e5d,U+7e5e,U+7e61,U+7e66,U+7e67,U+7e69-7e6b,U+7e6d,U+7e70,U+7e73,U+7e77,U+7e79,U+7e7b-7e7d,U+7e81,U+7e82,U+7e8c,U+7e8d,U+7e8f,U+7e92-7e94,U+7e96,U+7e98,U+7e9a-7e9c,U+7e9e,U+7e9f,U+7ea1,U+7ea3,U+7ea5,U+7ea8,U+7ea9,U+7eab,U+7ead,U+7eae,U+7eb0,U+7ebb,U+7ebe,U+7ec0-7ec2,U+7ec9,U+7ecb,U+7ecc,U+7ed0,U+7ed4; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.28.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+7ccc,U+7ccd,U+7cd7,U+7cdc,U+7cde,U+7ce0,U+7ce4,U+7ce5,U+7ce7,U+7ce8,U+7cec,U+7cf0,U+7cf5-7cf9,U+7cfc,U+7cfe,U+7d00,U+7d04-7d0b,U+7d0d,U+7d10-7d14,U+7d17-7d19,U+7d1b-7d1f,U+7d21,U+7d24-7d26,U+7d28-7d2a,U+7d2c-7d2e,U+7d30,U+7d31,U+7d33,U+7d35,U+7d36,U+7d38-7d3a,U+7d40,U+7d42-7d44,U+7d46,U+7d4b,U+7d4c,U+7d4f,U+7d51,U+7d54-7d56,U+7d58,U+7d5b,U+7d5c,U+7d5e,U+7d61-7d63,U+7d66,U+7d68,U+7d6a-7d6c,U+7d6f,U+7d71-7d73,U+7d75-7d77,U+7d79,U+7d7a,U+7d7e,U+7d81,U+7d84-7d8b,U+7d8d,U+7d8f,U+7d91,U+7d94,U+7d96,U+7d98-7d9a,U+7d9c-7da0,U+7da2,U+7da6,U+7daa-7db1,U+7db4-7db8,U+7dba-7dbf,U+7dc1; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.29.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+7bc3,U+7bc4,U+7bc6,U+7bc8-7bcc,U+7bd1,U+7bd3,U+7bd4,U+7bd9,U+7bda,U+7bdd,U+7be0,U+7be1,U+7be4-7be6,U+7be9,U+7bea,U+7bef,U+7bf4,U+7bf6,U+7bfc,U+7bfe,U+7c01,U+7c03,U+7c07,U+7c08,U+7c0a-7c0d,U+7c0f,U+7c11,U+7c15,U+7c16,U+7c19,U+7c1e-7c21,U+7c23,U+7c24,U+7c26,U+7c28-7c33,U+7c35,U+7c37-7c3b,U+7c3d,U+7c3e,U+7c40,U+7c41,U+7c43,U+7c47,U+7c48,U+7c4c,U+7c50,U+7c53,U+7c54,U+7c59,U+7c5f,U+7c60,U+7c63-7c65,U+7c6c,U+7c6e,U+7c72,U+7c74,U+7c79,U+7c7a,U+7c7c,U+7c81,U+7c82,U+7c84,U+7c85,U+7c88,U+7c8a-7c91,U+7c93-7c96,U+7c99,U+7c9b-7c9e,U+7ca0-7ca2,U+7ca6-7ca9,U+7cac,U+7caf-7cb3,U+7cb5-7cb7,U+7cba-7cbd,U+7cbf-7cc2,U+7cc5,U+7cc7-7cc9; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.30.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+7aca,U+7ad1,U+7ad2,U+7ada-7add,U+7ae1,U+7ae4,U+7ae6,U+7af4-7af7,U+7afa,U+7afb,U+7afd-7b0a,U+7b0c,U+7b0e,U+7b0f,U+7b13,U+7b15,U+7b16,U+7b18,U+7b19,U+7b1e-7b20,U+7b22-7b25,U+7b29-7b2b,U+7b2d,U+7b2e,U+7b30-7b3b,U+7b3e,U+7b3f,U+7b41,U+7b42,U+7b44-7b47,U+7b4a,U+7b4c-7b50,U+7b58,U+7b5a,U+7b5c,U+7b60,U+7b66,U+7b67,U+7b69,U+7b6c-7b6f,U+7b72-7b76,U+7b7b-7b7d,U+7b7f,U+7b82,U+7b85,U+7b87,U+7b8b-7b96,U+7b98,U+7b99,U+7b9b-7b9f,U+7ba2-7ba4,U+7ba6-7bac,U+7bae-7bb0,U+7bb4,U+7bb7-7bb9,U+7bbb,U+7bc0,U+7bc1; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.31.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+797c,U+797e-7980,U+7982,U+7986,U+7987,U+7989-798e,U+7992,U+7994,U+7995,U+7997,U+7998,U+799a-799c,U+799f,U+79a3-79a6,U+79a8-79ac,U+79ae-79b1,U+79b3-79b5,U+79b8,U+79ba,U+79bf,U+79c2,U+79c6,U+79c8,U+79cf,U+79d5,U+79d6,U+79dd,U+79de,U+79e3,U+79e7,U+79e8,U+79eb,U+79ed,U+79f4,U+79f7,U+79f8,U+79fa,U+79fe,U+7a02,U+7a03,U+7a05,U+7a0a,U+7a14,U+7a17,U+7a19,U+7a1c,U+7a1e,U+7a1f,U+7a23,U+7a25,U+7a26,U+7a2c,U+7a2e,U+7a30-7a32,U+7a36,U+7a37,U+7a39,U+7a3c,U+7a40,U+7a42,U+7a47,U+7a49,U+7a4c-7a4f,U+7a51,U+7a55,U+7a5b,U+7a5d,U+7a5e,U+7a62,U+7a63,U+7a66,U+7a68,U+7a69,U+7a6b,U+7a70,U+7a78,U+7a80,U+7a85-7a88,U+7a8a,U+7a90,U+7a93-7a96,U+7a98,U+7a9b,U+7a9c,U+7a9e,U+7aa0,U+7aa1,U+7aa3,U+7aa8-7aaa,U+7aac-7ab0,U+7ab3,U+7ab8,U+7aba,U+7abd-7abf,U+7ac4,U+7ac5,U+7ac7,U+7ac8; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.32.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+783e,U+7841-7844,U+7847-7849,U+784b,U+784c,U+784e-7854,U+7856,U+7857,U+7859,U+785a,U+7865,U+7869,U+786a,U+786d,U+786f,U+7876,U+7877,U+787c,U+787e,U+787f,U+7881,U+7887-7889,U+7893,U+7894,U+7898-789e,U+78a1,U+78a3,U+78a5,U+78a9,U+78ad,U+78b2,U+78b4,U+78b6,U+78b9,U+78ba,U+78bc,U+78bf,U+78c3,U+78c9,U+78cb,U+78d0-78d2,U+78d4,U+78d9,U+78da,U+78dc,U+78de,U+78e1,U+78e5,U+78e6,U+78ea,U+78ec,U+78ef,U+78f1,U+78f2,U+78f4,U+78fa,U+78fb,U+78fe,U+7901,U+7902,U+7905,U+7907,U+7909,U+790b,U+790c,U+790e,U+7910,U+7913,U+7919-791b,U+791e,U+791f,U+7921,U+7924,U+7926,U+792a,U+792b,U+7934,U+7936,U+7939,U+793b,U+793d,U+7940,U+7942,U+7943,U+7945-7947,U+7949,U+794a,U+794c,U+794e-7951,U+7953-7955,U+7957-795a,U+795c,U+795f,U+7960,U+7962,U+7964,U+7966,U+7967,U+7969,U+796b,U+796f,U+7972,U+7974,U+7979,U+797b; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.33.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+770f,U+7712,U+7714,U+7716,U+7719-771b,U+771e,U+7721,U+7722,U+7726,U+7728,U+772b-7730,U+7732-7736,U+7739,U+773a,U+773d-773f,U+7743,U+7746,U+7747,U+774c-774f,U+7751,U+7752,U+7758-775a,U+775c-775e,U+7762,U+7765,U+7766,U+7768-776a,U+776c,U+776d,U+7771,U+7772,U+777a,U+777c-777e,U+7780,U+7785,U+7787,U+778b-778d,U+778f-7791,U+7793,U+779e-77a0,U+77a2,U+77a5,U+77ad,U+77af,U+77b4-77b7,U+77bd-77c0,U+77c2,U+77c5,U+77c7,U+77cd,U+77d6,U+77d7,U+77d9,U+77da,U+77dd,U+77de,U+77e7,U+77ea,U+77ec,U+77ef,U+77f8,U+77fb,U+77fd,U+77fe,U+7800,U+7803,U+7806,U+7809,U+780f-7812,U+7815,U+7817,U+7818,U+781a-781f,U+7821-7823,U+7825-7827,U+7829,U+782b-7830,U+7832,U+7833,U+7835,U+7837,U+7839-783c; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.34.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+760a-760e,U+7610-7619,U+761b-761d,U+761f-7622,U+7625,U+7627-762a,U+762e-7630,U+7632-7635,U+7638-763a,U+763c,U+763d,U+763f,U+7640,U+7642,U+7643,U+7647,U+7648,U+764d,U+764e,U+7652,U+7654,U+7658,U+765a,U+765c,U+765e,U+765f,U+7661-7663,U+7665,U+7669,U+766c,U+766e,U+766f,U+7671-7673,U+7675,U+7676,U+7678-767a,U+767f,U+7681,U+7683,U+7688,U+768a-768c,U+768e,U+7690-7692,U+7695,U+7698,U+769a,U+769b,U+769d-76a0,U+76a2,U+76a4-76a7,U+76ab,U+76ac,U+76af,U+76b0,U+76b2,U+76b4,U+76b5,U+76ba,U+76bb,U+76bf,U+76c2,U+76c3,U+76c5,U+76c9,U+76cc-76ce,U+76dc-76de,U+76e1-76ea,U+76f1,U+76f9-76fb,U+76fd,U+76ff,U+7700,U+7703,U+7704,U+7707,U+7708,U+770c-770e; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.35.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+74ef,U+74f4,U+74ff,U+7501,U+7503,U+7505,U+7508,U+750d,U+750f,U+7511,U+7513,U+7515,U+7517,U+7519,U+7521-7527,U+752a,U+752c,U+752d,U+752f,U+7534,U+7536,U+753a,U+753e,U+7540,U+7544,U+7547-754b,U+754d,U+754e,U+7550-7553,U+7556,U+7557,U+755a,U+755b,U+755d,U+755e,U+7560,U+7562,U+7564,U+7566-7568,U+756b,U+756c,U+756f-7573,U+7575,U+7579-757c,U+757e,U+757f,U+7581-7584,U+7587,U+7589-758e,U+7590,U+7592,U+7594,U+7596,U+7599,U+759a,U+759d,U+759f,U+75a0,U+75a3,U+75a5,U+75a8,U+75ac,U+75ad,U+75b0,U+75b1,U+75b3-75b5,U+75b8,U+75bd,U+75c1-75c4,U+75c8-75ca,U+75cc,U+75cd,U+75d4,U+75d6,U+75d9,U+75de,U+75e0,U+75e2-75e4,U+75e6-75ea,U+75f1-75f3,U+75f7,U+75f9,U+75fa,U+75fc,U+75fe-7601,U+7603,U+7605,U+7606,U+7608,U+7609; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.36.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+73e7-73ea,U+73ee-73f0,U+73f2,U+73f4,U+73f5,U+73f7,U+73f9,U+73fa,U+73fc,U+73fd,U+73ff-7402,U+7404,U+7407,U+7408,U+740a-740f,U+7418,U+741a-741c,U+741e,U+7424,U+7425,U+7428,U+7429,U+742c-7430,U+7432,U+7435,U+7436,U+7438-743b,U+743e-7441,U+7443-7446,U+7448,U+744a,U+744b,U+7452,U+7457,U+745b,U+745d,U+7460,U+7462-7465,U+7467-746a,U+746d,U+746f,U+7471,U+7473,U+7474,U+7477,U+747a,U+747e,U+7481,U+7482,U+7484,U+7486,U+7488-748b,U+748e,U+748f,U+7493,U+7498,U+749a,U+749c-74a0,U+74a3,U+74a6,U+74a9,U+74aa,U+74ae,U+74b0-74b2,U+74b6,U+74b8-74ba,U+74bd,U+74bf,U+74c1,U+74c3,U+74c5,U+74c8,U+74ca,U+74cc,U+74cf,U+74d1,U+74d2,U+74d4,U+74d5,U+74d8-74db,U+74de-74e0,U+74e2,U+74e4,U+74e5,U+74e7-74e9,U+74ee; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.37.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+72dd-72df,U+72e1,U+72e5,U+72e6,U+72e8,U+72ef,U+72f0,U+72f2-72f4,U+72f6,U+72f7,U+72f9-72fb,U+72fd,U+7300-7304,U+7307,U+730a-730c,U+7313-7317,U+731d-7322,U+7327,U+7329,U+732c,U+732d,U+7330,U+7331,U+7333,U+7335-7337,U+7339,U+733d,U+733e,U+7340,U+7342,U+7344,U+7345,U+734a,U+734d-7350,U+7352,U+7355,U+7357,U+7359,U+735f,U+7360,U+7362,U+7363,U+7365,U+7368,U+736c,U+736d,U+736f,U+7370,U+7372,U+7374-7376,U+7378,U+737a,U+737b,U+737d,U+737e,U+7382,U+7383,U+7386,U+7388,U+738a,U+738c-7393,U+7395,U+7397-739a,U+739c,U+739e,U+73a0-73a3,U+73a5-73a8,U+73aa,U+73ad,U+73b1,U+73b3,U+73b6,U+73b7,U+73b9,U+73c2,U+73c5-73c9,U+73cc,U+73ce-73d0,U+73d2,U+73d6,U+73d9,U+73db-73de,U+73e3,U+73e5,U+73e6; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.38.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+719c,U+71a0,U+71a4,U+71a5,U+71a8,U+71af,U+71b1-71bc,U+71be,U+71c1,U+71c2,U+71c4,U+71c8-71cb,U+71ce-71d0,U+71d2,U+71d4,U+71d9,U+71da,U+71dc,U+71df,U+71e0,U+71e6-71e8,U+71ea,U+71ed,U+71ee,U+71f4,U+71f6,U+71f9,U+71fb,U+71fc,U+71ff,U+7200,U+7207,U+720c,U+720d,U+7210,U+7216,U+721a-721e,U+7223,U+7228,U+722b,U+722d,U+722e,U+7230,U+7232,U+723a-723c,U+723e-7242,U+7246,U+724b,U+724d,U+724e,U+7252,U+7256,U+7258,U+725a,U+725c,U+725d,U+7260,U+7264-7266,U+726a,U+726c,U+726e,U+726f,U+7271,U+7273,U+7274,U+7278,U+727b,U+727d,U+727e,U+7281,U+7282,U+7284,U+7287,U+728a,U+728d,U+728f,U+7292,U+729b,U+729f,U+72a0,U+72a7,U+72ad,U+72ae,U+72b0-72b5,U+72b7,U+72b8,U+72ba-72be,U+72c0,U+72c1,U+72c3,U+72c5,U+72c6,U+72c8,U+72cc-72ce,U+72d2,U+72d6,U+72db; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.39.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+7005,U+7006,U+7009,U+700b,U+700d,U+7015,U+7018,U+701b,U+701d-701f,U+7023,U+7026-7028,U+702c,U+702e-7030,U+7035,U+7037,U+7039,U+703a,U+703c-703e,U+7044,U+7049-704b,U+704f,U+7051,U+7058,U+705a,U+705c-705e,U+7061,U+7064,U+7066,U+706c,U+707d,U+7080,U+7081,U+7085,U+7086,U+708a,U+708f,U+7091,U+7094,U+7095,U+7098,U+7099,U+709c,U+709d,U+709f,U+70a4,U+70a9,U+70aa,U+70af-70b2,U+70b4-70b7,U+70bb,U+70c0,U+70c3,U+70c7,U+70cb,U+70ce,U+70cf,U+70d4,U+70d9,U+70da,U+70dc,U+70dd,U+70e0,U+70e9,U+70ec,U+70f7,U+70fa,U+70fd,U+70ff,U+7104,U+7108,U+7109,U+710c,U+7110,U+7113,U+7114,U+7116-7118,U+711c,U+711e,U+7120,U+712e,U+712f,U+7131,U+713c,U+7142,U+7144-7147,U+7149-714b,U+7150,U+7152,U+7155,U+7156,U+7159,U+715a,U+715c,U+7161,U+7165,U+7166,U+7168,U+7169,U+716d,U+7173,U+7174,U+7176,U+7178,U+717a,U+717d,U+717f,U+7180,U+7184,U+7186-7188,U+7192,U+7198; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.40.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+6ed8,U+6ed9,U+6edb,U+6edd,U+6edf,U+6ee0,U+6ee2,U+6ee6,U+6eea,U+6eec,U+6eee,U+6eef,U+6ef2,U+6ef3,U+6ef7-6efa,U+6efe,U+6f01,U+6f03,U+6f08,U+6f09,U+6f15,U+6f16,U+6f19,U+6f22-6f25,U+6f28-6f2a,U+6f2c,U+6f2d,U+6f2f,U+6f31,U+6f32,U+6f36-6f38,U+6f3f,U+6f43-6f46,U+6f48,U+6f4b,U+6f4e,U+6f4f,U+6f51,U+6f54-6f57,U+6f59-6f5b,U+6f5e,U+6f5f,U+6f61,U+6f64-6f67,U+6f69-6f6c,U+6f6f-6f72,U+6f74-6f76,U+6f78-6f7e,U+6f80-6f83,U+6f86,U+6f89,U+6f8b-6f8d,U+6f90,U+6f92,U+6f94,U+6f97,U+6f98,U+6f9b,U+6fa3-6fa5,U+6fa7,U+6faa,U+6faf,U+6fb1,U+6fb4,U+6fb6,U+6fb9,U+6fc1-6fcb,U+6fd1-6fd3,U+6fd5,U+6fdb,U+6fde-6fe1,U+6fe4,U+6fe9,U+6feb,U+6fec,U+6fee-6ff1,U+6ffa,U+6ffe; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.41.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+6dc3,U+6dc5,U+6dc6,U+6dc9,U+6dcc,U+6dcf,U+6dd2,U+6dd3,U+6dd6,U+6dd9-6dde,U+6de0,U+6de4,U+6de6,U+6de8-6dea,U+6dec,U+6def,U+6df0,U+6df5,U+6df6,U+6df8,U+6dfa,U+6dfc,U+6e03,U+6e04,U+6e07-6e09,U+6e0b,U+6e0c,U+6e0e,U+6e11,U+6e13,U+6e15,U+6e16,U+6e19-6e1b,U+6e1e,U+6e1f,U+6e22,U+6e25-6e27,U+6e2b,U+6e2c,U+6e36,U+6e37,U+6e39,U+6e3a,U+6e3c-6e41,U+6e44,U+6e45,U+6e47,U+6e49-6e4b,U+6e4d,U+6e4e,U+6e51,U+6e53-6e55,U+6e5c-6e5f,U+6e61-6e63,U+6e65-6e67,U+6e6a,U+6e6b,U+6e6d-6e70,U+6e72-6e74,U+6e76-6e78,U+6e7c,U+6e80-6e82,U+6e86,U+6e87,U+6e89,U+6e8d,U+6e8f,U+6e96,U+6e98,U+6e9d-6e9f,U+6ea1,U+6ea5-6ea7,U+6eab,U+6eb1,U+6eb2,U+6eb4,U+6eb7,U+6ebb-6ebd,U+6ebf-6ec6,U+6ec8,U+6ec9,U+6ecc,U+6ecf,U+6ed0,U+6ed3,U+6ed4,U+6ed7; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.42.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+6cb2,U+6cb4,U+6cb5,U+6cb7,U+6cba,U+6cbc,U+6cbd,U+6cc1-6cc3,U+6cc5-6cc7,U+6cd0-6cd4,U+6cd6,U+6cd7,U+6cd9,U+6cda,U+6cde-6ce0,U+6ce4,U+6ce6,U+6ce9,U+6ceb-6cef,U+6cf1,U+6cf2,U+6cf6,U+6cf7,U+6cfa,U+6cfe,U+6d03-6d05,U+6d07,U+6d08,U+6d0a,U+6d0c,U+6d0e-6d11,U+6d13,U+6d14,U+6d16,U+6d18-6d1a,U+6d1c,U+6d1f,U+6d22,U+6d23,U+6d26-6d29,U+6d2b,U+6d2e-6d30,U+6d33,U+6d35,U+6d36,U+6d38-6d3a,U+6d3c,U+6d3f,U+6d42-6d44,U+6d48,U+6d49,U+6d4d,U+6d50,U+6d52,U+6d54,U+6d56-6d58,U+6d5a-6d5c,U+6d5e,U+6d60,U+6d61,U+6d63-6d65,U+6d67,U+6d6c,U+6d6d,U+6d6f,U+6d75,U+6d7b-6d7d,U+6d87,U+6d8a,U+6d8e,U+6d90-6d9a,U+6d9c-6da0,U+6da2,U+6da3,U+6da7,U+6daa-6dac,U+6dae,U+6db3,U+6db4,U+6db6,U+6db8,U+6dbc,U+6dbf,U+6dc2; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.43.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+6b85,U+6b86,U+6b89,U+6b8d,U+6b91-6b93,U+6b95,U+6b97,U+6b98,U+6b9a,U+6b9b,U+6b9e,U+6ba1-6ba4,U+6ba9,U+6baa,U+6bad,U+6baf,U+6bb0,U+6bb2,U+6bb3,U+6bba-6bbd,U+6bc0,U+6bc2,U+6bc6,U+6bca-6bcc,U+6bce,U+6bd0,U+6bd1,U+6bd3,U+6bd6-6bd8,U+6bda,U+6be1,U+6be6,U+6bec,U+6bf1,U+6bf3-6bf5,U+6bf9,U+6bfd,U+6c05-6c08,U+6c0d,U+6c10,U+6c15-6c1a,U+6c21,U+6c23-6c26,U+6c29-6c2d,U+6c30-6c33,U+6c35-6c37,U+6c39,U+6c3a,U+6c3c-6c3f,U+6c46,U+6c4a-6c4c,U+6c4e-6c50,U+6c54,U+6c56,U+6c59-6c5c,U+6c5e,U+6c63,U+6c67-6c69,U+6c6b,U+6c6d,U+6c6f,U+6c72-6c74,U+6c78-6c7a,U+6c7c,U+6c84-6c87,U+6c8b,U+6c8c,U+6c8f,U+6c91,U+6c93-6c96,U+6c98,U+6c9a,U+6c9d,U+6ca2-6ca4,U+6ca8,U+6ca9,U+6cac-6cae,U+6cb1; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.44.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+6a01,U+6a06,U+6a09,U+6a0b,U+6a11,U+6a13,U+6a17-6a19,U+6a1b,U+6a1e,U+6a23,U+6a28,U+6a29,U+6a2b,U+6a2f,U+6a30,U+6a35,U+6a38-6a40,U+6a46-6a48,U+6a4a,U+6a4b,U+6a4e,U+6a50,U+6a52,U+6a5b,U+6a5e,U+6a62,U+6a65-6a67,U+6a6b,U+6a79,U+6a7c,U+6a7e,U+6a7f,U+6a84,U+6a86,U+6a8e,U+6a90,U+6a91,U+6a94,U+6a97,U+6a9c,U+6a9e,U+6aa0,U+6aa2,U+6aa4,U+6aa9,U+6aab,U+6aae-6ab0,U+6ab2,U+6ab3,U+6ab5,U+6ab7,U+6ab8,U+6aba,U+6abb,U+6abd,U+6abf,U+6ac2-6ac4,U+6ac6,U+6ac8,U+6acc,U+6ace,U+6ad2,U+6ad3,U+6ad8-6adc,U+6adf,U+6ae0,U+6ae4,U+6ae5,U+6ae7,U+6ae8,U+6afb,U+6b04,U+6b05,U+6b0d-6b13,U+6b16,U+6b17,U+6b19,U+6b24,U+6b25,U+6b2c,U+6b37-6b39,U+6b3b,U+6b3d,U+6b43,U+6b46,U+6b4e,U+6b50,U+6b53,U+6b54,U+6b58,U+6b59,U+6b5b,U+6b60,U+6b69,U+6b6d,U+6b6f,U+6b70,U+6b73,U+6b74,U+6b77-6b7a,U+6b80-6b84; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.45.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+68e1,U+68e3,U+68e4,U+68e6-68ed,U+68ef,U+68f0,U+68f2,U+68f4,U+68f6,U+68f7,U+68f9,U+68fb-68fd,U+68ff-6902,U+6906-6908,U+690b,U+6910,U+691a-691c,U+691f,U+6920,U+6924,U+6925,U+692a,U+692d,U+6934,U+6939,U+693c-6945,U+694a,U+694b,U+6952-6954,U+6957,U+6959,U+695b,U+695d,U+695f,U+6962-6964,U+6966,U+6968-696c,U+696e,U+696f,U+6971,U+6973,U+6974,U+6978,U+6979,U+697d,U+697f,U+6980,U+6985,U+6987-698a,U+698d,U+698e,U+6994-6999,U+699b,U+69a3,U+69a4,U+69a6,U+69a7,U+69ab,U+69ad,U+69ae,U+69b1,U+69b7,U+69bb,U+69bc,U+69c1,U+69c3-69c5,U+69c7,U+69ca-69ce,U+69d0,U+69d1,U+69d3,U+69d4,U+69d7-69da,U+69e0,U+69e4,U+69e6,U+69ec,U+69ed,U+69f1-69f3,U+69f8,U+69fa-69fc,U+69fe-6a00; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.46.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+6792,U+6793,U+6796,U+6798,U+679e-67a1,U+67a5,U+67a7-67a9,U+67ac,U+67ad,U+67b0,U+67b1,U+67b3,U+67b5,U+67b7,U+67b9,U+67bb,U+67bc,U+67c0,U+67c1,U+67c3,U+67c5-67ca,U+67d1,U+67d2,U+67d7-67d9,U+67dd-67df,U+67e2-67e4,U+67e6-67e9,U+67f0,U+67f5,U+67f7,U+67f8,U+67fa,U+67fb,U+67fd,U+67fe,U+6800,U+6801,U+6803,U+6804,U+6806,U+6809,U+680a,U+680c,U+680e,U+6812,U+681d-681f,U+6822,U+6824-6829,U+682b-682d,U+6831-6835,U+683b,U+683e,U+6840,U+6841,U+6844,U+6845,U+6849,U+684e,U+6853,U+6855,U+6856,U+685c,U+685d,U+685f-6862,U+6864,U+6866-6868,U+686b,U+686f,U+6872,U+6874,U+6877,U+687f,U+6883,U+6886,U+688f,U+689b,U+689f,U+68a0,U+68a2,U+68a3,U+68b1,U+68b6,U+68b9,U+68ba,U+68bc-68bf,U+68c1-68c4,U+68c6,U+68c8,U+68ca,U+68cc,U+68d0,U+68d1,U+68d3,U+68d7,U+68dd,U+68df; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.47.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+663a,U+663b,U+663d,U+6641,U+6644,U+6645,U+6649,U+664c,U+664f,U+6654,U+6659,U+665b,U+665d,U+665e,U+6660-6667,U+6669,U+666b,U+666c,U+6671,U+6673,U+6677-6679,U+667c,U+6680,U+6681,U+6684,U+6685,U+6688,U+6689,U+668b-668e,U+6690,U+6692,U+6695,U+6698,U+669a,U+669d,U+669f,U+66a0,U+66a2,U+66a3,U+66a6,U+66aa,U+66ab,U+66b1,U+66b2,U+66b5,U+66b8,U+66b9,U+66bb,U+66be,U+66c1,U+66c6-66c9,U+66cc,U+66d5-66d8,U+66da-66dc,U+66de-66e2,U+66e8-66ea,U+66ec,U+66f1,U+66f3,U+66f7,U+66fa,U+66fd,U+6702,U+6705,U+670a,U+670f,U+6710,U+6713,U+6715,U+6719,U+6722,U+6723,U+6725-6727,U+6729,U+672d,U+672e,U+6732,U+6733,U+6736,U+6739,U+673b,U+673f,U+6744,U+6748,U+674c,U+674d,U+6753,U+6755,U+6762,U+6767,U+6769-676c,U+676e,U+6772,U+6773,U+6775,U+6777,U+677a-677d,U+6782,U+6783,U+6787,U+678a-678d,U+678f; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.48.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+64f8,U+64fa,U+64fc,U+64fe,U+64ff,U+6503,U+6509,U+650f,U+6514,U+6518,U+651c-651e,U+6522-6525,U+652a-652c,U+652e,U+6530-6532,U+6534,U+6535,U+6537,U+6538,U+653a,U+653c,U+653d,U+6542,U+6549-654b,U+654d,U+654e,U+6553-6555,U+6557,U+6558,U+655d,U+6564,U+6569,U+656b,U+656d-656f,U+6571,U+6573,U+6575,U+6576,U+6578-657e,U+6581-6583,U+6585,U+6586,U+6589,U+658e,U+658f,U+6592,U+6593,U+6595,U+6596,U+659b,U+659d,U+659f-65a1,U+65a3,U+65ab,U+65ac,U+65b2,U+65b6,U+65b7,U+65ba,U+65bb,U+65be-65c0,U+65c2-65c4,U+65c6-65c8,U+65cc,U+65ce,U+65d0,U+65d2,U+65d3,U+65d6,U+65db,U+65dd,U+65e1,U+65e3,U+65ee-65f0,U+65f3-65f5,U+65f8,U+65fb,U+65fc,U+65fe-6600,U+6603,U+6607,U+6609,U+660b,U+6610,U+6611,U+6619,U+661a,U+661c-661e,U+6621,U+6624,U+6626,U+662a-662c,U+662e,U+6630,U+6631,U+6633,U+6634,U+6636; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.49.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+63bc,U+63be,U+63c0,U+63c3,U+63c4,U+63c6,U+63c8,U+63cd,U+63ce,U+63d1,U+63d6,U+63da,U+63db,U+63de,U+63e0,U+63e3,U+63e9,U+63ea,U+63ee,U+63f2,U+63f5-63fa,U+63fc,U+63fe-6400,U+6406,U+640b-640d,U+6410,U+6414,U+6416,U+6417,U+641b,U+6420-6423,U+6425-6428,U+642a,U+6431,U+6432,U+6434-6437,U+643d-6442,U+6445,U+6448,U+6450-6452,U+645b-645f,U+6462,U+6465,U+6468,U+646d,U+646f-6471,U+6473,U+6477,U+6479-647d,U+6482-6485,U+6487,U+6488,U+648c,U+6490,U+6493,U+6496-649a,U+649d,U+64a0,U+64a5,U+64ab,U+64ac,U+64b1-64b7,U+64b9-64bb,U+64be-64c1,U+64c4,U+64c7,U+64c9-64cb,U+64d0,U+64d4,U+64d7,U+64d8,U+64da,U+64de,U+64e0-64e2,U+64e4,U+64e9,U+64ec,U+64f0-64f2,U+64f4,U+64f7; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.50.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+623b,U+623d,U+623e,U+6243,U+6246,U+6248,U+6249,U+624c,U+6255,U+6259,U+625e,U+6260,U+6261,U+6265,U+6266,U+626a,U+6271,U+627a,U+627c,U+627d,U+6283,U+6286,U+6289,U+628e,U+6294,U+629c,U+629e,U+629f,U+62a1,U+62a8,U+62ba,U+62bb,U+62bf,U+62c2,U+62c4,U+62c8,U+62ca,U+62cb,U+62ce,U+62cf,U+62d1,U+62d7,U+62d9,U+62da,U+62dd,U+62e0,U+62e1,U+62e3,U+62e4,U+62e7,U+62eb,U+62ee,U+62f0,U+62f4-62f6,U+6308,U+630a-630e,U+6310,U+6312,U+6313,U+6317,U+6319,U+631b,U+631d-631f,U+6322,U+6326,U+6329,U+6331,U+6332,U+6334-6337,U+6339,U+633b,U+633c,U+633e-6340,U+6343,U+6347,U+634b-634e,U+6354,U+635c,U+635d,U+6368,U+6369,U+636d,U+636f-6372,U+6376,U+637a,U+637b,U+637d,U+6382,U+6383,U+6387,U+638a,U+638b,U+638d,U+638e,U+6391,U+6393-6397,U+6399,U+639b,U+639e,U+639f,U+63a1,U+63a3,U+63a4,U+63ac-63ae,U+63b1-63b5,U+63b7-63bb; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.51.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+60fa,U+6100,U+6106,U+610d,U+610e,U+6112,U+6114,U+6115,U+6119,U+611c,U+6120,U+6122,U+6123,U+6126,U+6128-6130,U+6136,U+6137,U+613a,U+613d,U+613e,U+6144,U+6146,U+6147,U+614a,U+614b,U+6151,U+6153,U+6158,U+615a,U+615c,U+615d,U+615f,U+6161,U+6163-6165,U+616b,U+616c,U+616e,U+6171,U+6173-6177,U+617e,U+6182,U+6187,U+618a,U+618d,U+618e,U+6190,U+6191,U+6194,U+6199,U+619a,U+619c,U+619f,U+61a1,U+61a3,U+61a4,U+61a7-61a9,U+61ab-61ad,U+61b2,U+61b3,U+61b5-61b7,U+61ba,U+61bb,U+61bf,U+61c3,U+61c4,U+61c6,U+61c7,U+61c9-61cb,U+61d0,U+61d1,U+61d3,U+61d4,U+61d7,U+61da,U+61df-61e1,U+61e6,U+61ee,U+61f0,U+61f2,U+61f6-61f8,U+61fa,U+61fc-61fe,U+6200,U+6206,U+6207,U+6209,U+620b,U+620d,U+620e,U+6213-6215,U+6217,U+6219,U+621b-6223,U+6225,U+6226,U+622c,U+622e-6230,U+6232,U+6238; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.52.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+5fd1-5fd6,U+5fda-5fde,U+5fe1,U+5fe2,U+5fe4,U+5fe5,U+5fea,U+5fed,U+5fee,U+5ff1-5ff3,U+5ff6,U+5ff8,U+5ffb,U+5ffe,U+5fff,U+6002-6006,U+600a,U+600d,U+600f,U+6014,U+6019,U+601b,U+6020,U+6023,U+6026,U+6029,U+602b,U+602e,U+602f,U+6031,U+6033,U+6035,U+6039,U+603f,U+6041-6043,U+6046,U+604f,U+6053,U+6054,U+6058-605b,U+605d,U+605e,U+6060,U+6063,U+6065,U+6067,U+606a-606c,U+6075,U+6078,U+6079,U+607b,U+607d,U+607f,U+6083,U+6085-6087,U+608a,U+608c,U+608e,U+608f,U+6092,U+6093,U+6095-6097,U+609b-609d,U+60a2,U+60a7,U+60a9-60ab,U+60ad,U+60af-60b1,U+60b3-60b6,U+60b8,U+60bb,U+60bd,U+60be,U+60c0-60c3,U+60c6-60c9,U+60cb,U+60ce,U+60d3,U+60d4,U+60d7-60db,U+60dd,U+60e1-60e4,U+60e6,U+60ea,U+60ec-60ee,U+60f0,U+60f1,U+60f4,U+60f6; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.53.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+5ea3-5ea5,U+5ea8,U+5eab,U+5eaf,U+5eb3,U+5eb5,U+5eb6,U+5eb9,U+5ebe,U+5ec1-5ec3,U+5ec6,U+5ec8,U+5ecb,U+5ecc,U+5ed1,U+5ed2,U+5ed4,U+5ed9-5edb,U+5edd,U+5edf,U+5ee0,U+5ee2,U+5ee3,U+5ee8,U+5eea,U+5eec,U+5eef,U+5ef0,U+5ef3,U+5ef4,U+5ef8,U+5efb,U+5efc,U+5efe,U+5eff,U+5f01,U+5f07,U+5f0b-5f0e,U+5f10-5f12,U+5f14,U+5f1a,U+5f22,U+5f28,U+5f29,U+5f2c,U+5f2d,U+5f35,U+5f36,U+5f38,U+5f3b-5f43,U+5f45-5f4a,U+5f4c-5f4e,U+5f50,U+5f54,U+5f56-5f59,U+5f5b-5f5f,U+5f61,U+5f63,U+5f65,U+5f67,U+5f68,U+5f6b,U+5f6e,U+5f6f,U+5f72-5f78,U+5f7a,U+5f7e,U+5f7f,U+5f82,U+5f83,U+5f87,U+5f89,U+5f8a,U+5f8d,U+5f91,U+5f93,U+5f95,U+5f98,U+5f99,U+5f9c,U+5f9e,U+5fa0,U+5fa6-5fa9,U+5fac,U+5fad,U+5faf,U+5fb3-5fb5,U+5fb9,U+5fbc,U+5fc4,U+5fc9,U+5fcb,U+5fce-5fd0; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.54.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+5d32-5d34,U+5d3c-5d3e,U+5d41-5d44,U+5d46-5d48,U+5d4a,U+5d4b,U+5d4e,U+5d50,U+5d52,U+5d55-5d58,U+5d5a-5d5d,U+5d68,U+5d69,U+5d6b,U+5d6c,U+5d6f,U+5d74,U+5d7f,U+5d82-5d89,U+5d8b,U+5d8c,U+5d8f,U+5d92,U+5d93,U+5d99,U+5d9d,U+5db2,U+5db6,U+5db7,U+5dba,U+5dbc,U+5dbd,U+5dc2,U+5dc3,U+5dc6,U+5dc7,U+5dc9,U+5dcc,U+5dd2,U+5dd4,U+5dd6-5dd8,U+5ddb,U+5ddc,U+5de3,U+5ded,U+5def,U+5df3,U+5df6,U+5dfa-5dfd,U+5dff,U+5e00,U+5e07,U+5e0f,U+5e11,U+5e13,U+5e14,U+5e19-5e1b,U+5e22,U+5e25,U+5e28,U+5e2a,U+5e2f-5e31,U+5e33,U+5e34,U+5e36,U+5e39-5e3c,U+5e3e,U+5e40,U+5e44,U+5e46-5e48,U+5e4c,U+5e4f,U+5e53,U+5e54,U+5e57,U+5e59,U+5e5b,U+5e5e,U+5e5f,U+5e61,U+5e63,U+5e6a,U+5e6b,U+5e75,U+5e77,U+5e79,U+5e7a,U+5e7e,U+5e80,U+5e81,U+5e83,U+5e85,U+5e87,U+5e8b,U+5e91,U+5e92,U+5e96,U+5e98,U+5e9b,U+5e9d,U+5ea0-5ea2; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.55.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+5bf5,U+5bf6,U+5bfe,U+5c02,U+5c03,U+5c05,U+5c07-5c09,U+5c0b,U+5c0c,U+5c0e,U+5c10,U+5c12,U+5c13,U+5c15,U+5c17,U+5c19,U+5c1b,U+5c1c,U+5c1e,U+5c1f,U+5c22,U+5c25,U+5c28,U+5c2a,U+5c2b,U+5c2f,U+5c30,U+5c37,U+5c3b,U+5c43,U+5c44,U+5c46,U+5c47,U+5c4d,U+5c50,U+5c59,U+5c5b,U+5c5c,U+5c62-5c64,U+5c66,U+5c6c,U+5c6e,U+5c74,U+5c78-5c7e,U+5c80,U+5c83,U+5c84,U+5c88,U+5c8b-5c8d,U+5c91,U+5c94-5c96,U+5c98,U+5c99,U+5c9c,U+5c9e,U+5ca1-5ca3,U+5cab,U+5cac,U+5cb1,U+5cb5,U+5cb7,U+5cba,U+5cbd-5cbf,U+5cc1,U+5cc3,U+5cc4,U+5cc7,U+5ccb,U+5cd2,U+5cd8,U+5cd9,U+5cdf,U+5ce0,U+5ce3-5ce6,U+5ce8-5cea,U+5ced,U+5cef,U+5cf3,U+5cf4,U+5cf6,U+5cf8,U+5cfd,U+5d00-5d04,U+5d06,U+5d08,U+5d0b-5d0d,U+5d0f-5d13,U+5d15,U+5d17-5d1a,U+5d1d-5d22,U+5d24-5d27,U+5d2e-5d31; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.56.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+5ab2,U+5ab4,U+5ab5,U+5ab7-5aba,U+5abd-5abf,U+5ac3,U+5ac4,U+5ac6-5ac8,U+5aca,U+5acb,U+5acd,U+5acf-5ad2,U+5ad4,U+5ad8-5ada,U+5adc,U+5adf-5ae2,U+5ae4,U+5ae6,U+5ae8,U+5aea-5aed,U+5af0-5af3,U+5af5,U+5af9-5afb,U+5afd,U+5b01,U+5b05,U+5b08,U+5b0b,U+5b0c,U+5b11,U+5b16,U+5b17,U+5b1b,U+5b21,U+5b22,U+5b24,U+5b27-5b2e,U+5b30,U+5b32,U+5b34,U+5b36-5b38,U+5b3e-5b40,U+5b43,U+5b45,U+5b4a,U+5b4b,U+5b51-5b53,U+5b56,U+5b5a,U+5b5b,U+5b62,U+5b65,U+5b67,U+5b6a-5b6e,U+5b70,U+5b71,U+5b73,U+5b7a,U+5b7b,U+5b7f,U+5b80,U+5b84,U+5b8d,U+5b91,U+5b93-5b95,U+5b9f,U+5ba5,U+5ba6,U+5bac,U+5bae,U+5bb8,U+5bc0,U+5bc3,U+5bcb,U+5bd0,U+5bd1,U+5bd4-5bd8,U+5bda-5bdc,U+5be2,U+5be4-5be7,U+5be9,U+5beb,U+5bec,U+5bee-5bf0,U+5bf2,U+5bf3; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.57.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+5981,U+598f,U+5997,U+5998,U+599a,U+599c,U+599d,U+59a0,U+59a1,U+59a3,U+59a4,U+59a7,U+59aa-59ad,U+59af,U+59b2,U+59b3,U+59b5,U+59b6,U+59b8,U+59ba,U+59bd,U+59be,U+59c0,U+59c1,U+59c3,U+59c4,U+59c7-59ca,U+59cc,U+59cd,U+59cf,U+59d2,U+59d5,U+59d6,U+59d8,U+59d9,U+59db,U+59dd-59e0,U+59e2-59e7,U+59e9-59eb,U+59ee,U+59f1,U+59f3,U+59f5,U+59f7-59f9,U+59fd,U+5a06,U+5a08-5a0a,U+5a0c,U+5a0d,U+5a11-5a13,U+5a15,U+5a16,U+5a1a,U+5a1b,U+5a21-5a23,U+5a2d-5a2f,U+5a32,U+5a38,U+5a3c,U+5a3e-5a45,U+5a47,U+5a4a,U+5a4c,U+5a4d,U+5a4f-5a51,U+5a53,U+5a55-5a57,U+5a5e,U+5a60,U+5a62,U+5a65-5a67,U+5a6a,U+5a6c,U+5a6d,U+5a72,U+5a73,U+5a75,U+5a76,U+5a79-5a7c,U+5a81-5a84,U+5a8c,U+5a8e,U+5a93,U+5a96,U+5a97,U+5a9c,U+5a9e,U+5aa0,U+5aa3,U+5aa4,U+5aaa,U+5aae,U+5aaf,U+5ab1; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.58.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+5831,U+583a,U+583d,U+583f-5842,U+5844-5846,U+5848,U+584a,U+584d,U+5852,U+5857,U+5859,U+585a,U+585c,U+585d,U+5862,U+5868,U+5869,U+586c,U+586d,U+586f-5873,U+5875,U+5879,U+587d,U+587e,U+5880,U+5881,U+5888-588a,U+588d,U+5892,U+5896-5898,U+589a,U+589c,U+589d,U+58a0,U+58a1,U+58a3,U+58a6,U+58a9,U+58ab-58ae,U+58b0,U+58b3,U+58bb-58bf,U+58c2,U+58c3,U+58c5-58c8,U+58ca,U+58cc,U+58ce,U+58d1-58d3,U+58d5,U+58d8,U+58d9,U+58de,U+58df,U+58e2,U+58e9,U+58ec,U+58ef,U+58f1,U+58f2,U+58f5,U+58f7,U+58f8,U+58fa,U+58fd,U+5900,U+5902,U+5906,U+5908-590c,U+590e,U+5910,U+5914,U+5919,U+591b,U+591d,U+591e,U+5920,U+5922-5925,U+5928,U+592c,U+592d,U+592f,U+5932,U+5936,U+593c,U+593e,U+5940-5942,U+5944,U+594c,U+594d,U+5950,U+5953,U+5958,U+595a,U+5961,U+5966-5968,U+596a,U+596c-596e,U+5977,U+597b,U+597c; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.59.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+570a,U+570c,U+570d,U+570f,U+5712,U+5713,U+5718,U+5719,U+571c,U+571e,U+5725,U+5727,U+5729,U+572a,U+572c,U+572e,U+572f,U+5734,U+5735,U+5739,U+573b,U+5741,U+5743,U+5745,U+5749,U+574c,U+574d,U+575c,U+5763,U+5768,U+5769,U+576b,U+576d,U+576e,U+5770,U+5773,U+5775,U+5777,U+577b,U+577c,U+5785,U+5786,U+5788,U+578c,U+578e,U+578f,U+5793-5795,U+5799-57a1,U+57a3,U+57a4,U+57a6-57aa,U+57ac,U+57ad,U+57af-57b2,U+57b4-57b6,U+57b8,U+57b9,U+57bd-57bf,U+57c2,U+57c4-57c8,U+57cc,U+57cd,U+57cf,U+57d2,U+57d5-57de,U+57e1,U+57e2,U+57e4,U+57e5,U+57e7,U+57eb,U+57ed,U+57ef,U+57f4-57f8,U+57fc,U+57fd,U+5800,U+5801,U+5803,U+5805,U+5807,U+5809,U+580b-580e,U+5811,U+5814,U+5819,U+581b-5820,U+5822,U+5823,U+5825,U+5826,U+582c,U+582f; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.60.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+5605,U+5606,U+5608,U+560c,U+560d,U+560f,U+5614,U+5616,U+5617,U+561a,U+561c,U+561e,U+5621-5625,U+5627,U+5629,U+562b-5630,U+5636,U+5638-563a,U+563c,U+5640-5642,U+5649,U+564c-5650,U+5653-5655,U+5657-565b,U+5660,U+5663,U+5664,U+5666,U+566b,U+566f-5671,U+5673-567c,U+567e,U+5684-5687,U+568c,U+568e-5693,U+5695,U+5697,U+569b,U+569c,U+569e,U+569f,U+56a1,U+56a2,U+56a4-56a9,U+56ac-56af,U+56b1,U+56b4,U+56b6-56b8,U+56bf,U+56c1-56c3,U+56c9,U+56cd,U+56d1,U+56d4,U+56d6-56d9,U+56dd,U+56df,U+56e1,U+56e3-56e6,U+56e8-56ec,U+56ee,U+56ef,U+56f1-56f3,U+56f5,U+56f7-56f9,U+56fc,U+56ff,U+5700,U+5703,U+5704,U+5709; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.61.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+5519,U+551b,U+551d,U+551e,U+5520,U+5522,U+5523,U+5526,U+5527,U+552a-552c,U+5530,U+5532-5535,U+5537,U+5538,U+553b-5541,U+5543,U+5544,U+5547-5549,U+554b,U+554d,U+5550,U+5553,U+5555-5558,U+555b-555f,U+5567-5569,U+556b-5572,U+5574-5577,U+557b,U+557c,U+557e,U+557f,U+5581,U+5583,U+5585,U+5586,U+5588,U+558b,U+558c,U+558e-5591,U+5593,U+5599,U+559a,U+559f,U+55a5,U+55a6,U+55a8-55ac,U+55ae,U+55b0-55b3,U+55b6,U+55b9,U+55ba,U+55bc-55be,U+55c4,U+55c6,U+55c7,U+55c9,U+55cc-55d2,U+55d4-55db,U+55dd-55df,U+55e1,U+55e3-55e6,U+55ea-55ee,U+55f0-55f3,U+55f5-55f7,U+55fb,U+55fe,U+5600,U+5601; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.62.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+53fb-5400,U+5402,U+5405-5407,U+540b,U+540f,U+5412,U+5414,U+5416,U+5418-541a,U+541d,U+5420-5423,U+5425,U+5429,U+542a,U+542d,U+542e,U+5431-5433,U+5436,U+543d,U+543f,U+5442,U+5443,U+5449,U+544b,U+544c,U+544e,U+5451-5454,U+5456,U+5459,U+545b,U+545c,U+5461,U+5463,U+5464,U+546a-5472,U+5474,U+5476-5478,U+547a,U+547e-5484,U+5486,U+548a,U+548d,U+548e,U+5490,U+5491,U+5494,U+5497-5499,U+549b,U+549d,U+54a1-54a7,U+54a9,U+54ab,U+54ad,U+54b4,U+54b5,U+54b9,U+54bb,U+54be,U+54bf,U+54c2,U+54c3,U+54c9-54cc,U+54cf,U+54d0,U+54d3,U+54d5,U+54d6,U+54d9,U+54da,U+54dc-54de,U+54e2,U+54e7,U+54f3,U+54f4,U+54f8,U+54f9,U+54fd-54ff,U+5501,U+5504-5506,U+550c-550f,U+5511-5514,U+5516,U+5517; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.63.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+52a2,U+52a6,U+52a7,U+52ac,U+52ad,U+52af,U+52b4,U+52b5,U+52b9,U+52bb,U+52bc,U+52be,U+52c1,U+52c5,U+52ca,U+52cd,U+52d0,U+52d6,U+52d7,U+52d9,U+52db,U+52dd,U+52de,U+52e0,U+52e2,U+52e3,U+52e5,U+52e7-52f0,U+52f2,U+52f3,U+52f5-52f9,U+52fb,U+52fc,U+5302,U+5304,U+530b,U+530d,U+530f,U+5310,U+5315,U+531a,U+531c,U+531d,U+5321,U+5323,U+5326,U+532e-5331,U+5338,U+533c-533e,U+5340,U+5344,U+5345,U+534b-534d,U+5350,U+5354,U+5358,U+535d-535f,U+5363,U+5368,U+5369,U+536c,U+536e,U+536f,U+5372,U+5379-537b,U+537d,U+538d,U+538e,U+5390,U+5393,U+5394,U+5396,U+539b-539d,U+53a0,U+53a1,U+53a3-53a5,U+53a9,U+53ad,U+53ae,U+53b0,U+53b2,U+53b3,U+53b5-53b8,U+53bc,U+53be,U+53c1,U+53c3-53c7,U+53ce,U+53cf,U+53d2,U+53d3,U+53d5,U+53da,U+53de,U+53df,U+53e1,U+53e2,U+53e7-53e9,U+53f1,U+53f4,U+53f5,U+53fa; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.64.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+5110,U+5113,U+5115,U+5117,U+5118,U+511a-511c,U+511e,U+511f,U+5121,U+5128,U+512b-512d,U+5131-5135,U+5137-5139,U+513c,U+5140,U+5142,U+5147,U+514c,U+514e-5150,U+5155-5158,U+5162,U+5169,U+5172,U+517f,U+5181-5184,U+5186,U+5187,U+518b,U+518f,U+5191,U+5195-5197,U+519a,U+51a2,U+51a3,U+51a6-51ab,U+51ad,U+51ae,U+51b1,U+51b4,U+51bc,U+51bd,U+51bf,U+51c3,U+51c7,U+51c8,U+51ca,U+51cb,U+51cd,U+51ce,U+51d4,U+51d6,U+51db,U+51dc,U+51e6,U+51e8-51eb,U+51f1,U+51f5,U+51fc,U+51ff,U+5202,U+5205,U+5208,U+520b,U+520d,U+520e,U+5215,U+5216,U+5228,U+522a,U+522c,U+522d,U+5233,U+523c,U+523d,U+523f,U+5240,U+5245,U+5247,U+5249,U+524b,U+524c,U+524e,U+5250,U+525b-525f,U+5261,U+5263,U+5264,U+5270,U+5273,U+5275,U+5277,U+527d,U+527f,U+5281-5285,U+5287,U+5289,U+528b,U+528d,U+528f,U+5291-5293,U+529a; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.65.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+4fe3,U+4fe4,U+4fe6,U+4fe8,U+4feb-4fed,U+4ff3,U+4ff5,U+4ff6,U+4ff8,U+4ffe,U+5001,U+5005,U+5006,U+5009,U+500c,U+500f,U+5013-5018,U+501b-501e,U+5022-5025,U+5027,U+5028,U+502b-502e,U+5030,U+5033,U+5034,U+5036-5039,U+503b,U+5041-5043,U+5045,U+5046,U+5048-504a,U+504c-504e,U+5051,U+5053,U+5055-5057,U+505b,U+505e,U+5060,U+5062,U+5063,U+5067,U+506a,U+506c,U+5070-5072,U+5074,U+5075,U+5078,U+507b,U+507d,U+507e,U+5080,U+5088,U+5089,U+5091,U+5092,U+5095,U+5097-509e,U+50a2,U+50a3,U+50a5-50a7,U+50a9,U+50ad,U+50b3,U+50b5,U+50b7,U+50ba,U+50be,U+50c4,U+50c5,U+50c7,U+50ca,U+50cd,U+50d1,U+50d5,U+50d6,U+50da,U+50de,U+50e5,U+50e6,U+50ec-50ee,U+50f0,U+50f1,U+50f3,U+50f9-50fb,U+50fe-5102,U+5104,U+5106,U+5107,U+5109-510b,U+510d,U+510f; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.66.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+4eb8,U+4eb9,U+4ebb-4ebe,U+4ec2-4ec4,U+4ec8,U+4ec9,U+4ecc,U+4ecf,U+4ed0,U+4ed2,U+4eda,U+4edb,U+4edd-4ee1,U+4ee6-4ee9,U+4eeb,U+4eee,U+4eef,U+4ef3-4ef5,U+4ef8-4efa,U+4efc,U+4f00,U+4f03-4f05,U+4f08,U+4f09,U+4f0b,U+4f0e,U+4f12,U+4f13,U+4f15,U+4f1b,U+4f1d,U+4f21,U+4f22,U+4f25,U+4f27-4f29,U+4f2b-4f2e,U+4f31-4f33,U+4f36,U+4f37,U+4f39,U+4f3e,U+4f40,U+4f41,U+4f43,U+4f47-4f49,U+4f54,U+4f57,U+4f58,U+4f5d,U+4f5e,U+4f61,U+4f62,U+4f64,U+4f65,U+4f67,U+4f6a,U+4f6e,U+4f6f,U+4f72,U+4f74-4f7e,U+4f80-4f82,U+4f84,U+4f89,U+4f8a,U+4f8e-4f98,U+4f9e,U+4fa1,U+4fa5,U+4fa9,U+4faa,U+4fac,U+4fb3,U+4fb6-4fb8,U+4fbd,U+4fc2,U+4fc5,U+4fc6,U+4fcd,U+4fce,U+4fd0,U+4fd1,U+4fd3,U+4fda-4fdc,U+4fdf,U+4fe0,U+4fe2; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.67.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+3127-3129,U+3220-3229,U+3231,U+32a3,U+338e,U+338f,U+339c-339e,U+33c4,U+33d1,U+33d2,U+33d5,U+3434,U+34dc,U+34ee,U+353e,U+355d,U+3566,U+3575,U+3592,U+35a0,U+35a1,U+35ad,U+35ce,U+36a2,U+36ab,U+38a8,U+3dab,U+3de7,U+3deb,U+3e1a,U+3f1b,U+3f6d,U+4495,U+4723,U+48fa,U+4ca3,U+4e02,U+4e04-4e06,U+4e0c,U+4e0f,U+4e15,U+4e17,U+4e1f-4e21,U+4e26,U+4e29,U+4e2c,U+4e2f,U+4e31,U+4e35,U+4e37,U+4e3c,U+4e3f-4e42,U+4e44,U+4e46,U+4e47,U+4e57,U+4e5a-4e5c,U+4e64,U+4e65,U+4e67,U+4e69,U+4e6d,U+4e78,U+4e7f-4e82,U+4e85,U+4e87,U+4e8a,U+4e8d,U+4e93,U+4e96,U+4e98,U+4e99,U+4e9c,U+4e9e-4ea0,U+4ea2,U+4ea3,U+4ea5,U+4eb0,U+4eb1,U+4eb3-4eb6; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.68.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+27e8,U+27e9,U+2ebb,U+3003,U+3005-3007,U+3012,U+3013,U+301d,U+301e,U+3021,U+3023,U+3024,U+3041,U+3043,U+3045,U+3047,U+3049,U+3056,U+3058,U+305c,U+305e,U+3062,U+306c,U+3074,U+3077,U+307a,U+307c,U+307d,U+3080,U+308e,U+3090,U+3091,U+309b,U+309d,U+309e,U+30a5,U+30bc,U+30be,U+30c2,U+30c5,U+30cc,U+30d8,U+30e2,U+30e8,U+30ee,U+30f0-30f2,U+30f4-30f6,U+30fd,U+30fe,U+3105-3126; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.69.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+254b,U+2550,U+2551,U+2554,U+2557,U+255a,U+255b,U+255d,U+255f,U+2560,U+2562,U+2563,U+2565-2567,U+2569,U+256a,U+256c-2572,U+2581-258f,U+2593-2595,U+25a1,U+25b3,U+25bd,U+25ca,U+25cb,U+25e2-25e5,U+2609,U+2640,U+2642; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.70.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+2465-2469,U+2474-249b,U+2500-2509,U+250b-2526,U+2528-2534,U+2536,U+2537,U+253b-2548,U+254a; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.71.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+207f-2083,U+20a6,U+20a8-20ac,U+20b1,U+20b9,U+20ba,U+20bd,U+2105,U+2109,U+2113,U+2116,U+2121,U+2126,U+2196-2199,U+2202,U+2206,U+2208,U+220f,U+2211,U+2212,U+2215,U+221d-2220,U+2223,U+2225,U+2227-222b,U+222e,U+2234-2237,U+223d,U+2248,U+224c,U+2252,U+2260,U+2261,U+2266,U+2267,U+226e,U+226f,U+2295,U+2299,U+22a5,U+22bf,U+2312; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.72.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+1ea0-1ea9,U+1eab-1ead,U+1eaf,U+1eb1,U+1eb3,U+1eb5,U+1eb7,U+1eb9,U+1ebb,U+1ebd,U+1ebe,U+1ec0-1ec3,U+1ec5,U+1ec6,U+1ec9-1ecd,U+1ecf-1ed3,U+1ed5,U+1ed7-1edf,U+1ee1,U+1ee3,U+1ee5-1eeb,U+1eed,U+1eef-1ef1,U+1ef3,U+1ef7,U+1ef9,U+2004-2006,U+2009,U+200a,U+2010,U+2011,U+2015,U+2016,U+201a,U+201e,U+2020,U+2021,U+2025,U+2027,U+2028,U+2030,U+2032,U+2033,U+2035,U+203c,U+2044,U+2060,U+2061,U+2070,U+2074-2078; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.73.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+2bb,U+2bc,U+2c6,U+2c7,U+2c9-2cb,U+2d8-2da,U+2dc,U+2f3,U+302-304,U+306-30a,U+30c,U+323,U+327,U+335,U+338; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.74.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+176-17f,U+192,U+1a0,U+1a1,U+1af,U+1b0,U+1d2,U+1d4,U+1d6,U+1d8,U+1da,U+1dc,U+1e7,U+1e9,U+1f0,U+1f9-1ff,U+219-21b,U+237,U+251,U+259,U+261,U+292; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.75.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+a1-a4,U+a6-a8,U+aa,U+ac,U+af,U+b1,U+b3-b6,U+b8-ba,U+bc-d6,U+d8-de,U+e6,U+eb,U+ee-f0,U+f5,U+f7,U+f8,U+fb,U+fd-100,U+102,U+104-107,U+10d,U+10f-112,U+115,U+117,U+119,U+11b,U+11e,U+11f,U+121,U+123,U+125-127,U+129,U+12a,U+12d,U+12f-13f,U+141,U+142,U+144,U+146,U+14b,U+14c,U+14f-153,U+158-15b,U+15e-160,U+163-165,U+168-16a,U+16d-175; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.76.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+221a,U+2264,U+2464,U+25a0,U+3008,U+4e10,U+512a,U+5152,U+5201,U+5241,U+5352,U+549a,U+54b2,U+54c6,U+54d7,U+54e1,U+5509,U+55c5,U+560e,U+5618,U+565c,U+56bc,U+5716,U+576f,U+5784,U+57a2,U+589f,U+5a20,U+5a25,U+5a29,U+5a34,U+5a7f,U+5ac9,U+5ad6,U+5b09,U+5b5c,U+5bc7,U+5c27,U+5d2d,U+5dcd,U+5f1b,U+5f37,U+604d,U+6055,U+6073,U+60eb,U+61ff,U+620c,U+62c7,U+62ed,U+6320,U+6345,U+6390,U+63b0,U+64ae,U+64c2,U+64d2,U+6556,U+663c,U+667e,U+66d9,U+66f8,U+6756,U+6789,U+689d,U+68f1,U+695e,U+6975,U+6a1f,U+6b0a,U+6b61,U+6b87,U+6c5d,U+6c7e,U+6c92,U+6d31,U+6df9,U+6e0d,U+6e2d,U+6f3e,U+70b3,U+70bd,U+70ca,U+70e8,U+725f,U+72e9,U+733f,U+7396,U+739f,U+7459,U+745a,U+74a7,U+75a1,U+75f0,U+76cf,U+76d4,U+7729,U+77aa,U+77b0,U+77e3,U+780c,U+78d5,U+7941,U+7977,U+797a,U+79c3,U+7a20,U+7a92,U+7b71,U+7bf1,U+7c9f,U+7eb6,U+7eca,U+7ef7,U+7f07,U+7f09,U+7f15,U+7f81,U+7fb9,U+8038,U+8098,U+80b4,U+8110,U+814b,U+814c,U+816e,U+818a,U+8205,U+8235,U+828b,U+82a5,U+82b7,U+82d4,U+82db,U+82df,U+8317,U+8338,U+8385,U+8386,U+83c1,U+83cf,U+8537,U+853b,U+854a,U+8715,U+8783,U+892a,U+8a71,U+8aaa,U+8d58,U+8dbe,U+8f67,U+8fab,U+8fc4,U+8fe6,U+9023,U+9084,U+9091,U+916a,U+91c9,U+91dc,U+94b3,U+9502,U+9523,U+9551,U+956f,U+960e,U+962a,U+962e,U+9647,U+96f3,U+9739,U+97a0,U+97ed,U+983b,U+985e,U+988a,U+9a6f,U+9a8b,U+9ab7,U+9ac5,U+9e25,U+ff06,U+ff14-ff16; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.77.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+161,U+2463,U+25c7,U+25ce,U+3009,U+3016,U+3017,U+4e4d,U+4e53,U+4f5a,U+4f70,U+4fae,U+4fd8,U+4ffa,U+5011,U+501a,U+516e,U+51c4,U+5225,U+5364,U+547b,U+5495,U+54e8,U+54ee,U+5594,U+55d3,U+55dc,U+55fd,U+5662,U+5669,U+566c,U+5742,U+5824,U+5834,U+598a,U+5992,U+59a9,U+5a04,U+5b75,U+5b7d,U+5bc5,U+5c49,U+5c90,U+5e1c,U+5e27,U+5e2b,U+5e37,U+5e90,U+618b,U+61f5,U+620a,U+6273,U+62f7,U+6342,U+6401,U+6402,U+6413,U+6512,U+655b,U+65a7,U+65f1,U+65f7,U+665f,U+6687,U+66a7,U+673d,U+67b8,U+6854,U+68d8,U+68fa,U+696d,U+6a02,U+6a0a,U+6a80,U+6b7c,U+6bd9,U+6c2e,U+6c76,U+6cf8,U+6d4a,U+6d85,U+6e24,U+6e32,U+6ec7,U+6ed5,U+6f88,U+700f,U+701a,U+7078,U+707c,U+70ac,U+70c1,U+7409,U+7422,U+7480,U+74a8,U+752b,U+7574,U+7656,U+7699,U+7737,U+785d,U+78be,U+79b9,U+7a3d,U+7a91,U+7a9f,U+7ae3,U+7b77,U+7c3f,U+7d1a,U+7d50,U+7d93,U+803f,U+8042,U+808b,U+8236,U+82b8,U+82b9,U+82ef,U+8309,U+836b,U+83ef,U+8431,U+85c9,U+865e,U+868c,U+8759,U+8760,U+8845,U+89ba,U+8a2a,U+8c41,U+8cec,U+8d2c,U+8d4e,U+8e66,U+8e6d,U+8eaf,U+902e,U+914b,U+916e,U+919b,U+949b,U+94a0,U+94b0,U+9541,U+9542,U+9556,U+95eb,U+95f5,U+964b,U+968b,U+96cc,U+96cd,U+96cf,U+9704,U+9713,U+9890,U+98a8,U+9985,U+9992,U+9a6d,U+9a81,U+9a86,U+9ab8,U+9ca4,U+9f9a,U+ff02,U+ff1e,U+ff3d; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.78.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+10c,U+203b,U+2265,U+2573,U+25b2,U+3448,U+3449,U+4e1e,U+4e5e,U+4f3a,U+4f5f,U+4fea,U+5026,U+508d,U+5189,U+5254,U+5288,U+52d8,U+52fa,U+5306,U+5308,U+5384,U+53ed,U+543c,U+5450,U+5455,U+5466,U+54c4,U+5578,U+55a7,U+561f,U+5631,U+572d,U+575f,U+57ae,U+57e0,U+5830,U+594e,U+5984,U+5993,U+5bdd,U+5c0d,U+5c7f,U+5c82,U+5e62,U+5ed3,U+5f08,U+607a,U+60bc,U+60df,U+625b,U+6292,U+62e2,U+6363,U+6467,U+6714,U+675e,U+6771,U+67a2,U+67ff,U+6805,U+6813,U+6869,U+68a7,U+68e0,U+6930,U+6986,U+69a8,U+69df,U+6a44,U+6a5f,U+6c13,U+6c1f,U+6c22,U+6c2f,U+6c40,U+6c81,U+6c9b,U+6ca5,U+6da4,U+6df3,U+6e85,U+6eba,U+6f13,U+6f33,U+6f62,U+715e,U+72c4,U+73d1,U+73fe,U+7405,U+7455,U+7487,U+7578,U+75a4,U+75eb,U+7693,U+7738,U+7741,U+776b,U+7792,U+77a7,U+77a9,U+77b3,U+788c,U+7984,U+79a7,U+79e4,U+7a1a,U+7a57,U+7aa6,U+7b0b,U+7b5d,U+7c27,U+7c7d,U+7caa,U+7cd9,U+7cef,U+7eda,U+7ede,U+7f24,U+8046,U+80fa,U+81b3,U+81fb,U+8207,U+8258,U+8335,U+8339,U+8354,U+840e,U+85b0,U+85fb,U+8695,U+86aa,U+8717,U+8749,U+874c,U+8996,U+89bd,U+89c5,U+8bdb,U+8bf5,U+8c5a,U+8d3f,U+8d9f,U+8e44,U+8fed,U+9005,U+9019,U+904e,U+9082,U+90af,U+90dd,U+90e1,U+90f8,U+9119,U+916f,U+9176,U+949e,U+94a7,U+94c2,U+9525,U+9580,U+95dc,U+96e2,U+96fb,U+9a7c,U+9a7f,U+9b41,U+9ca8,U+9cc4,U+9cde,U+9e92,U+9ede,U+ff10,U+ff13,U+ff3b; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.79.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+60,U+2606,U+3014,U+3015,U+309c,U+33a1,U+4e52,U+4ec6,U+4f86,U+4f8d,U+4fde,U+4fef,U+500b,U+502a,U+515c,U+518a,U+51a5,U+51f3,U+5243,U+52c9,U+52d5,U+53a2,U+53ee,U+54ce,U+54fa,U+54fc,U+5580,U+5587,U+563f,U+56da,U+5792,U+5815,U+5960,U+59d7,U+5a1f,U+5b78,U+5b9b,U+5be1,U+5c4e,U+5c51,U+5c6f,U+5c9a,U+5cfb,U+5d16,U+5ed6,U+5f27,U+5f6a,U+5f6c,U+603c,U+609a,U+6168,U+61c8,U+6236,U+62d0,U+62f1,U+62fd,U+631a,U+6328,U+632b,U+6346,U+638f,U+63a0,U+63c9,U+655e,U+6590,U+6615,U+6627,U+66ae,U+66e6,U+66f0,U+6703,U+67da,U+67ec,U+6816,U+6893,U+68ad,U+68f5,U+6977,U+6984,U+69db,U+6b72,U+6bb7,U+6ce3,U+6cfb,U+6d47,U+6da1,U+6dc4,U+6e43,U+6eaf,U+6eff,U+6f8e,U+7011,U+7063,U+7076,U+7096,U+70ba,U+70db,U+70ef,U+7119,U+711a,U+7172,U+718f,U+7194,U+727a,U+72d9,U+72ed,U+7325,U+73ae,U+73ba,U+73c0,U+7410,U+7426,U+7554,U+7576,U+75ae,U+75b9,U+762b,U+766b,U+7682,U+7750,U+7779,U+7784,U+77eb,U+77ee,U+78f7,U+79e9,U+7a79,U+7b1b,U+7b28,U+7bf7,U+7db2,U+7ec5,U+7eee,U+7f14,U+7f1a,U+7fe1,U+8087,U+809b,U+8231,U+830e,U+835f,U+83e9,U+849c,U+851a,U+868a,U+8718,U+874e,U+8822,U+8910,U+8944,U+8a3b,U+8bb6,U+8bbc,U+8d50,U+8e72,U+8f9c,U+900d,U+904b,U+9063,U+90a2,U+90b9,U+94f2,U+952f,U+9576,U+9577,U+9593,U+95f8,U+961c,U+9631,U+969b,U+96a7,U+96c1,U+9716,U+9761,U+97ad,U+97e7,U+98a4,U+997a,U+9a73,U+9b44,U+9e3d,U+9ecf,U+9ed4,U+ff11,U+ff12; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.80.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+2193,U+2462,U+4e19,U+4e2b,U+4e36,U+4ea8,U+4ed1,U+4ed7,U+4f51,U+4f63,U+4f83,U+50e7,U+5112,U+5167,U+51a4,U+51b6,U+5239,U+5265,U+532a,U+5351,U+537f,U+5401,U+548f,U+5492,U+54af,U+54b3,U+54bd,U+54d1,U+54df,U+554f,U+5564,U+5598,U+5632,U+56a3,U+56e7,U+574e,U+575d,U+575e,U+57d4,U+584c,U+58e4,U+5937,U+5955,U+5a05,U+5a49,U+5ac2,U+5bb0,U+5c39,U+5c61,U+5d0e,U+5de9,U+5e9a,U+5eb8,U+5f0a,U+5f13,U+5f8c,U+608d,U+611b,U+6127,U+62a0,U+634f,U+635e,U+63fd,U+6577,U+658b,U+65bc,U+660a,U+6643,U+6656,U+6760,U+67af,U+67c4,U+67e0,U+6817,U+68cd,U+690e,U+6960,U+69b4,U+6a71,U+6aac,U+6b67,U+6bb4,U+6c55,U+6c70,U+6c82,U+6ca6,U+6cb8,U+6cbe,U+6e9c,U+6ede,U+6ee5,U+6f4d,U+6f84,U+6f9c,U+7115,U+7121,U+722a,U+7261,U+7272,U+7280,U+72f8,U+7504,U+754f,U+75d8,U+767c,U+76ef,U+778e,U+77bb,U+77f6,U+786b,U+78b1,U+7948,U+7985,U+79be,U+7a83,U+7a8d,U+7eac,U+7eef,U+7ef8,U+7efd,U+7f00,U+803d,U+8086,U+810a,U+8165,U+819d,U+81a8,U+8214,U+829c,U+831c,U+8328,U+832b,U+8367,U+83e0,U+83f1,U+8403,U+846b,U+8475,U+84b2,U+8513,U+8574,U+85af,U+86d9,U+86db,U+8acb,U+8bbd,U+8be0,U+8be1,U+8c0e,U+8d29,U+8d63,U+8e81,U+8f7f,U+9032,U+9042,U+90b1,U+90b5,U+9165,U+9175,U+94a6,U+94c5,U+950c,U+9540,U+9610,U+9699,U+96c7,U+973e,U+978d,U+97ec,U+97f6,U+984c,U+987d,U+9882,U+9965,U+996a,U+9972,U+9a8f,U+9ad3,U+9ae6,U+9cb8,U+9edb,U+ff05,U+ff0b; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.81.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+5e,U+2190,U+250a,U+25bc,U+25cf,U+300f,U+4e56,U+4ea9,U+4f3d,U+4f6c,U+4f88,U+4fa8,U+4fcf,U+5029,U+5188,U+51f9,U+5203,U+524a,U+5256,U+529d,U+5375,U+53db,U+541f,U+5435,U+5457,U+548b,U+54b1,U+54c7,U+54d4,U+54e9,U+556a,U+5589,U+55bb,U+55e8,U+55ef,U+563b,U+566a,U+576a,U+58f9,U+598d,U+599e,U+59a8,U+5a9b,U+5ae3,U+5bde,U+5c4c,U+5c60,U+5d1b,U+5deb,U+5df7,U+5e18,U+5f26,U+5f64,U+601c,U+6084,U+60e9,U+614c,U+61be,U+6208,U+621a,U+6233,U+6254,U+62d8,U+62e6,U+62ef,U+6323,U+632a,U+633d,U+6361,U+6380,U+6405,U+640f,U+6614,U+6642,U+6657,U+67a3,U+6808,U+683d,U+6850,U+6897,U+68b3,U+68b5,U+68d5,U+6a58,U+6b47,U+6b6a,U+6c28,U+6c90,U+6ca7,U+6cf5,U+6d51,U+6da9,U+6dc7,U+6dd1,U+6e0a,U+6e5b,U+6f47,U+6f6d,U+70ad,U+70f9,U+710a,U+7130,U+71ac,U+745f,U+7476,U+7490,U+7529,U+7538,U+75d2,U+7696,U+76b1,U+76fc,U+777f,U+77dc,U+789f,U+795b,U+79bd,U+79c9,U+7a3b,U+7a46,U+7aa5,U+7ad6,U+7ca5,U+7cb9,U+7cdf,U+7d6e,U+7f06,U+7f38,U+7fa1,U+7fc1,U+8015,U+803b,U+80a2,U+80aa,U+8116,U+813e,U+82ad,U+82bd,U+8305,U+8346,U+846c,U+8549,U+859b,U+8611,U+8680,U+87f9,U+884d,U+8877,U+888d,U+88d4,U+898b,U+8a79,U+8a93,U+8c05,U+8c0d,U+8c26,U+8d1e,U+8d31,U+8d81,U+8e22,U+8f90,U+8f96,U+90ca,U+916c,U+917f,U+9187,U+918b,U+9499,U+94a9,U+9524,U+958b,U+9600,U+9640,U+96b6,U+96ef,U+98d9,U+9976,U+997f,U+9a74,U+9a84,U+9c8d,U+9e26,U+9e9f,U+ff0f; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.82.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+b0,U+2191,U+2460,U+2461,U+25c6,U+300e,U+4e1b,U+4e7e,U+4ed5,U+4ef2,U+4f10,U+4f1e,U+4f50,U+4fa6,U+4faf,U+5021,U+50f5,U+5179,U+5180,U+51d1,U+522e,U+52a3,U+52c3,U+52cb,U+5300,U+5319,U+5320,U+5349,U+5395,U+53d9,U+541e,U+5428,U+543e,U+54c0,U+54d2,U+570b,U+5858,U+58f6,U+5974,U+59a5,U+59e8,U+59ec,U+5a36,U+5a9a,U+5ab3,U+5b99,U+5baa,U+5ce1,U+5d14,U+5d4c,U+5dc5,U+5de2,U+5e99,U+5e9e,U+5f18,U+5f66,U+5f70,U+6070,U+60d5,U+60e7,U+6101,U+611a,U+6241,U+6252,U+626f,U+6296,U+62bc,U+62cc,U+63a9,U+644a,U+6454,U+64a9,U+64b8,U+6500,U+6572,U+65a5,U+65a9,U+65ec,U+660f,U+6749,U+6795,U+67ab,U+68da,U+6912,U+6bbf,U+6bef,U+6cab,U+6cca,U+6ccc,U+6cfc,U+6d3d,U+6d78,U+6dee,U+6e17,U+6e34,U+6e83,U+6ea2,U+6eb6,U+6f20,U+6fa1,U+707f,U+70d8,U+70eb,U+714c,U+714e,U+7235,U+7239,U+73ca,U+743c,U+745c,U+7624,U+763e,U+76f2,U+77db,U+77e9,U+780d,U+7838,U+7845,U+78ca,U+796d,U+7a84,U+7aed,U+7b3c,U+7eb2,U+7f05,U+7f20,U+7f34,U+7f62,U+7fc5,U+7fd8,U+7ff0,U+800d,U+8036,U+80ba,U+80be,U+80c0,U+80c1,U+8155,U+817a,U+8180,U+81e3,U+8206,U+8247,U+8270,U+8299,U+8304,U+8393,U+83b9,U+83ca,U+840d,U+8427,U+8469,U+8471,U+84c4,U+84ec,U+853d,U+8681,U+8682,U+8721,U+8854,U+88d5,U+88f9,U+8bc0,U+8c0a,U+8c29,U+8c2d,U+8d41,U+8dea,U+8eb2,U+8f9f,U+903b,U+903e,U+9102,U+9493,U+94a5,U+94f8,U+95ef,U+95f7,U+9706,U+9709,U+9774,U+9887,U+98a0,U+9e64,U+9f9f; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.83.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+2103,U+4e18,U+4e27,U+4e28,U+4e38,U+4e59,U+4e8f,U+4ead,U+4ec7,U+4fe9,U+503a,U+5085,U+5146,U+51af,U+51f8,U+52ab,U+5339,U+535c,U+5378,U+538c,U+5398,U+53f9,U+5415,U+5475,U+54aa,U+54ac,U+54b8,U+5582,U+5760,U+5764,U+57cb,U+5835,U+5885,U+5951,U+5983,U+59da,U+5a77,U+5b5d,U+5b5f,U+5bb5,U+5bc2,U+5be8,U+5bfa,U+5c2c,U+5c34,U+5c41,U+5c48,U+5c65,U+5cad,U+5e06,U+5e42,U+5ef7,U+5f17,U+5f25,U+5f6d,U+5f79,U+6028,U+6064,U+6068,U+606d,U+607c,U+6094,U+6109,U+6124,U+6247,U+626d,U+6291,U+629a,U+62ac,U+62b9,U+62fe,U+6324,U+6349,U+6367,U+6398,U+6495,U+64a4,U+64b0,U+64bc,U+64ce,U+658c,U+65ed,U+6602,U+6674,U+6691,U+66a8,U+674f,U+679a,U+67ef,U+67f4,U+680b,U+6876,U+68a8,U+6a59,U+6a61,U+6b20,U+6bc5,U+6d12,U+6d46,U+6d8c,U+6dc0,U+6e14,U+6e23,U+6f06,U+7164,U+716e,U+7199,U+71e5,U+72ac,U+742a,U+755c,U+75ab,U+75b2,U+75f4,U+7897,U+78b3,U+78c5,U+7978,U+79fd,U+7a74,U+7b4b,U+7b5b,U+7ece,U+7ed2,U+7ee3,U+7ef3,U+7f50,U+7f55,U+7f9e,U+7fe0,U+809d,U+8106,U+814a,U+8154,U+817b,U+818f,U+81c2,U+81ed,U+821f,U+82a6,U+82d1,U+8302,U+83c7,U+845b,U+848b,U+84c9,U+85e4,U+86ee,U+8700,U+8774,U+886c,U+8881,U+8c1c,U+8c79,U+8d2a,U+8d3c,U+8eba,U+8f70,U+8fa9,U+8fb1,U+900a,U+9017,U+901d,U+9022,U+906e,U+946b,U+94dd,U+94ed,U+953b,U+95fa,U+95fd,U+964c,U+96c0,U+971c,U+971e,U+9753,U+9756,U+97e6,U+9881,U+9b4f,U+9e2d,U+9f0e,U+ff5c; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.84.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+24,U+4e08,U+4e43,U+4e4f,U+4ef0,U+4f2a,U+507f,U+50ac,U+50bb,U+5151,U+51bb,U+51f6,U+51fd,U+5272,U+52fe,U+5362,U+53c9,U+53d4,U+53e0,U+543b,U+54f2,U+5507,U+5524,U+558a,U+55b5,U+561b,U+56ca,U+5782,U+57c3,U+5893,U+5915,U+5949,U+5962,U+59ae,U+59dc,U+59fb,U+5bd3,U+5c38,U+5cb3,U+5d07,U+5d29,U+5de1,U+5dfe,U+5e15,U+5eca,U+5f2f,U+5f7c,U+5fcc,U+6021,U+609f,U+60f9,U+6108,U+6148,U+6155,U+6170,U+61d2,U+6251,U+629b,U+62ab,U+62e8,U+62f3,U+6321,U+6350,U+6566,U+659c,U+65e8,U+6635,U+6655,U+6670,U+66f9,U+6734,U+679d,U+6851,U+6905,U+6b49,U+6b96,U+6c1b,U+6c41,U+6c6a,U+6c83,U+6cf3,U+6d9b,U+6dcb,U+6e1d,U+6e20,U+6e21,U+6eaa,U+6ee4,U+6ee9,U+6f58,U+70e4,U+722c,U+7262,U+7267,U+72b9,U+72e0,U+72ee,U+72f1,U+7334,U+73ab,U+7433,U+7470,U+758f,U+75d5,U+764c,U+7686,U+76c6,U+76fe,U+7720,U+77e2,U+7802,U+7816,U+788d,U+7891,U+7a00,U+7a9d,U+7b52,U+7bad,U+7c98,U+7cca,U+7eba,U+7eea,U+7ef5,U+7f1d,U+7f69,U+806a,U+809a,U+80bf,U+80c3,U+81c0,U+820c,U+82ac,U+82af,U+82cd,U+82d7,U+838e,U+839e,U+8404,U+84b8,U+852c,U+8587,U+85aa,U+8650,U+8679,U+86c7,U+8702,U+87ba,U+886b,U+8870,U+8c10,U+8c23,U+8c6b,U+8d3e,U+8d4b,U+8d4c,U+8d64,U+8d6b,U+8d74,U+8e29,U+8f69,U+8f74,U+8fb0,U+8fdf,U+901b,U+9038,U+9093,U+90aa,U+9171,U+9489,U+94ae,U+94c3,U+9508,U+9510,U+9601,U+9614,U+9675,U+97f5,U+9888,U+98d8,U+9971,U+9aa4,U+9e3f,U+9e45,U+9e4f,U+9e70,U+9f7f; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.85.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+a5,U+2022,U+2192,U+2605,U+4e11,U+4e22,U+4e32,U+4f0d,U+4f0f,U+4f69,U+4ff1,U+50b2,U+5154,U+51dd,U+51f0,U+5211,U+5269,U+533f,U+5366,U+5367,U+5389,U+5413,U+5440,U+5446,U+5561,U+574a,U+5751,U+57ab,U+5806,U+5821,U+582a,U+58f3,U+5938,U+5948,U+5978,U+59d1,U+5a03,U+5a07,U+5ac1,U+5acc,U+5ae9,U+5bb4,U+5bc4,U+5c3f,U+5e3d,U+5e7d,U+5f92,U+5faa,U+5fe0,U+5ffd,U+6016,U+60a0,U+60dc,U+60e8,U+614e,U+6212,U+6284,U+62c6,U+62d3,U+62d4,U+63f4,U+642c,U+6478,U+6491,U+6492,U+64e6,U+6591,U+65a4,U+664b,U+6735,U+6746,U+67f1,U+67f3,U+6842,U+68af,U+68c9,U+68cb,U+6a31,U+6b3a,U+6bc1,U+6c0f,U+6c27,U+6c57,U+6cc4,U+6ce5,U+6d2a,U+6d66,U+6d69,U+6daf,U+6e58,U+6ecb,U+6ef4,U+707e,U+7092,U+70ab,U+71d5,U+7275,U+7384,U+73b2,U+7434,U+74e6,U+74f7,U+75bc,U+76c8,U+76d0,U+7709,U+77ac,U+7855,U+78a7,U+78c1,U+7a77,U+7b79,U+7c92,U+7cae,U+7cd5,U+7ea4,U+7eb5,U+7ebd,U+7f5a,U+7fd4,U+7ffc,U+8083,U+8096,U+80a0,U+80d6,U+80de,U+8102,U+8109,U+810f,U+8179,U+8292,U+82b3,U+8352,U+8361,U+83cc,U+841d,U+8461,U+8482,U+8521,U+857e,U+866b,U+8776,U+8896,U+889c,U+88f8,U+8a9e,U+8bc8,U+8bf8,U+8c0b,U+8c28,U+8d2b,U+8d2f,U+8d37,U+8d3a,U+8d54,U+8dc3,U+8dcc,U+8df5,U+8e0f,U+8e48,U+8f86,U+8f88,U+8f9e,U+8fc1,U+8fc8,U+8feb,U+9065,U+90a6,U+90bb,U+90c1,U+94dc,U+9521,U+9676,U+96d5,U+970d,U+9897,U+997c,U+9a70,U+9a76,U+9a9a,U+9ad4,U+9e23,U+9e7f,U+9f3b,U+ffe5; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.86.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+300c,U+300d,U+4e54,U+4e58,U+4e95,U+4ec1,U+4f2f,U+4f38,U+4fa3,U+4fca,U+503e,U+5141,U+5144,U+517c,U+51cc,U+51ed,U+5242,U+52b2,U+52d2,U+52e4,U+540a,U+5439,U+5448,U+5496,U+54ed,U+5565,U+5761,U+5766,U+58ee,U+593a,U+594b,U+594f,U+5954,U+5996,U+59c6,U+59ff,U+5b64,U+5bff,U+5c18,U+5c1d,U+5c97,U+5ca9,U+5cb8,U+5e9f,U+5ec9,U+5f04,U+5f7b,U+5fa1,U+5fcd,U+6012,U+60a6,U+60ac,U+60b2,U+60ef,U+626e,U+6270,U+6276,U+62d6,U+62dc,U+6316,U+632f,U+633a,U+6355,U+63aa,U+6447,U+649e,U+64c5,U+654c,U+65c1,U+65cb,U+65e6,U+6606,U+6731,U+675c,U+67cf,U+67dc,U+6846,U+6b8b,U+6beb,U+6c61,U+6c88,U+6cbf,U+6cdb,U+6cea,U+6d45,U+6d53,U+6d74,U+6d82,U+6da8,U+6db5,U+6deb,U+6eda,U+6ee8,U+6f0f,U+706d,U+708e,U+70ae,U+70bc,U+70c2,U+70e6,U+7237,U+7238,U+72fc,U+730e,U+731b,U+739b,U+73bb,U+7483,U+74dc,U+74f6,U+7586,U+7626,U+775b,U+77ff,U+788e,U+78b0,U+7956,U+7965,U+79e6,U+7af9,U+7bee,U+7c97,U+7eb1,U+7eb7,U+7ed1,U+7ed5,U+7f6a,U+7f72,U+7fbd,U+8017,U+808c,U+80a9,U+80c6,U+80ce,U+8150,U+8170,U+819c,U+820d,U+8230,U+8239,U+827e,U+8377,U+8389,U+83b2,U+8428,U+8463,U+867e,U+88c2,U+88d9,U+8986,U+8bca,U+8bde,U+8c13,U+8c8c,U+8d21,U+8d24,U+8d56,U+8d60,U+8d8b,U+8db4,U+8e2a,U+8f68,U+8f89,U+8f9b,U+8fa8,U+8fbd,U+9003,U+90ce,U+90ed,U+9189,U+94bb,U+9505,U+95f9,U+963b,U+9655,U+966a,U+9677,U+96fe,U+9896,U+99a8,U+9a71,U+9a82,U+9a91,U+9b45,U+9ece,U+9f20,U+ff0d; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.87.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+4e4c,U+4e88,U+4ea1,U+4ea6,U+4ed3,U+4ed4,U+4eff,U+4f30,U+4fa7,U+4fc4,U+4fd7,U+500d,U+504f,U+5076,U+5077,U+517d,U+5192,U+51c9,U+51ef,U+5238,U+5251,U+526a,U+52c7,U+52df,U+52ff,U+53a6,U+53a8,U+53ec,U+5410,U+559d,U+55b7,U+5634,U+573e,U+5783,U+585e,U+586b,U+58a8,U+5999,U+59d3,U+5a1c,U+5a46,U+5b54,U+5b55,U+5b85,U+5b8b,U+5b8f,U+5bbf,U+5bd2,U+5c16,U+5c24,U+5e05,U+5e45,U+5e7c,U+5e84,U+5f03,U+5f1f,U+5f31,U+5f84,U+5f90,U+5fbd,U+5fc6,U+5fd9,U+5fe7,U+6052,U+6062,U+6089,U+60a3,U+60d1,U+6167,U+622a,U+6234,U+624e,U+6269,U+626c,U+62b5,U+62d2,U+6325,U+63e1,U+643a,U+6446,U+6562,U+656c,U+65e2,U+65fa,U+660c,U+6628,U+6652,U+6668,U+6676,U+66fc,U+66ff,U+6717,U+676d,U+67aa,U+67d4,U+6843,U+6881,U+68d2,U+695a,U+69fd,U+6a2a,U+6b8a,U+6c60,U+6c64,U+6c9f,U+6caa,U+6cc9,U+6ce1,U+6cfd,U+6d1b,U+6d1e,U+6d6e,U+6de1,U+6e10,U+6e7f,U+6f5c,U+704c,U+7070,U+7089,U+70b8,U+718a,U+71c3,U+723d,U+732a,U+73cd,U+7518,U+756a,U+75af,U+75be,U+75c7,U+76d2,U+76d7,U+7763,U+78e8,U+795d,U+79df,U+7c4d,U+7d2f,U+7ee9,U+7f13,U+7f8a,U+8000,U+8010,U+80af,U+80f6,U+80f8,U+8212,U+8273,U+82f9,U+83ab,U+83b1,U+83f2,U+8584,U+871c,U+8861,U+888b,U+88c1,U+88e4,U+8bd1,U+8bf1,U+8c31,U+8d5a,U+8d75,U+8d76,U+8de8,U+8f85,U+8fa3,U+8fc5,U+9006,U+903c,U+904d,U+9075,U+9178,U+9274,U+950b,U+9526,U+95ea,U+9636,U+9686,U+978b,U+987f,U+9a7e,U+9b42,U+9e1f,U+9ea6,U+9f13,U+9f84,U+ff5e; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.88.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+23,U+3d,U+4e01,U+4e39,U+4e73,U+4ecd,U+4ed9,U+4eea,U+4f0a,U+4f1f,U+4f5b,U+4fa0,U+4fc3,U+501f,U+50a8,U+515a,U+5175,U+51a0,U+51c0,U+51e1,U+51e4,U+5200,U+520a,U+5224,U+523a,U+52aa,U+52b1,U+52b3,U+5348,U+5353,U+5360,U+5371,U+5377,U+539a,U+541b,U+5434,U+547c,U+54e6,U+5510,U+5531,U+5609,U+56f0,U+56fa,U+5733,U+574f,U+5851,U+5854,U+5899,U+58c1,U+592e,U+5939,U+5976,U+5986,U+59bb,U+5a18,U+5a74,U+5b59,U+5b87,U+5b97,U+5ba0,U+5bab,U+5bbd,U+5bbe,U+5bf8,U+5c0a,U+5c3a,U+5c4a,U+5e16,U+5e1d,U+5e2d,U+5e8a,U+6015,U+602a,U+6050,U+6069,U+6162,U+61c2,U+6293,U+6297,U+62b1,U+62bd,U+62df,U+62fc,U+6302,U+635f,U+638c,U+63ed,U+6458,U+6469,U+6563,U+6620,U+6653,U+6696,U+6697,U+66dd,U+675f,U+676f,U+6770,U+67d0,U+67d3,U+684c,U+6865,U+6885,U+68b0,U+68ee,U+690d,U+6b23,U+6b32,U+6bd5,U+6c89,U+6d01,U+6d25,U+6d89,U+6da6,U+6db2,U+6df7,U+6ed1,U+6f02,U+70c8,U+70df,U+70e7,U+7126,U+7236,U+7259,U+731c,U+745e,U+74e3,U+751a,U+751c,U+7532,U+7545,U+75db,U+7761,U+7a0d,U+7b51,U+7ca4,U+7cd6,U+7d2b,U+7ea0,U+7eb9,U+7ed8,U+7f18,U+7f29,U+8033,U+804a,U+80a4,U+80a5,U+80e1,U+817f,U+829d,U+82e6,U+8336,U+840c,U+8499,U+864e,U+8651,U+865a,U+88ad,U+89e6,U+8bd7,U+8bfa,U+8c37,U+8d25,U+8d38,U+8ddd,U+8fea,U+9010,U+9012,U+906d,U+907f,U+9080,U+90d1,U+9177,U+91ca,U+94fa,U+9501,U+9634,U+9635,U+9694,U+9707,U+9738,U+9769,U+9a7b,U+9a97,U+9aa8,U+9b3c,U+9c81,U+9ed8; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.89.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+26,U+3c,U+d7,U+4e4e,U+4e61,U+4e71,U+4ebf,U+4ee4,U+4f26,U+5012,U+51ac,U+51b0,U+51b2,U+51b7,U+5218,U+521a,U+5220,U+5237,U+523b,U+526f,U+5385,U+53bf,U+53e5,U+53eb,U+53f3,U+53f6,U+5409,U+5438,U+54c8,U+54e5,U+552f,U+5584,U+5706,U+5723,U+5750,U+575a,U+5987,U+5988,U+59b9,U+59d0,U+59d4,U+5b88,U+5b9c,U+5bdf,U+5bfb,U+5c01,U+5c04,U+5c3e,U+5c4b,U+5c4f,U+5c9b,U+5cf0,U+5ddd,U+5de6,U+5de8,U+5e01,U+5e78,U+5e7b,U+5e9c,U+5ead,U+5ef6,U+5f39,U+5fd8,U+6000,U+6025,U+604b,U+6076,U+613f,U+6258,U+6263,U+6267,U+6298,U+62a2,U+62e5,U+62ec,U+6311,U+6377,U+6388,U+6389,U+63a2,U+63d2,U+641e,U+642d,U+654f,U+6551,U+6597,U+65cf,U+65d7,U+65e7,U+6682,U+66f2,U+671d,U+672b,U+6751,U+6768,U+6811,U+6863,U+6982,U+6bd2,U+6cf0,U+6d0b,U+6d17,U+6d59,U+6dd8,U+6dfb,U+6e7e,U+6f6e,U+6fb3,U+706f,U+719f,U+72af,U+72d0,U+72d7,U+732b,U+732e,U+7389,U+73e0,U+7530,U+7687,U+76d6,U+76db,U+7840,U+786c,U+79cb,U+79d2,U+7a0e,U+7a33,U+7a3f,U+7a97,U+7ade,U+7adf,U+7b26,U+7e41,U+7ec3,U+7f3a,U+8089,U+80dc,U+811a,U+8131,U+8138,U+821e,U+8349,U+83dc,U+8457,U+867d,U+86cb,U+8a89,U+8ba8,U+8bad,U+8bef,U+8bfe,U+8c6a,U+8d1d,U+8d4f,U+8d62,U+8dd1,U+8df3,U+8f6e,U+8ff9,U+900f,U+9014,U+9057,U+9192,U+91ce,U+9488,U+94a2,U+9547,U+955c,U+95f2,U+9644,U+964d,U+96c4,U+96c5,U+96e8,U+96f6,U+96f7,U+9732,U+9759,U+9760,U+987a,U+989c,U+9910,U+996d,U+996e,U+9b54,U+9e21,U+9ebb,U+9f50; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.90.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+7e,U+2026,U+4e03,U+4e25,U+4e30,U+4e34,U+4e45,U+4e5d,U+4e89,U+4eae,U+4ed8,U+4f11,U+4f19,U+4f24,U+4f34,U+4f59,U+4f73,U+4f9d,U+4fb5,U+5047,U+505c,U+5170,U+519c,U+51cf,U+5267,U+5356,U+5374,U+5382,U+538b,U+53e6,U+5426,U+542b,U+542f,U+5462,U+5473,U+554a,U+5566,U+5708,U+571f,U+5757,U+57df,U+57f9,U+5802,U+590f,U+591c,U+591f,U+592b,U+5965,U+5979,U+5a01,U+5a5a,U+5b69,U+5b81,U+5ba1,U+5ba3,U+5c3c,U+5c42,U+5c81,U+5de7,U+5dee,U+5e0c,U+5e10,U+5e55,U+5e86,U+5e8f,U+5ea7,U+5f02,U+5f52,U+5f81,U+5ff5,U+60ca,U+60e0,U+6279,U+62c5,U+62ff,U+63cf,U+6444,U+64cd,U+653b,U+65bd,U+65e9,U+665a,U+66b4,U+66fe,U+6728,U+6740,U+6742,U+677e,U+67b6,U+680f,U+68a6,U+68c0,U+699c,U+6b4c,U+6b66,U+6b7b,U+6bcd,U+6bdb,U+6c38,U+6c47,U+6c49,U+6cb3,U+6cb9,U+6ce2,U+6d32,U+6d3e,U+6d4f,U+6e56,U+6fc0,U+7075,U+7206,U+725b,U+72c2,U+73ed,U+7565,U+7591,U+7597,U+75c5,U+76ae,U+76d1,U+76df,U+7834,U+7968,U+7981,U+79c0,U+7a7f,U+7a81,U+7ae5,U+7b14,U+7c89,U+7d27,U+7eaf,U+7eb3,U+7eb8,U+7ec7,U+7ee7,U+7eff,U+7f57,U+7ffb,U+805a,U+80a1,U+822c,U+82cf,U+82e5,U+8363,U+836f,U+84dd,U+878d,U+8840,U+8857,U+8863,U+8865,U+8b66,U+8bb2,U+8bda,U+8c01,U+8c08,U+8c46,U+8d1f,U+8d35,U+8d5b,U+8d5e,U+8da3,U+8ddf,U+8f93,U+8fdd,U+8ff0,U+8ff7,U+8ffd,U+9000,U+9047,U+9152,U+949f,U+94c1,U+94f6,U+9646,U+9648,U+9669,U+969c,U+96ea,U+97e9,U+987b,U+987e,U+989d,U+9970,U+9986,U+9c7c,U+9c9c; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.91.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+25,U+4e14,U+4e1d,U+4e3d,U+4e49,U+4e60,U+4e9a,U+4eb2,U+4ec5,U+4efd,U+4f3c,U+4f4f,U+4f8b,U+4fbf,U+5019,U+5145,U+514b,U+516b,U+516d,U+5174,U+5178,U+517b,U+5199,U+519b,U+51b3,U+51b5,U+5207,U+5212,U+5219,U+521d,U+52bf,U+533b,U+5343,U+5347,U+534a,U+536b,U+5370,U+53e4,U+53f2,U+5403,U+542c,U+547d,U+54a8,U+54cd,U+54ea,U+552e,U+56f4,U+5747,U+575b,U+5883,U+589e,U+5931,U+5947,U+5956,U+5957,U+5a92,U+5b63,U+5b83,U+5ba4,U+5bb3,U+5bcc,U+5c14,U+5c1a,U+5c3d,U+5c40,U+5c45,U+5c5e,U+5df4,U+5e72,U+5e95,U+5f80,U+5f85,U+5fb7,U+5fd7,U+601d,U+626b,U+627f,U+62c9,U+62cd,U+6309,U+63a7,U+6545,U+65ad,U+65af,U+65c5,U+666e,U+667a,U+670b,U+671b,U+674e,U+677f,U+6781,U+6790,U+6797,U+6821,U+6838,U+6839,U+697c,U+6b27,U+6b62,U+6bb5,U+6c7d,U+6c99,U+6d4e,U+6d6a,U+6e29,U+6e2f,U+6ee1,U+6f14,U+6f2b,U+72b6,U+72ec,U+7387,U+7533,U+753b,U+76ca,U+76d8,U+7701,U+773c,U+77ed,U+77f3,U+7814,U+793c,U+79bb,U+79c1,U+79d8,U+79ef,U+79fb,U+7a76,U+7b11,U+7b54,U+7b56,U+7b97,U+7bc7,U+7c73,U+7d20,U+7eaa,U+7ec8,U+7edd,U+7eed,U+7efc,U+7fa4,U+804c,U+8058,U+80cc,U+8111,U+817e,U+826f,U+8303,U+843d,U+89c9,U+89d2,U+8ba2,U+8bbf,U+8bc9,U+8bcd,U+8be6,U+8c22,U+8c61,U+8d22,U+8d26,U+8d27,U+8d8a,U+8f6f,U+8f7b,U+8f83,U+8f91,U+8fb9,U+8fd4,U+8fdc,U+9002,U+94b1,U+9519,U+95ed,U+961f,U+9632,U+9633,U+963f,U+968f,U+9690,U+96be,U+9876,U+9884,U+98de,U+9988,U+9999,U+9ec4,U+ff1b; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.92.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+2b,U+40,U+3000,U+300a,U+300b,U+4e16,U+4e66,U+4e70,U+4e91,U+4e92,U+4e94,U+4e9b,U+4ec0,U+4eca,U+4f01,U+4f17,U+4f18,U+4f46,U+4f4e,U+4f9b,U+4fee,U+503c,U+5065,U+50cf,U+513f,U+5148,U+518d,U+51c6,U+51e0,U+5217,U+529e,U+529f,U+5341,U+534f,U+5361,U+5386,U+53c2,U+53c8,U+53cc,U+53d7,U+53d8,U+5404,U+5411,U+5417,U+5427,U+5468,U+559c,U+5668,U+56e0,U+56e2,U+56ed,U+5740,U+57fa,U+58eb,U+5904,U+592a,U+59cb,U+5a31,U+5b58,U+5b9d,U+5bc6,U+5c71,U+5dde,U+5df1,U+5e08,U+5e26,U+5e2e,U+5e93,U+5e97,U+5eb7,U+5f15,U+5f20,U+5f3a,U+5f62,U+5f69,U+5f88,U+5f8b,U+5fc5,U+600e,U+620f,U+6218,U+623f,U+627e,U+628a,U+62a4,U+62db,U+62e9,U+6307,U+6362,U+636e,U+64ad,U+6539,U+653f,U+6548,U+6574,U+6613,U+6625,U+663e,U+666f,U+672a,U+6750,U+6784,U+6a21,U+6b3e,U+6b65,U+6bcf,U+6c11,U+6c5f,U+6d4b,U+6df1,U+706b,U+7167,U+724c,U+738b,U+73a9,U+73af,U+7403,U+7537,U+754c,U+7559,U+767d,U+7740,U+786e,U+795e,U+798f,U+79f0,U+7aef,U+7b7e,U+7bb1,U+7ea2,U+7ea6,U+7ec4,U+7ec6,U+7ecd,U+7edc,U+7ef4,U+8003,U+80b2,U+81f3,U+81f4,U+822a,U+827a,U+82f1,U+83b7,U+8425,U+89c2,U+89c8,U+8ba9,U+8bb8,U+8bc6,U+8bd5,U+8be2,U+8be5,U+8bed,U+8c03,U+8d23,U+8d2d,U+8d34,U+8d70,U+8db3,U+8fbe,U+8fce,U+8fd1,U+8fde,U+9001,U+901f,U+9020,U+90a3,U+914d,U+91c7,U+94fe,U+9500,U+952e,U+9605,U+9645,U+9662,U+9664,U+9700,U+9752,U+975e,U+97f3,U+9879,U+9886,U+98df,U+9a6c,U+9a8c,U+9ed1,U+9f99; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.93.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+4e,U+201c,U+201d,U+3010,U+3011,U+4e07,U+4e1c,U+4e24,U+4e3e,U+4e48,U+4e50,U+4e5f,U+4e8b,U+4e8c,U+4ea4,U+4eab,U+4eac,U+4ecb,U+4ece,U+4ed6,U+4ee3,U+4ef6,U+4ef7,U+4efb,U+4f20,U+4f55,U+4f7f,U+4fdd,U+505a,U+5143,U+5149,U+514d,U+5171,U+5177,U+518c,U+51fb,U+521b,U+5229,U+522b,U+52a9,U+5305,U+5317,U+534e,U+5355,U+5357,U+535a,U+5373,U+539f,U+53bb,U+53ca,U+53cd,U+53d6,U+53e3,U+53ea,U+53f0,U+5458,U+5546,U+56db,U+573a,U+578b,U+57ce,U+58f0,U+590d,U+5934,U+5973,U+5b57,U+5b8c,U+5b98,U+5bb9,U+5bfc,U+5c06,U+5c11,U+5c31,U+5c55,U+5df2,U+5e03,U+5e76,U+5e94,U+5efa,U+5f71,U+5f97,U+5feb,U+6001,U+603b,U+60f3,U+611f,U+6216,U+624d,U+6253,U+6295,U+6301,U+6392,U+641c,U+652f,U+653e,U+6559,U+6599,U+661f,U+671f,U+672f,U+6761,U+67e5,U+6807,U+6837,U+683c,U+6848,U+6b22,U+6b64,U+6bd4,U+6c14,U+6c34,U+6c42,U+6ca1,U+6d41,U+6d77,U+6d88,U+6e05,U+6e38,U+6e90,U+7136,U+7231,U+7531,U+767e,U+76ee,U+76f4,U+771f,U+7801,U+793a,U+79cd,U+7a0b,U+7a7a,U+7acb,U+7ae0,U+7b2c,U+7b80,U+7ba1,U+7cbe,U+7d22,U+7ea7,U+7ed3,U+7ed9,U+7edf,U+7f16,U+7f6e,U+8001,U+800c,U+8272,U+8282,U+82b1,U+8350,U+88ab,U+88c5,U+897f,U+89c1,U+89c4,U+89e3,U+8a00,U+8ba1,U+8ba4,U+8bae-8bb0,U+8bbe,U+8bc1,U+8bc4,U+8bfb,U+8d28,U+8d39,U+8d77,U+8d85,U+8def,U+8eab,U+8f66,U+8f6c,U+8f7d,U+8fd0,U+9009,U+90ae,U+90fd,U+91cc,U+91cd,U+91cf,U+95fb,U+9650,U+96c6,U+9891,U+98ce,U+ff1f; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.94.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+3e,U+5f,U+7c,U+a0,U+a9,U+4e09-4e0b,U+4e0d,U+4e0e,U+4e13,U+4e1a,U+4e2a,U+4e3a,U+4e3b,U+4e4b,U+4e86,U+4e8e,U+4ea7,U+4eba,U+4ee5,U+4eec,U+4f1a,U+4f4d,U+4f53,U+4f5c,U+4f60,U+4fe1,U+5165,U+5168,U+516c,U+5173,U+5176,U+5185,U+51fa,U+5206,U+5230,U+5236,U+524d,U+529b,U+52a0,U+52a1,U+52a8,U+5316,U+533a,U+53cb,U+53d1,U+53ef,U+53f7,U+53f8,U+5408,U+540c-540e,U+544a,U+548c,U+54c1,U+56de,U+56fd,U+56fe,U+5728,U+5730,U+5907,U+5916,U+591a,U+5927,U+5929,U+597d,U+5982,U+5b50,U+5b66,U+5b89,U+5b9a,U+5b9e,U+5ba2,U+5bb6,U+5bf9,U+5c0f,U+5de5,U+5e02,U+5e38,U+5e73,U+5e74,U+5e7f,U+5ea6,U+5f00,U+5f0f,U+5f53,U+5f55,U+5fae,U+5fc3,U+6027,U+606f,U+60a8,U+60c5,U+610f,U+6210,U+6211,U+6237,U+6240,U+624b,U+6280,U+62a5,U+63a5,U+63a8,U+63d0,U+6536,U+6570,U+6587,U+65b9,U+65e0,U+65f6,U+660e,U+662d,U+662f,U+66f4,U+6700,U+670d,U+672c,U+673a,U+6743,U+6765,U+679c,U+682a,U+6b21,U+6b63,U+6cbb,U+6cd5,U+6ce8,U+6d3b,U+70ed,U+7247,U+7248,U+7269,U+7279,U+73b0,U+7406,U+751f,U+7528,U+7535,U+767b,U+76f8,U+770b,U+77e5,U+793e,U+79d1,U+7ad9,U+7b49,U+7c7b,U+7cfb,U+7ebf,U+7ecf,U+7f8e,U+8005,U+8054,U+80fd,U+81ea,U+85cf,U+884c,U+8868,U+8981,U+89c6,U+8bba,U+8bdd,U+8bf4,U+8bf7,U+8d44,U+8fc7,U+8fd8,U+8fd9,U+8fdb,U+901a,U+9053,U+90e8,U+91d1,U+957f,U+95e8,U+95ee,U+95f4,U+9762,U+9875,U+9898,U+9996,U+9ad8,U+ff01,U+ff08,U+ff09; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.95.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+20-22,U+27-2a,U+2c-3b,U+3f,U+41-4d,U+4f-5d,U+61-7b,U+7d,U+ab,U+ae,U+b2,U+b7,U+bb,U+2013,U+2014,U+2039,U+203a,U+2122,U+3001,U+3002,U+30fb,U+30fc,U+4e00,U+4e2d,U+65b0,U+65e5,U+6708,U+6709,U+70b9,U+7684,U+7f51,U+ff0c,U+ff0e,U+ff1a; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Bold.96.woff2") format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; + unicode-range: U+df-e5,U+e7-ea,U+ec,U+ed,U+f1-f4,U+f6,U+f9,U+fa,U+fc,U+101,U+103,U+113,U+12b,U+148,U+14d,U+16b,U+1ce,U+1d0,U+300,U+301,U+1ebf,U+1ec7,U+3042,U+3044,U+3046,U+3048,U+304a-3055,U+3057,U+3059-305b,U+305d,U+305f-3061,U+3063-306b,U+306d-3073,U+3075,U+3076,U+3078,U+3079,U+307b,U+307e,U+307f,U+3081-308d,U+308f,U+3092,U+3093,U+30a1-30a4,U+30a6-30bb,U+30bd,U+30bf-30c1,U+30c3,U+30c4,U+30c6-30cb,U+30cd-30d7,U+30d9-30e1,U+30e3-30e7,U+30e9-30ed,U+30ef,U+30f3; +} diff --git a/resources/font/HarmonyOS_Sans_SC_Bold/index.html b/resources/font/HarmonyOS_Sans_SC_Bold/index.html new file mode 100644 index 0000000..a2f5ec2 --- /dev/null +++ b/resources/font/HarmonyOS_Sans_SC_Bold/index.html @@ -0,0 +1,20 @@ + + + + + + Demo + + + + + +
+

Created by voderl ( https://github.com/voderl/font-slice )

+

如果遇到问题可以在 issue 中反馈

+ +
+ + \ No newline at end of file diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.1.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.1.woff2 new file mode 100644 index 0000000..3763073 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.1.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.10.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.10.woff2 new file mode 100644 index 0000000..041d76e Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.10.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.11.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.11.woff2 new file mode 100644 index 0000000..92d87a8 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.11.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.12.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.12.woff2 new file mode 100644 index 0000000..4e3fce6 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.12.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.13.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.13.woff2 new file mode 100644 index 0000000..c975006 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.13.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.14.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.14.woff2 new file mode 100644 index 0000000..582dded Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.14.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.15.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.15.woff2 new file mode 100644 index 0000000..6b23d2d Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.15.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.16.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.16.woff2 new file mode 100644 index 0000000..945a817 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.16.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.17.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.17.woff2 new file mode 100644 index 0000000..c490894 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.17.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.18.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.18.woff2 new file mode 100644 index 0000000..938dd4d Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.18.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.19.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.19.woff2 new file mode 100644 index 0000000..c2424d9 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.19.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.2.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.2.woff2 new file mode 100644 index 0000000..e3d4e29 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.2.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.20.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.20.woff2 new file mode 100644 index 0000000..64833dc Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.20.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.21.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.21.woff2 new file mode 100644 index 0000000..6fdfb80 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.21.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.22.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.22.woff2 new file mode 100644 index 0000000..5093cb4 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.22.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.23.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.23.woff2 new file mode 100644 index 0000000..356b8ac Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.23.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.24.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.24.woff2 new file mode 100644 index 0000000..bd8a22e Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.24.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.25.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.25.woff2 new file mode 100644 index 0000000..c1eeb9f Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.25.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.26.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.26.woff2 new file mode 100644 index 0000000..37a0aae Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.26.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.27.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.27.woff2 new file mode 100644 index 0000000..a24ff4c Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.27.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.28.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.28.woff2 new file mode 100644 index 0000000..5ddcc3c Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.28.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.29.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.29.woff2 new file mode 100644 index 0000000..417354a Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.29.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.3.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.3.woff2 new file mode 100644 index 0000000..b90e024 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.3.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.30.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.30.woff2 new file mode 100644 index 0000000..9552a32 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.30.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.31.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.31.woff2 new file mode 100644 index 0000000..00b0736 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.31.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.32.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.32.woff2 new file mode 100644 index 0000000..20e4af4 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.32.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.33.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.33.woff2 new file mode 100644 index 0000000..8e85b9a Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.33.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.34.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.34.woff2 new file mode 100644 index 0000000..9b92d59 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.34.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.35.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.35.woff2 new file mode 100644 index 0000000..d05e10d Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.35.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.36.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.36.woff2 new file mode 100644 index 0000000..72d2ae6 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.36.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.37.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.37.woff2 new file mode 100644 index 0000000..1c662df Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.37.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.38.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.38.woff2 new file mode 100644 index 0000000..a54f04d Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.38.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.39.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.39.woff2 new file mode 100644 index 0000000..ba8c7f5 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.39.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.4.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.4.woff2 new file mode 100644 index 0000000..59536bc Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.4.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.40.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.40.woff2 new file mode 100644 index 0000000..e1a7181 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.40.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.41.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.41.woff2 new file mode 100644 index 0000000..a248cd9 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.41.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.42.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.42.woff2 new file mode 100644 index 0000000..abf531b Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.42.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.43.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.43.woff2 new file mode 100644 index 0000000..cc8ac20 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.43.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.44.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.44.woff2 new file mode 100644 index 0000000..5e3f47b Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.44.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.45.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.45.woff2 new file mode 100644 index 0000000..ca27ff4 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.45.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.46.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.46.woff2 new file mode 100644 index 0000000..a1b54b0 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.46.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.47.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.47.woff2 new file mode 100644 index 0000000..4fb4dcf Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.47.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.48.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.48.woff2 new file mode 100644 index 0000000..6405e21 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.48.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.49.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.49.woff2 new file mode 100644 index 0000000..92bf98f Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.49.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.5.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.5.woff2 new file mode 100644 index 0000000..22bead5 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.5.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.50.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.50.woff2 new file mode 100644 index 0000000..2362d85 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.50.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.51.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.51.woff2 new file mode 100644 index 0000000..646c576 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.51.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.52.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.52.woff2 new file mode 100644 index 0000000..3317060 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.52.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.53.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.53.woff2 new file mode 100644 index 0000000..234a0b0 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.53.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.54.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.54.woff2 new file mode 100644 index 0000000..9d3db53 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.54.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.55.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.55.woff2 new file mode 100644 index 0000000..2502df6 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.55.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.56.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.56.woff2 new file mode 100644 index 0000000..9d0f9da Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.56.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.57.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.57.woff2 new file mode 100644 index 0000000..f35a2d9 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.57.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.58.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.58.woff2 new file mode 100644 index 0000000..a78f3fa Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.58.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.59.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.59.woff2 new file mode 100644 index 0000000..a5e6c20 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.59.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.6.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.6.woff2 new file mode 100644 index 0000000..5caffe8 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.6.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.60.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.60.woff2 new file mode 100644 index 0000000..8feefcf Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.60.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.61.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.61.woff2 new file mode 100644 index 0000000..b743df5 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.61.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.62.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.62.woff2 new file mode 100644 index 0000000..15023f4 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.62.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.63.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.63.woff2 new file mode 100644 index 0000000..a23b167 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.63.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.64.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.64.woff2 new file mode 100644 index 0000000..fdc9977 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.64.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.65.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.65.woff2 new file mode 100644 index 0000000..56d15fb Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.65.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.66.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.66.woff2 new file mode 100644 index 0000000..11b6f48 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.66.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.67.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.67.woff2 new file mode 100644 index 0000000..10d6c3f Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.67.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.68.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.68.woff2 new file mode 100644 index 0000000..8272bde Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.68.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.69.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.69.woff2 new file mode 100644 index 0000000..770dbf0 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.69.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.7.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.7.woff2 new file mode 100644 index 0000000..70080b4 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.7.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.70.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.70.woff2 new file mode 100644 index 0000000..65bf22f Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.70.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.71.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.71.woff2 new file mode 100644 index 0000000..5aa5c18 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.71.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.72.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.72.woff2 new file mode 100644 index 0000000..b16924e Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.72.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.73.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.73.woff2 new file mode 100644 index 0000000..af835f1 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.73.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.74.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.74.woff2 new file mode 100644 index 0000000..7e66b70 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.74.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.75.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.75.woff2 new file mode 100644 index 0000000..afe7d3c Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.75.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.76.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.76.woff2 new file mode 100644 index 0000000..001a53c Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.76.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.77.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.77.woff2 new file mode 100644 index 0000000..beeac09 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.77.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.78.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.78.woff2 new file mode 100644 index 0000000..8ad1e83 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.78.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.79.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.79.woff2 new file mode 100644 index 0000000..a5c4afc Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.79.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.8.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.8.woff2 new file mode 100644 index 0000000..222265b Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.8.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.80.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.80.woff2 new file mode 100644 index 0000000..cef77d5 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.80.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.81.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.81.woff2 new file mode 100644 index 0000000..d10dc1e Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.81.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.82.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.82.woff2 new file mode 100644 index 0000000..d2c1cab Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.82.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.83.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.83.woff2 new file mode 100644 index 0000000..4fc87fe Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.83.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.84.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.84.woff2 new file mode 100644 index 0000000..4fe8d91 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.84.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.85.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.85.woff2 new file mode 100644 index 0000000..25b6a5f Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.85.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.86.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.86.woff2 new file mode 100644 index 0000000..95a8dc6 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.86.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.87.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.87.woff2 new file mode 100644 index 0000000..e415d7d Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.87.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.88.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.88.woff2 new file mode 100644 index 0000000..bab296d Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.88.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.89.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.89.woff2 new file mode 100644 index 0000000..5300557 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.89.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.9.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.9.woff2 new file mode 100644 index 0000000..d4d827e Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.9.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.90.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.90.woff2 new file mode 100644 index 0000000..948009c Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.90.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.91.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.91.woff2 new file mode 100644 index 0000000..01d31e2 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.91.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.92.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.92.woff2 new file mode 100644 index 0000000..c4c6783 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.92.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.93.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.93.woff2 new file mode 100644 index 0000000..b164eeb Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.93.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.94.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.94.woff2 new file mode 100644 index 0000000..730dc10 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.94.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.95.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.95.woff2 new file mode 100644 index 0000000..3055a9c Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.95.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.96.woff2 b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.96.woff2 new file mode 100644 index 0000000..40ac6ea Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Light/HarmonyOS_Sans_SC_Light.96.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Light/font.css b/resources/font/HarmonyOS_Sans_SC_Light/font.css new file mode 100644 index 0000000..61d7f2c --- /dev/null +++ b/resources/font/HarmonyOS_Sans_SC_Light/font.css @@ -0,0 +1,769 @@ +/** generated by https://github.com/voderl/font-slice */ +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.1.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+ff03,U+ff04,U+ff07,U+ff0a,U+ff17-ff19,U+ff1c,U+ff1d,U+ff20-ff3a,U+ff3c,U+ff3e-ff5b,U+ff5d,U+ffe0-ffe4; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.2.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+f92c,U+f979,U+fa11,U+fe30,U+fe31,U+fe33-fe44,U+fe49-fe52,U+fe54-fe57,U+fe59-fe66,U+fe68-fe6b; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.3.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+9f3d,U+9f3e,U+9f41,U+9f4a,U+9f4b,U+9f51,U+9f52,U+9f61-9f63,U+9f66,U+9f67,U+9f80,U+9f81,U+9f83,U+9f85-9f8d,U+9f90,U+9f91,U+9f94-9f96,U+9f98,U+9f9b,U+9f9c,U+9f9e,U+9fa0,U+9fa2; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.4.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+9dfa,U+9e0a,U+9e11,U+9e1a,U+9e1e,U+9e20,U+9e22,U+9e28-9e2c,U+9e2e-9e33,U+9e35-9e3b,U+9e3e,U+9e40-9e44,U+9e46-9e4e,U+9e51,U+9e53,U+9e55-9e58,U+9e5a-9e5c,U+9e5e-9e63,U+9e66-9e6e,U+9e71,U+9e73,U+9e75,U+9e78,U+9e79,U+9e7c-9e7e,U+9e82,U+9e86-9e88,U+9e8b,U+9e8c,U+9e90,U+9e91,U+9e93,U+9e95,U+9e97,U+9e9d,U+9ea4,U+9ea5,U+9ea9,U+9eaa,U+9eb4,U+9eb5,U+9eb8-9eba,U+9ebc-9ebf,U+9ec3,U+9ec9,U+9ecd,U+9ed0,U+9ed2,U+9ed3,U+9ed5,U+9ed6,U+9ed9,U+9edc,U+9edd,U+9edf,U+9ee0,U+9ee2,U+9ee5,U+9ee7-9eea,U+9eef,U+9ef1,U+9ef3,U+9ef4,U+9ef6,U+9ef9,U+9efb,U+9efc,U+9efe,U+9f0b,U+9f0d,U+9f10,U+9f14,U+9f17,U+9f19,U+9f22,U+9f29,U+9f2c,U+9f2f,U+9f31,U+9f37,U+9f39; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.5.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+9c3b,U+9c40,U+9c47-9c49,U+9c53,U+9c57,U+9c64,U+9c72,U+9c77,U+9c78,U+9c7b,U+9c7f,U+9c80,U+9c82,U+9c83,U+9c85-9c8c,U+9c8e-9c92,U+9c94-9c9b,U+9c9e-9ca3,U+9ca5-9ca7,U+9ca9,U+9cab,U+9cad,U+9cae,U+9cb1-9cb7,U+9cb9-9cbd,U+9cbf,U+9cc0,U+9cc3,U+9cc5-9cc7,U+9cc9-9cd1,U+9cd3-9cda,U+9cdc,U+9cdd,U+9cdf,U+9ce1-9ce3,U+9ce5,U+9ce9,U+9cee,U+9cef,U+9cf3,U+9cf4,U+9cf6,U+9cfc,U+9cfd,U+9d02,U+9d08,U+9d09,U+9d12,U+9d1b,U+9d1e,U+9d26,U+9d28,U+9d37,U+9d3b,U+9d3f,U+9d51,U+9d59,U+9d5c,U+9d5d,U+9d5f-9d61,U+9d6c,U+9d70,U+9d72,U+9d7a,U+9d7e,U+9d84,U+9d89,U+9d8f,U+9d92,U+9daf,U+9db4,U+9db8,U+9dbc,U+9dc4,U+9dc7,U+9dc9,U+9dd7,U+9ddf,U+9df2,U+9df9; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.6.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+9a5f,U+9a62,U+9a65,U+9a69,U+9a6b,U+9a6e,U+9a75,U+9a77-9a7a,U+9a7d,U+9a80,U+9a83,U+9a85,U+9a87-9a8a,U+9a8d,U+9a8e,U+9a90,U+9a92,U+9a93,U+9a95,U+9a96,U+9a98,U+9a99,U+9a9b-9aa2,U+9aa5,U+9aa7,U+9aaf-9ab1,U+9ab5,U+9ab6,U+9ab9,U+9aba,U+9abc,U+9ac0-9ac4,U+9ac8,U+9acb,U+9acc,U+9ace,U+9acf,U+9ad1,U+9ad2,U+9ad9,U+9adf,U+9ae1,U+9ae3,U+9aea,U+9aeb,U+9aed-9aef,U+9af4,U+9af9,U+9afb,U+9b03,U+9b04,U+9b06,U+9b08,U+9b0d,U+9b0f,U+9b10,U+9b13,U+9b18,U+9b1a,U+9b1f,U+9b22,U+9b23,U+9b25,U+9b27,U+9b28,U+9b2a,U+9b2f,U+9b31,U+9b32,U+9b3b,U+9b43,U+9b46-9b49,U+9b4d,U+9b4e,U+9b51,U+9b56,U+9b58,U+9b5a,U+9b5c,U+9b5f,U+9b61,U+9b62,U+9b6f,U+9b77,U+9b80,U+9b88,U+9b8b,U+9b8e,U+9b91,U+9b9f,U+9ba0,U+9ba8,U+9baa,U+9bab,U+9bad,U+9bae,U+9bb0,U+9bb1,U+9bb8,U+9bc9,U+9bca,U+9bd3,U+9bd6,U+9bdb,U+9be8,U+9bf0,U+9bf1,U+9c02,U+9c10,U+9c15,U+9c24,U+9c2d,U+9c32,U+9c39; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.7.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+98c8,U+98cf-98d6,U+98da,U+98db,U+98dd,U+98e1,U+98e2,U+98e7-98ea,U+98ec,U+98ee,U+98ef,U+98f2,U+98f4,U+98fc-98fe,U+9903,U+9905,U+9908,U+990a,U+990c,U+990d,U+9913,U+9914,U+9918,U+991a,U+991b,U+991e,U+9921,U+9928,U+992c,U+992e,U+9935,U+9938,U+9939,U+993d,U+993e,U+9945,U+994b,U+994c,U+9951,U+9952,U+9954,U+9955,U+9957,U+995e,U+9963,U+9966-9969,U+996b,U+996c,U+996f,U+9974,U+9975,U+9977-9979,U+997d,U+997e,U+9980,U+9981,U+9983,U+9984,U+9987,U+998a,U+998b,U+998d-9991,U+9993-9995,U+9997,U+9998,U+99a5,U+99ab-99ae,U+99b1,U+99b3,U+99b4,U+99bc,U+99bf,U+99c1,U+99c3-99c6,U+99cc,U+99d0,U+99d2,U+99d5,U+99db,U+99dd,U+99e1,U+99ed,U+99f1,U+99ff,U+9a01,U+9a03,U+9a04,U+9a0e,U+9a0f,U+9a11-9a13,U+9a19,U+9a1b,U+9a28,U+9a2b,U+9a30,U+9a32,U+9a37,U+9a40,U+9a45,U+9a4a,U+9a4d,U+9a4e,U+9a52,U+9a55,U+9a57,U+9a5a,U+9a5b; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.8.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+972a,U+972d,U+9730,U+973d,U+9742,U+9744,U+9748,U+9749,U+9750,U+9751,U+975a-975c,U+9763,U+9765,U+9766,U+976c,U+976d,U+9773,U+9776,U+977a,U+977c,U+9784,U+9785,U+978e,U+978f,U+9791,U+9792,U+9794,U+9795,U+9798,U+979a,U+979e,U+97a3,U+97a5,U+97a6,U+97a8,U+97ab,U+97ac,U+97ae,U+97af,U+97b2,U+97b4,U+97c6,U+97cb,U+97cc,U+97d3,U+97d8,U+97dc,U+97e1,U+97ea,U+97eb,U+97ee,U+97fb,U+97fe,U+97ff,U+9801-9803,U+9805,U+9806,U+9808,U+980c,U+9810-9814,U+9817,U+9818,U+981e,U+9820,U+9821,U+9824,U+9828,U+982b-982d,U+9830,U+9834,U+9838,U+9839,U+983c,U+9846,U+984d-984f,U+9851,U+9852,U+9854,U+9855,U+9857,U+9858,U+985a,U+985b,U+9862,U+9863,U+9865,U+9867,U+986b,U+986f-9871,U+9877,U+9878,U+987c,U+9880,U+9883,U+9885,U+9889,U+988b-988f,U+9893-9895,U+9899-989b,U+989e,U+989f,U+98a1,U+98a2,U+98a5-98a7,U+98a9,U+98af,U+98b1,U+98b6,U+98ba,U+98be,U+98c3,U+98c4,U+98c6,U+98c7; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.9.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+95b9-95ca,U+95cc,U+95cd,U+95d4-95d6,U+95d8,U+95e1,U+95e2,U+95e9,U+95f0,U+95f1,U+95f3,U+95f6,U+95fc,U+95fe,U+95ff,U+9602-9604,U+9606-960d,U+960f,U+9611-9613,U+9615-9617,U+9619-961b,U+961d,U+9621,U+9628,U+962f,U+963c-963e,U+9641,U+9642,U+9649,U+9654,U+965b-965f,U+9661,U+9663,U+9665,U+9667,U+9668,U+966c,U+9670,U+9672-9674,U+9678,U+967a,U+967d,U+9682,U+9685,U+9688,U+968a,U+968d,U+968e,U+9695,U+9697,U+9698,U+969e,U+96a0,U+96a3,U+96a4,U+96a8,U+96aa,U+96b0,U+96b1,U+96b3,U+96b4,U+96b7-96b9,U+96bb-96bd,U+96c9,U+96cb,U+96ce,U+96d1,U+96d2,U+96d6,U+96d9,U+96db,U+96dc,U+96de,U+96e0,U+96e3,U+96e9,U+96eb,U+96f0-96f2,U+96f9,U+96ff,U+9701,U+9702,U+9705,U+9708,U+970a,U+970e,U+970f,U+9711,U+9719,U+9727; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.10.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+94e7-94ec,U+94ee-94f1,U+94f3,U+94f5,U+94f7,U+94f9,U+94fb-94fd,U+94ff,U+9503,U+9504,U+9506,U+9507,U+9509,U+950a,U+950d-950f,U+9511-9518,U+951a-9520,U+9522,U+9528-952d,U+9530-953a,U+953c-953f,U+9543-9546,U+9548-9550,U+9552-9555,U+9557-955b,U+955d-9568,U+956a-956d,U+9570-9574,U+9583,U+9586,U+9589,U+958e,U+958f,U+9591,U+9592,U+9594,U+9598,U+9599,U+959e-95a0,U+95a2-95a6,U+95a8-95b2,U+95b4,U+95b8; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.11.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+9410-941a,U+941c-942b,U+942d,U+942e,U+9432,U+9433,U+9435,U+9438,U+943a,U+943e,U+9444,U+944a,U+9451,U+9452,U+945a,U+9462,U+9463,U+9465,U+9470-9487,U+948a-9492,U+9494-9498,U+949a,U+949c,U+949d,U+94a1,U+94a3,U+94a4,U+94a8,U+94aa-94ad,U+94af,U+94b2,U+94b4-94ba,U+94bc-94c0,U+94c4,U+94c6-94db,U+94de-94e6; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.12.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+92b7,U+92b9,U+92c1,U+92c5,U+92c6,U+92c8,U+92cc,U+92d0,U+92d2,U+92e4,U+92ea,U+92ec,U+92ed,U+92f0,U+92f3,U+92f8,U+92fc,U+9304,U+9306,U+9310,U+9312,U+9315,U+9318,U+931a,U+931e,U+9320-9322,U+9324,U+9326-9329,U+932b,U+932c,U+932f,U+9331,U+9332,U+9335,U+9336,U+933e,U+9340,U+9341,U+934a-9360,U+9362,U+9363,U+9365-936b,U+936e,U+9375,U+937e,U+9382,U+938a,U+938c,U+938f,U+9393,U+9394,U+9396,U+9397,U+939a,U+93a2,U+93a7,U+93ac-93cd,U+93d0,U+93d1,U+93d6-93d8,U+93de,U+93df,U+93e1,U+93e2,U+93e4,U+93f8,U+93fb,U+93fd,U+940e,U+940f; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.13.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+914c,U+914e-9150,U+9154,U+9157,U+915a,U+915d,U+915e,U+9161-9164,U+9169,U+9170,U+9172,U+9174,U+9179,U+917a,U+917d,U+917e,U+9182,U+9183,U+9185,U+918c,U+918d,U+9190,U+9191,U+919a,U+919c,U+91a1-91a4,U+91a8,U+91aa-91af,U+91b4,U+91b5,U+91b8,U+91ba,U+91be,U+91c0,U+91c1,U+91c6,U+91c8,U+91cb,U+91d0,U+91d2,U+91d7,U+91d8,U+91dd,U+91e3,U+91e6,U+91e7,U+91ed,U+91f0,U+91f5,U+91f9,U+9200,U+9205,U+9207-920a,U+920d,U+920e,U+9210,U+9214,U+9215,U+921c,U+921e,U+9221,U+9223-9227,U+9229,U+922a,U+922d,U+9234,U+9235,U+9237,U+9239,U+923a,U+923c-9240,U+9244-9246,U+9249,U+924e,U+924f,U+9251,U+9253,U+9257,U+925b,U+925e,U+9262,U+9264-9266,U+9268,U+926c,U+926f,U+9271,U+927b,U+927e,U+9280,U+9283,U+9285-928a,U+928e,U+9291,U+9293,U+9296,U+9298,U+929c,U+929d,U+92a8,U+92ab-92ae,U+92b3,U+92b6; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.14.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+8fe2-8fe5,U+8fe8,U+8fe9,U+8fee,U+8ff3,U+8ff4,U+8ff8,U+8ffa,U+9004,U+900b,U+9011,U+9015,U+9016,U+901e,U+9021,U+9026,U+902d,U+902f,U+9031,U+9035,U+9036,U+9039,U+903a,U+9041,U+9044-9046,U+904a,U+904f-9052,U+9054,U+9055,U+9058,U+9059,U+905b-905e,U+9060-9062,U+9068,U+9069,U+906f,U+9072,U+9074,U+9076-907a,U+907c,U+907d,U+9081,U+9083,U+9085,U+9087-908b,U+908f,U+9095,U+9097,U+9099-909b,U+909d,U+90a0,U+90a1,U+90a8,U+90a9,U+90ac,U+90b0,U+90b2-90b4,U+90b6,U+90b8,U+90ba,U+90bd,U+90be,U+90c3-90c5,U+90c7,U+90c8,U+90cf,U+90d0,U+90d3,U+90d5,U+90d7,U+90da-90dc,U+90de,U+90e2,U+90e4,U+90e6,U+90e7,U+90ea,U+90eb,U+90ef,U+90f4,U+90f5,U+90f7,U+90fe-9100,U+9104,U+9109,U+910c,U+9112,U+9114,U+9115,U+9118,U+911c,U+911e,U+9120,U+9122,U+9123,U+9127,U+912d,U+912f-9132,U+9139,U+913a,U+9143,U+9146,U+9149,U+914a; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.15.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+8e2d-8e31,U+8e34,U+8e35,U+8e39,U+8e3a,U+8e3d,U+8e40-8e42,U+8e47,U+8e49-8e4b,U+8e50-8e53,U+8e59,U+8e5a,U+8e5f,U+8e60,U+8e64,U+8e69,U+8e6c,U+8e70,U+8e74,U+8e76,U+8e7a-8e7c,U+8e7f,U+8e84,U+8e85,U+8e87,U+8e89,U+8e8b,U+8e8d,U+8e8f,U+8e90,U+8e94,U+8e99,U+8e9c,U+8e9e,U+8eaa,U+8eac,U+8eb0,U+8eb6,U+8ec0,U+8ec6,U+8eca-8ece,U+8ed2,U+8eda,U+8edf,U+8ee2,U+8eeb,U+8ef8,U+8efb-8efe,U+8f03,U+8f09,U+8f0b,U+8f12-8f15,U+8f1b,U+8f1d,U+8f1f,U+8f29,U+8f2a,U+8f2f,U+8f36,U+8f38,U+8f3b,U+8f3e,U+8f3f,U+8f44,U+8f45,U+8f49,U+8f4d,U+8f4e,U+8f5f,U+8f6b,U+8f6d,U+8f71-8f73,U+8f75,U+8f76,U+8f78-8f7a,U+8f7c,U+8f7e,U+8f81,U+8f82,U+8f84,U+8f87,U+8f8a,U+8f8b,U+8f8d-8f8f,U+8f94,U+8f95,U+8f97-8f9a,U+8fa6,U+8fad-8faf,U+8fb2,U+8fb5-8fb7,U+8fba-8fbc,U+8fbf,U+8fc2,U+8fcb,U+8fcd,U+8fd3,U+8fd5,U+8fd7,U+8fda; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.16.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+8caf,U+8cb0,U+8cb3,U+8cb4,U+8cb6-8cb9,U+8cbb-8cbd,U+8cbf-8cc4,U+8cc7,U+8cc8,U+8cca,U+8ccd,U+8cd1,U+8cd3,U+8cdb,U+8cdc,U+8cde,U+8ce0,U+8ce2-8ce4,U+8ce6-8ce8,U+8cea,U+8ced,U+8cf4,U+8cf8,U+8cfa,U+8cfc,U+8cfd,U+8d04,U+8d05,U+8d07,U+8d08,U+8d0a,U+8d0d,U+8d0f,U+8d13,U+8d14,U+8d16,U+8d1b,U+8d20,U+8d2e,U+8d30,U+8d32,U+8d33,U+8d36,U+8d3b,U+8d3d,U+8d40,U+8d42,U+8d43,U+8d45,U+8d46,U+8d48-8d4a,U+8d4d,U+8d51,U+8d53,U+8d55,U+8d59,U+8d5c,U+8d5d,U+8d5f,U+8d61,U+8d66,U+8d67,U+8d6a,U+8d6d,U+8d71,U+8d73,U+8d84,U+8d90,U+8d91,U+8d94,U+8d95,U+8d99,U+8da8,U+8daf,U+8db1,U+8db5,U+8db8,U+8dba,U+8dbc,U+8dbf,U+8dc2,U+8dc4,U+8dc6,U+8dcb,U+8dce,U+8dcf,U+8dd6,U+8dd7,U+8dda,U+8ddb,U+8dde,U+8de1,U+8de3,U+8de4,U+8de9,U+8deb,U+8dec,U+8df0,U+8df1,U+8df6-8dfd,U+8e05,U+8e07,U+8e09,U+8e0a,U+8e0c,U+8e0e,U+8e10,U+8e14,U+8e1d-8e1f,U+8e23,U+8e26,U+8e2b,U+8e2c; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.17.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+8b5e,U+8b60,U+8b6c,U+8b6f,U+8b70,U+8b72,U+8b74,U+8b77,U+8b7d,U+8b80,U+8b83,U+8b8a,U+8b8c,U+8b90,U+8b93,U+8b99,U+8b9a,U+8ba0,U+8ba3,U+8ba5-8ba7,U+8baa-8bac,U+8bb3-8bb5,U+8bb7,U+8bb9,U+8bc2,U+8bc3,U+8bc5,U+8bcb,U+8bcc,U+8bce-8bd0,U+8bd2-8bd4,U+8bd6,U+8bd8,U+8bd9,U+8bdc,U+8bdf,U+8be3,U+8be4,U+8be7-8be9,U+8beb,U+8bec,U+8bee,U+8bf0,U+8bf2,U+8bf3,U+8bf6,U+8bf9,U+8bfc,U+8bfd,U+8bff,U+8c00,U+8c02,U+8c04,U+8c06,U+8c07,U+8c0c,U+8c0f,U+8c11,U+8c12,U+8c14-8c1b,U+8c1d-8c21,U+8c24,U+8c25,U+8c27,U+8c2a-8c2c,U+8c2e-8c30,U+8c32-8c36,U+8c3f,U+8c47-8c4c,U+8c4e-8c50,U+8c54-8c56,U+8c62,U+8c68,U+8c6c,U+8c73,U+8c78,U+8c7a,U+8c82,U+8c85,U+8c89,U+8c8a,U+8c8d,U+8c8e,U+8c90,U+8c93,U+8c94,U+8c98,U+8c9d,U+8c9e,U+8ca0-8ca2,U+8ca7-8cac; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.18.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+8a02,U+8a03,U+8a07-8a0a,U+8a0e,U+8a0f,U+8a13,U+8a15-8a18,U+8a1a,U+8a1b,U+8a1d,U+8a1f,U+8a22,U+8a23,U+8a25,U+8a2b,U+8a2d,U+8a31,U+8a33,U+8a34,U+8a36-8a38,U+8a3a,U+8a3c,U+8a3e,U+8a40,U+8a41,U+8a46,U+8a48,U+8a50,U+8a52,U+8a54,U+8a55,U+8a58,U+8a5b,U+8a5d-8a63,U+8a66,U+8a69-8a6b,U+8a6d,U+8a6e,U+8a70,U+8a72,U+8a73,U+8a7a,U+8a85,U+8a87,U+8a8a,U+8a8c,U+8a8d,U+8a90-8a92,U+8a95,U+8a98,U+8aa0,U+8aa1,U+8aa3-8aa6,U+8aa8,U+8aa9,U+8aac-8aae,U+8ab0,U+8ab2,U+8ab8,U+8ab9,U+8abc,U+8abe,U+8abf,U+8ac7,U+8acf,U+8ad2,U+8ad6,U+8ad7,U+8adb,U+8adc,U+8adf,U+8ae1,U+8ae6-8ae8,U+8aeb,U+8aed,U+8aee,U+8af1,U+8af3,U+8af4,U+8af7,U+8af8,U+8afa,U+8afe,U+8b00-8b02,U+8b07,U+8b0a,U+8b0c,U+8b0e,U+8b10,U+8b17,U+8b19,U+8b1b,U+8b1d,U+8b20,U+8b21,U+8b26,U+8b28,U+8b2c,U+8b33,U+8b39,U+8b3e,U+8b3f,U+8b41,U+8b45,U+8b49,U+8b4c,U+8b4f,U+8b57,U+8b58,U+8b5a,U+8b5c; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.19.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+8869,U+886a,U+886e,U+886f,U+8872,U+8879,U+887d-887f,U+8882,U+8884-8886,U+8888,U+888f,U+8892,U+8893,U+889b,U+88a2,U+88a4,U+88a6,U+88a8,U+88aa,U+88ae,U+88b1,U+88b4,U+88b7,U+88bc,U+88c0,U+88c6-88c9,U+88ce,U+88cf,U+88d1-88d3,U+88d8,U+88db-88dd,U+88df,U+88e1-88e3,U+88e5,U+88e8,U+88ec,U+88f0,U+88f1,U+88f3,U+88f4,U+88fc-88fe,U+8900,U+8902,U+8906,U+8907,U+8909-890c,U+8912-8915,U+8918-891b,U+8921,U+8925,U+892b,U+8930,U+8932,U+8934,U+8936,U+893b,U+893d,U+8941,U+894c,U+8955,U+8956,U+8959,U+895c,U+895e-8960,U+8966,U+896a,U+896c,U+896f,U+8970,U+8972,U+897b,U+897e,U+8980,U+8983,U+8985,U+8987,U+8988,U+898c,U+898f,U+8993,U+8997,U+899a,U+89a1,U+89a7,U+89a9,U+89aa,U+89b2,U+89b3,U+89b7,U+89c0,U+89c7,U+89ca-89cc,U+89ce-89d1,U+89d6,U+89da,U+89dc,U+89de,U+89e5,U+89e7,U+89eb,U+89ef,U+89f1,U+89f3,U+89f4,U+89f8,U+89ff,U+8a01; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.20.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+86e4,U+86e6,U+86e9,U+86ed,U+86ef-86f4,U+86f8,U+86f9,U+86fb,U+86fe,U+8703,U+8706-870a,U+870d,U+8711-8713,U+871a,U+871e,U+8722,U+8723,U+8725,U+8729,U+872e,U+8731,U+8734,U+8737,U+873a,U+873b,U+873e-8740,U+8742,U+8747,U+8748,U+8753,U+8755,U+8757,U+8758,U+875d,U+875f,U+8762-8766,U+8768,U+876e,U+8770,U+8772,U+8775,U+8778,U+877b-877e,U+8782,U+8785,U+8788,U+878b,U+8793,U+8797,U+879a,U+879e-87a0,U+87a2,U+87a3,U+87a8,U+87ab-87ad,U+87af,U+87b3,U+87b5,U+87bd,U+87c0,U+87c4,U+87c6,U+87ca,U+87cb,U+87d1,U+87d2,U+87db,U+87dc,U+87de,U+87e0,U+87e5,U+87ea,U+87ec,U+87ee,U+87f2,U+87f3,U+87fb,U+87fd,U+87fe,U+8802,U+8803,U+8805,U+880a,U+880b,U+880d,U+8813-8816,U+8819,U+881b,U+881f,U+8821,U+8823,U+8831,U+8832,U+8835,U+8836,U+8839,U+883b,U+883c,U+8844,U+8846,U+884a,U+884e,U+8852,U+8853,U+8855,U+8859,U+885b,U+885d,U+885e,U+8862,U+8864; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.21.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+8532,U+8534,U+8535,U+8538-853a,U+853c,U+8543,U+8545,U+8548,U+854e,U+8553,U+8556,U+8557,U+8559,U+855e,U+8561,U+8564,U+8565,U+8568-856a,U+856d,U+856f,U+8570,U+8572,U+8576,U+8579-857b,U+8580,U+8585,U+8586,U+8588,U+858a,U+858f,U+8591,U+8594,U+8599,U+859c,U+85a2,U+85a4,U+85a6,U+85a8,U+85a9,U+85ab,U+85ac,U+85ae,U+85b7-85b9,U+85be,U+85c1,U+85c7,U+85cd,U+85d0,U+85d3,U+85d5,U+85dc,U+85dd,U+85df,U+85e0,U+85e5,U+85e6,U+85e8-85ea,U+85f4,U+85f9,U+85fe,U+85ff,U+8602,U+8605-8607,U+860a,U+860b,U+8616,U+8618,U+861a,U+8627,U+8629,U+862d,U+8638,U+863c,U+863f,U+864d,U+864f,U+8652-8655,U+865b,U+865c,U+865f,U+8662,U+8667,U+866c,U+866e,U+8671,U+8675,U+867a-867c,U+867f,U+868b,U+868d,U+8693,U+869c,U+869d,U+86a1,U+86a3,U+86a4,U+86a7-86a9,U+86ac,U+86af-86b1,U+86b4-86b6,U+86ba,U+86c0,U+86c4,U+86c6,U+86c9,U+86ca,U+86cd-86d1,U+86d4,U+86d8,U+86de,U+86df; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.22.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+83b4,U+83b6,U+83b8,U+83ba,U+83bc,U+83bd,U+83bf,U+83c0,U+83c2,U+83c5,U+83c8,U+83c9,U+83cb,U+83d1,U+83d3-83d6,U+83d8,U+83db,U+83dd,U+83df,U+83e1,U+83e5,U+83ea,U+83eb,U+83f0,U+83f4,U+83f8,U+83f9,U+83fb,U+83fd,U+83ff,U+8401,U+8406,U+840a,U+840b,U+840f,U+8411,U+8418,U+841c,U+8420,U+8422-8424,U+8426,U+8429,U+842c,U+8438,U+8439,U+843b,U+843c,U+843f,U+8446,U+8447,U+8449,U+844e,U+8451,U+8452,U+8456,U+8459,U+845a,U+845c,U+8462,U+8466,U+846d,U+846f,U+8470,U+8473,U+8476-8478,U+847a,U+847d,U+8484,U+8485,U+8487,U+8489,U+848c,U+848e,U+8490,U+8493,U+8494,U+8497,U+849b,U+849e,U+849f,U+84a1,U+84a5,U+84a8,U+84af,U+84b4,U+84b9-84bf,U+84c1,U+84c2,U+84c5-84c7,U+84ca,U+84cb,U+84cd,U+84d0,U+84d1,U+84d3,U+84d6,U+84df,U+84e0,U+84e2,U+84e3,U+84e5-84e7,U+84ee,U+84f3,U+84f6,U+84fa,U+84fc,U+84ff,U+8500,U+850c,U+8511,U+8514,U+8515,U+8517,U+8518,U+851f,U+8523,U+8525,U+8526,U+8529,U+852b,U+852d; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.23.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+82a9-82ab,U+82ae,U+82b0,U+82b2,U+82b4-82b6,U+82bc,U+82be,U+82c0-82c2,U+82c4-82c8,U+82ca-82cc,U+82ce,U+82d0,U+82d2,U+82d3,U+82d5,U+82d6,U+82d8,U+82d9,U+82dc-82de,U+82e0-82e4,U+82e7,U+82e9-82eb,U+82ed,U+82ee,U+82f3,U+82f4,U+82f7,U+82f8,U+82fa-8301,U+8306-8308,U+830c,U+830d,U+830f,U+8311,U+8313-8315,U+8318,U+831a,U+831b,U+831d,U+8324,U+8327,U+832a,U+832c,U+832d,U+832f,U+8331-8334,U+833a-833c,U+8340,U+8343-8345,U+8347,U+8348,U+834a,U+834c,U+834f,U+8351,U+8356,U+8358-835c,U+835e,U+8360,U+8364-8366,U+8368-836a,U+836c-836e,U+8373,U+8378,U+837b-837d,U+837f,U+8380,U+8382,U+8388,U+838a,U+838b,U+8392,U+8394,U+8396,U+8398,U+8399,U+839b,U+839c,U+83a0,U+83a2,U+83a3,U+83a8-83aa,U+83ae-83b0,U+83b3; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.24.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+814d,U+814e,U+8151,U+8153,U+8158-815a,U+815e,U+8160,U+8166-8169,U+816b,U+816d,U+8171,U+8173,U+8174,U+8178,U+817c,U+817d,U+8182,U+8188,U+8191,U+8198-819b,U+81a0,U+81a3,U+81a5,U+81a6,U+81a9,U+81b6,U+81ba,U+81bb,U+81bd,U+81bf,U+81c1,U+81c3,U+81c6,U+81c9,U+81ca,U+81cc,U+81cd,U+81d1,U+81d3,U+81d4,U+81d8,U+81db,U+81dc,U+81de,U+81df,U+81e5,U+81e7-81e9,U+81eb,U+81ec,U+81ee,U+81ef,U+81f5,U+81f8,U+81fa,U+81fc,U+81fe,U+8200-8202,U+8204,U+8208-820a,U+820e-8210,U+8216-8218,U+821b,U+821c,U+8221-8224,U+8226-8228,U+822b,U+822d,U+822f,U+8232-8234,U+8237,U+8238,U+823a,U+823b,U+823e,U+8244,U+8249,U+824b,U+824f,U+8259,U+825a,U+825f,U+8266,U+8268,U+826e,U+8271,U+8276-8279,U+827d,U+827f,U+8283,U+8284,U+8288-828a,U+828d-8291,U+8293,U+8294,U+8296-8298,U+829f-82a1,U+82a3,U+82a4,U+82a7,U+82a8; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.25.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+7ffa,U+7ffe,U+8004,U+8006,U+800b,U+800e,U+8011,U+8012,U+8014,U+8016,U+8018,U+8019,U+801c,U+801e,U+8026-802a,U+8031,U+8034,U+8035,U+8037,U+8043,U+804b,U+804d,U+8052,U+8056,U+8059,U+805e,U+8061,U+8068,U+8069,U+806e-8074,U+8076-8078,U+807c-8080,U+8082,U+8084,U+8085,U+8088,U+808f,U+8093,U+809c,U+809f,U+80ab,U+80ad,U+80ae,U+80b1,U+80b6-80b8,U+80bc,U+80bd,U+80c2,U+80c4,U+80ca,U+80cd,U+80d1,U+80d4,U+80d7,U+80d9-80db,U+80dd,U+80e0,U+80e4,U+80e5,U+80e7-80ed,U+80ef-80f1,U+80f3,U+80f4,U+80fc,U+8101,U+8104,U+8105,U+8107,U+8108,U+810c-810e,U+8112-8115,U+8117-8119,U+811b-811f,U+8121-8130,U+8132-8134,U+8137,U+8139,U+813f,U+8140,U+8142,U+8146,U+8148; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.26.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+7ed7,U+7edb,U+7ee0-7ee2,U+7ee5,U+7ee6,U+7ee8,U+7eeb,U+7ef0-7ef2,U+7ef6,U+7efa,U+7efb,U+7efe,U+7f01-7f04,U+7f08,U+7f0a-7f12,U+7f17,U+7f19,U+7f1b,U+7f1c,U+7f1f,U+7f21-7f23,U+7f25-7f28,U+7f2a-7f33,U+7f35-7f37,U+7f3d,U+7f42,U+7f44,U+7f45,U+7f4c,U+7f4d,U+7f52,U+7f54,U+7f58,U+7f59,U+7f5d,U+7f5f-7f61,U+7f63,U+7f65,U+7f68,U+7f70,U+7f71,U+7f73-7f75,U+7f77,U+7f79,U+7f7d,U+7f7e,U+7f85,U+7f86,U+7f88,U+7f89,U+7f8b,U+7f8c,U+7f90,U+7f91,U+7f94-7f96,U+7f98-7f9b,U+7f9d,U+7f9f,U+7fa3,U+7fa7-7fa9,U+7fac-7fb2,U+7fb4,U+7fb6,U+7fb8,U+7fbc,U+7fbf,U+7fc0,U+7fc3,U+7fca,U+7fcc,U+7fce,U+7fd2,U+7fd5,U+7fd9-7fdb,U+7fdf,U+7fe3,U+7fe5-7fe7,U+7fe9,U+7feb,U+7fec,U+7fee,U+7fef,U+7ff1,U+7ff3,U+7ff4,U+7ff9; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.27.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+7dc4,U+7dc7,U+7dc8,U+7dca-7dcd,U+7dcf,U+7dd1,U+7dd2,U+7dd4,U+7dd6-7dd8,U+7dda-7de0,U+7de2-7de6,U+7de8-7ded,U+7def,U+7df1-7df5,U+7df7,U+7df9,U+7dfb,U+7dfc,U+7dfe-7e02,U+7e04,U+7e08-7e0b,U+7e12,U+7e1b,U+7e1e,U+7e20,U+7e22,U+7e23,U+7e26,U+7e29,U+7e2b,U+7e2e,U+7e2f,U+7e31,U+7e37,U+7e39-7e3e,U+7e40,U+7e43,U+7e44,U+7e46,U+7e47,U+7e4a,U+7e4b,U+7e4d,U+7e4e,U+7e51,U+7e54-7e56,U+7e58-7e5b,U+7e5d,U+7e5e,U+7e61,U+7e66,U+7e67,U+7e69-7e6b,U+7e6d,U+7e70,U+7e73,U+7e77,U+7e79,U+7e7b-7e7d,U+7e81,U+7e82,U+7e8c,U+7e8d,U+7e8f,U+7e92-7e94,U+7e96,U+7e98,U+7e9a-7e9c,U+7e9e,U+7e9f,U+7ea1,U+7ea3,U+7ea5,U+7ea8,U+7ea9,U+7eab,U+7ead,U+7eae,U+7eb0,U+7ebb,U+7ebe,U+7ec0-7ec2,U+7ec9,U+7ecb,U+7ecc,U+7ed0,U+7ed4; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.28.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+7ccc,U+7ccd,U+7cd7,U+7cdc,U+7cde,U+7ce0,U+7ce4,U+7ce5,U+7ce7,U+7ce8,U+7cec,U+7cf0,U+7cf5-7cf9,U+7cfc,U+7cfe,U+7d00,U+7d04-7d0b,U+7d0d,U+7d10-7d14,U+7d17-7d19,U+7d1b-7d1f,U+7d21,U+7d24-7d26,U+7d28-7d2a,U+7d2c-7d2e,U+7d30,U+7d31,U+7d33,U+7d35,U+7d36,U+7d38-7d3a,U+7d40,U+7d42-7d44,U+7d46,U+7d4b,U+7d4c,U+7d4f,U+7d51,U+7d54-7d56,U+7d58,U+7d5b,U+7d5c,U+7d5e,U+7d61-7d63,U+7d66,U+7d68,U+7d6a-7d6c,U+7d6f,U+7d71-7d73,U+7d75-7d77,U+7d79,U+7d7a,U+7d7e,U+7d81,U+7d84-7d8b,U+7d8d,U+7d8f,U+7d91,U+7d94,U+7d96,U+7d98-7d9a,U+7d9c-7da0,U+7da2,U+7da6,U+7daa-7db1,U+7db4-7db8,U+7dba-7dbf,U+7dc1; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.29.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+7bc3,U+7bc4,U+7bc6,U+7bc8-7bcc,U+7bd1,U+7bd3,U+7bd4,U+7bd9,U+7bda,U+7bdd,U+7be0,U+7be1,U+7be4-7be6,U+7be9,U+7bea,U+7bef,U+7bf4,U+7bf6,U+7bfc,U+7bfe,U+7c01,U+7c03,U+7c07,U+7c08,U+7c0a-7c0d,U+7c0f,U+7c11,U+7c15,U+7c16,U+7c19,U+7c1e-7c21,U+7c23,U+7c24,U+7c26,U+7c28-7c33,U+7c35,U+7c37-7c3b,U+7c3d,U+7c3e,U+7c40,U+7c41,U+7c43,U+7c47,U+7c48,U+7c4c,U+7c50,U+7c53,U+7c54,U+7c59,U+7c5f,U+7c60,U+7c63-7c65,U+7c6c,U+7c6e,U+7c72,U+7c74,U+7c79,U+7c7a,U+7c7c,U+7c81,U+7c82,U+7c84,U+7c85,U+7c88,U+7c8a-7c91,U+7c93-7c96,U+7c99,U+7c9b-7c9e,U+7ca0-7ca2,U+7ca6-7ca9,U+7cac,U+7caf-7cb3,U+7cb5-7cb7,U+7cba-7cbd,U+7cbf-7cc2,U+7cc5,U+7cc7-7cc9; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.30.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+7aca,U+7ad1,U+7ad2,U+7ada-7add,U+7ae1,U+7ae4,U+7ae6,U+7af4-7af7,U+7afa,U+7afb,U+7afd-7b0a,U+7b0c,U+7b0e,U+7b0f,U+7b13,U+7b15,U+7b16,U+7b18,U+7b19,U+7b1e-7b20,U+7b22-7b25,U+7b29-7b2b,U+7b2d,U+7b2e,U+7b30-7b3b,U+7b3e,U+7b3f,U+7b41,U+7b42,U+7b44-7b47,U+7b4a,U+7b4c-7b50,U+7b58,U+7b5a,U+7b5c,U+7b60,U+7b66,U+7b67,U+7b69,U+7b6c-7b6f,U+7b72-7b76,U+7b7b-7b7d,U+7b7f,U+7b82,U+7b85,U+7b87,U+7b8b-7b96,U+7b98,U+7b99,U+7b9b-7b9f,U+7ba2-7ba4,U+7ba6-7bac,U+7bae-7bb0,U+7bb4,U+7bb7-7bb9,U+7bbb,U+7bc0,U+7bc1; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.31.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+797c,U+797e-7980,U+7982,U+7986,U+7987,U+7989-798e,U+7992,U+7994,U+7995,U+7997,U+7998,U+799a-799c,U+799f,U+79a3-79a6,U+79a8-79ac,U+79ae-79b1,U+79b3-79b5,U+79b8,U+79ba,U+79bf,U+79c2,U+79c6,U+79c8,U+79cf,U+79d5,U+79d6,U+79dd,U+79de,U+79e3,U+79e7,U+79e8,U+79eb,U+79ed,U+79f4,U+79f7,U+79f8,U+79fa,U+79fe,U+7a02,U+7a03,U+7a05,U+7a0a,U+7a14,U+7a17,U+7a19,U+7a1c,U+7a1e,U+7a1f,U+7a23,U+7a25,U+7a26,U+7a2c,U+7a2e,U+7a30-7a32,U+7a36,U+7a37,U+7a39,U+7a3c,U+7a40,U+7a42,U+7a47,U+7a49,U+7a4c-7a4f,U+7a51,U+7a55,U+7a5b,U+7a5d,U+7a5e,U+7a62,U+7a63,U+7a66,U+7a68,U+7a69,U+7a6b,U+7a70,U+7a78,U+7a80,U+7a85-7a88,U+7a8a,U+7a90,U+7a93-7a96,U+7a98,U+7a9b,U+7a9c,U+7a9e,U+7aa0,U+7aa1,U+7aa3,U+7aa8-7aaa,U+7aac-7ab0,U+7ab3,U+7ab8,U+7aba,U+7abd-7abf,U+7ac4,U+7ac5,U+7ac7,U+7ac8; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.32.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+783e,U+7841-7844,U+7847-7849,U+784b,U+784c,U+784e-7854,U+7856,U+7857,U+7859,U+785a,U+7865,U+7869,U+786a,U+786d,U+786f,U+7876,U+7877,U+787c,U+787e,U+787f,U+7881,U+7887-7889,U+7893,U+7894,U+7898-789e,U+78a1,U+78a3,U+78a5,U+78a9,U+78ad,U+78b2,U+78b4,U+78b6,U+78b9,U+78ba,U+78bc,U+78bf,U+78c3,U+78c9,U+78cb,U+78d0-78d2,U+78d4,U+78d9,U+78da,U+78dc,U+78de,U+78e1,U+78e5,U+78e6,U+78ea,U+78ec,U+78ef,U+78f1,U+78f2,U+78f4,U+78fa,U+78fb,U+78fe,U+7901,U+7902,U+7905,U+7907,U+7909,U+790b,U+790c,U+790e,U+7910,U+7913,U+7919-791b,U+791e,U+791f,U+7921,U+7924,U+7926,U+792a,U+792b,U+7934,U+7936,U+7939,U+793b,U+793d,U+7940,U+7942,U+7943,U+7945-7947,U+7949,U+794a,U+794c,U+794e-7951,U+7953-7955,U+7957-795a,U+795c,U+795f,U+7960,U+7962,U+7964,U+7966,U+7967,U+7969,U+796b,U+796f,U+7972,U+7974,U+7979,U+797b; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.33.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+770f,U+7712,U+7714,U+7716,U+7719-771b,U+771e,U+7721,U+7722,U+7726,U+7728,U+772b-7730,U+7732-7736,U+7739,U+773a,U+773d-773f,U+7743,U+7746,U+7747,U+774c-774f,U+7751,U+7752,U+7758-775a,U+775c-775e,U+7762,U+7765,U+7766,U+7768-776a,U+776c,U+776d,U+7771,U+7772,U+777a,U+777c-777e,U+7780,U+7785,U+7787,U+778b-778d,U+778f-7791,U+7793,U+779e-77a0,U+77a2,U+77a5,U+77ad,U+77af,U+77b4-77b7,U+77bd-77c0,U+77c2,U+77c5,U+77c7,U+77cd,U+77d6,U+77d7,U+77d9,U+77da,U+77dd,U+77de,U+77e7,U+77ea,U+77ec,U+77ef,U+77f8,U+77fb,U+77fd,U+77fe,U+7800,U+7803,U+7806,U+7809,U+780f-7812,U+7815,U+7817,U+7818,U+781a-781f,U+7821-7823,U+7825-7827,U+7829,U+782b-7830,U+7832,U+7833,U+7835,U+7837,U+7839-783c; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.34.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+760a-760e,U+7610-7619,U+761b-761d,U+761f-7622,U+7625,U+7627-762a,U+762e-7630,U+7632-7635,U+7638-763a,U+763c,U+763d,U+763f,U+7640,U+7642,U+7643,U+7647,U+7648,U+764d,U+764e,U+7652,U+7654,U+7658,U+765a,U+765c,U+765e,U+765f,U+7661-7663,U+7665,U+7669,U+766c,U+766e,U+766f,U+7671-7673,U+7675,U+7676,U+7678-767a,U+767f,U+7681,U+7683,U+7688,U+768a-768c,U+768e,U+7690-7692,U+7695,U+7698,U+769a,U+769b,U+769d-76a0,U+76a2,U+76a4-76a7,U+76ab,U+76ac,U+76af,U+76b0,U+76b2,U+76b4,U+76b5,U+76ba,U+76bb,U+76bf,U+76c2,U+76c3,U+76c5,U+76c9,U+76cc-76ce,U+76dc-76de,U+76e1-76ea,U+76f1,U+76f9-76fb,U+76fd,U+76ff,U+7700,U+7703,U+7704,U+7707,U+7708,U+770c-770e; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.35.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+74ef,U+74f4,U+74ff,U+7501,U+7503,U+7505,U+7508,U+750d,U+750f,U+7511,U+7513,U+7515,U+7517,U+7519,U+7521-7527,U+752a,U+752c,U+752d,U+752f,U+7534,U+7536,U+753a,U+753e,U+7540,U+7544,U+7547-754b,U+754d,U+754e,U+7550-7553,U+7556,U+7557,U+755a,U+755b,U+755d,U+755e,U+7560,U+7562,U+7564,U+7566-7568,U+756b,U+756c,U+756f-7573,U+7575,U+7579-757c,U+757e,U+757f,U+7581-7584,U+7587,U+7589-758e,U+7590,U+7592,U+7594,U+7596,U+7599,U+759a,U+759d,U+759f,U+75a0,U+75a3,U+75a5,U+75a8,U+75ac,U+75ad,U+75b0,U+75b1,U+75b3-75b5,U+75b8,U+75bd,U+75c1-75c4,U+75c8-75ca,U+75cc,U+75cd,U+75d4,U+75d6,U+75d9,U+75de,U+75e0,U+75e2-75e4,U+75e6-75ea,U+75f1-75f3,U+75f7,U+75f9,U+75fa,U+75fc,U+75fe-7601,U+7603,U+7605,U+7606,U+7608,U+7609; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.36.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+73e7-73ea,U+73ee-73f0,U+73f2,U+73f4,U+73f5,U+73f7,U+73f9,U+73fa,U+73fc,U+73fd,U+73ff-7402,U+7404,U+7407,U+7408,U+740a-740f,U+7418,U+741a-741c,U+741e,U+7424,U+7425,U+7428,U+7429,U+742c-7430,U+7432,U+7435,U+7436,U+7438-743b,U+743e-7441,U+7443-7446,U+7448,U+744a,U+744b,U+7452,U+7457,U+745b,U+745d,U+7460,U+7462-7465,U+7467-746a,U+746d,U+746f,U+7471,U+7473,U+7474,U+7477,U+747a,U+747e,U+7481,U+7482,U+7484,U+7486,U+7488-748b,U+748e,U+748f,U+7493,U+7498,U+749a,U+749c-74a0,U+74a3,U+74a6,U+74a9,U+74aa,U+74ae,U+74b0-74b2,U+74b6,U+74b8-74ba,U+74bd,U+74bf,U+74c1,U+74c3,U+74c5,U+74c8,U+74ca,U+74cc,U+74cf,U+74d1,U+74d2,U+74d4,U+74d5,U+74d8-74db,U+74de-74e0,U+74e2,U+74e4,U+74e5,U+74e7-74e9,U+74ee; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.37.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+72dd-72df,U+72e1,U+72e5,U+72e6,U+72e8,U+72ef,U+72f0,U+72f2-72f4,U+72f6,U+72f7,U+72f9-72fb,U+72fd,U+7300-7304,U+7307,U+730a-730c,U+7313-7317,U+731d-7322,U+7327,U+7329,U+732c,U+732d,U+7330,U+7331,U+7333,U+7335-7337,U+7339,U+733d,U+733e,U+7340,U+7342,U+7344,U+7345,U+734a,U+734d-7350,U+7352,U+7355,U+7357,U+7359,U+735f,U+7360,U+7362,U+7363,U+7365,U+7368,U+736c,U+736d,U+736f,U+7370,U+7372,U+7374-7376,U+7378,U+737a,U+737b,U+737d,U+737e,U+7382,U+7383,U+7386,U+7388,U+738a,U+738c-7393,U+7395,U+7397-739a,U+739c,U+739e,U+73a0-73a3,U+73a5-73a8,U+73aa,U+73ad,U+73b1,U+73b3,U+73b6,U+73b7,U+73b9,U+73c2,U+73c5-73c9,U+73cc,U+73ce-73d0,U+73d2,U+73d6,U+73d9,U+73db-73de,U+73e3,U+73e5,U+73e6; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.38.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+719c,U+71a0,U+71a4,U+71a5,U+71a8,U+71af,U+71b1-71bc,U+71be,U+71c1,U+71c2,U+71c4,U+71c8-71cb,U+71ce-71d0,U+71d2,U+71d4,U+71d9,U+71da,U+71dc,U+71df,U+71e0,U+71e6-71e8,U+71ea,U+71ed,U+71ee,U+71f4,U+71f6,U+71f9,U+71fb,U+71fc,U+71ff,U+7200,U+7207,U+720c,U+720d,U+7210,U+7216,U+721a-721e,U+7223,U+7228,U+722b,U+722d,U+722e,U+7230,U+7232,U+723a-723c,U+723e-7242,U+7246,U+724b,U+724d,U+724e,U+7252,U+7256,U+7258,U+725a,U+725c,U+725d,U+7260,U+7264-7266,U+726a,U+726c,U+726e,U+726f,U+7271,U+7273,U+7274,U+7278,U+727b,U+727d,U+727e,U+7281,U+7282,U+7284,U+7287,U+728a,U+728d,U+728f,U+7292,U+729b,U+729f,U+72a0,U+72a7,U+72ad,U+72ae,U+72b0-72b5,U+72b7,U+72b8,U+72ba-72be,U+72c0,U+72c1,U+72c3,U+72c5,U+72c6,U+72c8,U+72cc-72ce,U+72d2,U+72d6,U+72db; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.39.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+7005,U+7006,U+7009,U+700b,U+700d,U+7015,U+7018,U+701b,U+701d-701f,U+7023,U+7026-7028,U+702c,U+702e-7030,U+7035,U+7037,U+7039,U+703a,U+703c-703e,U+7044,U+7049-704b,U+704f,U+7051,U+7058,U+705a,U+705c-705e,U+7061,U+7064,U+7066,U+706c,U+707d,U+7080,U+7081,U+7085,U+7086,U+708a,U+708f,U+7091,U+7094,U+7095,U+7098,U+7099,U+709c,U+709d,U+709f,U+70a4,U+70a9,U+70aa,U+70af-70b2,U+70b4-70b7,U+70bb,U+70c0,U+70c3,U+70c7,U+70cb,U+70ce,U+70cf,U+70d4,U+70d9,U+70da,U+70dc,U+70dd,U+70e0,U+70e9,U+70ec,U+70f7,U+70fa,U+70fd,U+70ff,U+7104,U+7108,U+7109,U+710c,U+7110,U+7113,U+7114,U+7116-7118,U+711c,U+711e,U+7120,U+712e,U+712f,U+7131,U+713c,U+7142,U+7144-7147,U+7149-714b,U+7150,U+7152,U+7155,U+7156,U+7159,U+715a,U+715c,U+7161,U+7165,U+7166,U+7168,U+7169,U+716d,U+7173,U+7174,U+7176,U+7178,U+717a,U+717d,U+717f,U+7180,U+7184,U+7186-7188,U+7192,U+7198; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.40.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+6ed8,U+6ed9,U+6edb,U+6edd,U+6edf,U+6ee0,U+6ee2,U+6ee6,U+6eea,U+6eec,U+6eee,U+6eef,U+6ef2,U+6ef3,U+6ef7-6efa,U+6efe,U+6f01,U+6f03,U+6f08,U+6f09,U+6f15,U+6f16,U+6f19,U+6f22-6f25,U+6f28-6f2a,U+6f2c,U+6f2d,U+6f2f,U+6f31,U+6f32,U+6f36-6f38,U+6f3f,U+6f43-6f46,U+6f48,U+6f4b,U+6f4e,U+6f4f,U+6f51,U+6f54-6f57,U+6f59-6f5b,U+6f5e,U+6f5f,U+6f61,U+6f64-6f67,U+6f69-6f6c,U+6f6f-6f72,U+6f74-6f76,U+6f78-6f7e,U+6f80-6f83,U+6f86,U+6f89,U+6f8b-6f8d,U+6f90,U+6f92,U+6f94,U+6f97,U+6f98,U+6f9b,U+6fa3-6fa5,U+6fa7,U+6faa,U+6faf,U+6fb1,U+6fb4,U+6fb6,U+6fb9,U+6fc1-6fcb,U+6fd1-6fd3,U+6fd5,U+6fdb,U+6fde-6fe1,U+6fe4,U+6fe9,U+6feb,U+6fec,U+6fee-6ff1,U+6ffa,U+6ffe; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.41.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+6dc3,U+6dc5,U+6dc6,U+6dc9,U+6dcc,U+6dcf,U+6dd2,U+6dd3,U+6dd6,U+6dd9-6dde,U+6de0,U+6de4,U+6de6,U+6de8-6dea,U+6dec,U+6def,U+6df0,U+6df5,U+6df6,U+6df8,U+6dfa,U+6dfc,U+6e03,U+6e04,U+6e07-6e09,U+6e0b,U+6e0c,U+6e0e,U+6e11,U+6e13,U+6e15,U+6e16,U+6e19-6e1b,U+6e1e,U+6e1f,U+6e22,U+6e25-6e27,U+6e2b,U+6e2c,U+6e36,U+6e37,U+6e39,U+6e3a,U+6e3c-6e41,U+6e44,U+6e45,U+6e47,U+6e49-6e4b,U+6e4d,U+6e4e,U+6e51,U+6e53-6e55,U+6e5c-6e5f,U+6e61-6e63,U+6e65-6e67,U+6e6a,U+6e6b,U+6e6d-6e70,U+6e72-6e74,U+6e76-6e78,U+6e7c,U+6e80-6e82,U+6e86,U+6e87,U+6e89,U+6e8d,U+6e8f,U+6e96,U+6e98,U+6e9d-6e9f,U+6ea1,U+6ea5-6ea7,U+6eab,U+6eb1,U+6eb2,U+6eb4,U+6eb7,U+6ebb-6ebd,U+6ebf-6ec6,U+6ec8,U+6ec9,U+6ecc,U+6ecf,U+6ed0,U+6ed3,U+6ed4,U+6ed7; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.42.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+6cb2,U+6cb4,U+6cb5,U+6cb7,U+6cba,U+6cbc,U+6cbd,U+6cc1-6cc3,U+6cc5-6cc7,U+6cd0-6cd4,U+6cd6,U+6cd7,U+6cd9,U+6cda,U+6cde-6ce0,U+6ce4,U+6ce6,U+6ce9,U+6ceb-6cef,U+6cf1,U+6cf2,U+6cf6,U+6cf7,U+6cfa,U+6cfe,U+6d03-6d05,U+6d07,U+6d08,U+6d0a,U+6d0c,U+6d0e-6d11,U+6d13,U+6d14,U+6d16,U+6d18-6d1a,U+6d1c,U+6d1f,U+6d22,U+6d23,U+6d26-6d29,U+6d2b,U+6d2e-6d30,U+6d33,U+6d35,U+6d36,U+6d38-6d3a,U+6d3c,U+6d3f,U+6d42-6d44,U+6d48,U+6d49,U+6d4d,U+6d50,U+6d52,U+6d54,U+6d56-6d58,U+6d5a-6d5c,U+6d5e,U+6d60,U+6d61,U+6d63-6d65,U+6d67,U+6d6c,U+6d6d,U+6d6f,U+6d75,U+6d7b-6d7d,U+6d87,U+6d8a,U+6d8e,U+6d90-6d9a,U+6d9c-6da0,U+6da2,U+6da3,U+6da7,U+6daa-6dac,U+6dae,U+6db3,U+6db4,U+6db6,U+6db8,U+6dbc,U+6dbf,U+6dc2; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.43.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+6b85,U+6b86,U+6b89,U+6b8d,U+6b91-6b93,U+6b95,U+6b97,U+6b98,U+6b9a,U+6b9b,U+6b9e,U+6ba1-6ba4,U+6ba9,U+6baa,U+6bad,U+6baf,U+6bb0,U+6bb2,U+6bb3,U+6bba-6bbd,U+6bc0,U+6bc2,U+6bc6,U+6bca-6bcc,U+6bce,U+6bd0,U+6bd1,U+6bd3,U+6bd6-6bd8,U+6bda,U+6be1,U+6be6,U+6bec,U+6bf1,U+6bf3-6bf5,U+6bf9,U+6bfd,U+6c05-6c08,U+6c0d,U+6c10,U+6c15-6c1a,U+6c21,U+6c23-6c26,U+6c29-6c2d,U+6c30-6c33,U+6c35-6c37,U+6c39,U+6c3a,U+6c3c-6c3f,U+6c46,U+6c4a-6c4c,U+6c4e-6c50,U+6c54,U+6c56,U+6c59-6c5c,U+6c5e,U+6c63,U+6c67-6c69,U+6c6b,U+6c6d,U+6c6f,U+6c72-6c74,U+6c78-6c7a,U+6c7c,U+6c84-6c87,U+6c8b,U+6c8c,U+6c8f,U+6c91,U+6c93-6c96,U+6c98,U+6c9a,U+6c9d,U+6ca2-6ca4,U+6ca8,U+6ca9,U+6cac-6cae,U+6cb1; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.44.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+6a01,U+6a06,U+6a09,U+6a0b,U+6a11,U+6a13,U+6a17-6a19,U+6a1b,U+6a1e,U+6a23,U+6a28,U+6a29,U+6a2b,U+6a2f,U+6a30,U+6a35,U+6a38-6a40,U+6a46-6a48,U+6a4a,U+6a4b,U+6a4e,U+6a50,U+6a52,U+6a5b,U+6a5e,U+6a62,U+6a65-6a67,U+6a6b,U+6a79,U+6a7c,U+6a7e,U+6a7f,U+6a84,U+6a86,U+6a8e,U+6a90,U+6a91,U+6a94,U+6a97,U+6a9c,U+6a9e,U+6aa0,U+6aa2,U+6aa4,U+6aa9,U+6aab,U+6aae-6ab0,U+6ab2,U+6ab3,U+6ab5,U+6ab7,U+6ab8,U+6aba,U+6abb,U+6abd,U+6abf,U+6ac2-6ac4,U+6ac6,U+6ac8,U+6acc,U+6ace,U+6ad2,U+6ad3,U+6ad8-6adc,U+6adf,U+6ae0,U+6ae4,U+6ae5,U+6ae7,U+6ae8,U+6afb,U+6b04,U+6b05,U+6b0d-6b13,U+6b16,U+6b17,U+6b19,U+6b24,U+6b25,U+6b2c,U+6b37-6b39,U+6b3b,U+6b3d,U+6b43,U+6b46,U+6b4e,U+6b50,U+6b53,U+6b54,U+6b58,U+6b59,U+6b5b,U+6b60,U+6b69,U+6b6d,U+6b6f,U+6b70,U+6b73,U+6b74,U+6b77-6b7a,U+6b80-6b84; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.45.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+68e1,U+68e3,U+68e4,U+68e6-68ed,U+68ef,U+68f0,U+68f2,U+68f4,U+68f6,U+68f7,U+68f9,U+68fb-68fd,U+68ff-6902,U+6906-6908,U+690b,U+6910,U+691a-691c,U+691f,U+6920,U+6924,U+6925,U+692a,U+692d,U+6934,U+6939,U+693c-6945,U+694a,U+694b,U+6952-6954,U+6957,U+6959,U+695b,U+695d,U+695f,U+6962-6964,U+6966,U+6968-696c,U+696e,U+696f,U+6971,U+6973,U+6974,U+6978,U+6979,U+697d,U+697f,U+6980,U+6985,U+6987-698a,U+698d,U+698e,U+6994-6999,U+699b,U+69a3,U+69a4,U+69a6,U+69a7,U+69ab,U+69ad,U+69ae,U+69b1,U+69b7,U+69bb,U+69bc,U+69c1,U+69c3-69c5,U+69c7,U+69ca-69ce,U+69d0,U+69d1,U+69d3,U+69d4,U+69d7-69da,U+69e0,U+69e4,U+69e6,U+69ec,U+69ed,U+69f1-69f3,U+69f8,U+69fa-69fc,U+69fe-6a00; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.46.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+6792,U+6793,U+6796,U+6798,U+679e-67a1,U+67a5,U+67a7-67a9,U+67ac,U+67ad,U+67b0,U+67b1,U+67b3,U+67b5,U+67b7,U+67b9,U+67bb,U+67bc,U+67c0,U+67c1,U+67c3,U+67c5-67ca,U+67d1,U+67d2,U+67d7-67d9,U+67dd-67df,U+67e2-67e4,U+67e6-67e9,U+67f0,U+67f5,U+67f7,U+67f8,U+67fa,U+67fb,U+67fd,U+67fe,U+6800,U+6801,U+6803,U+6804,U+6806,U+6809,U+680a,U+680c,U+680e,U+6812,U+681d-681f,U+6822,U+6824-6829,U+682b-682d,U+6831-6835,U+683b,U+683e,U+6840,U+6841,U+6844,U+6845,U+6849,U+684e,U+6853,U+6855,U+6856,U+685c,U+685d,U+685f-6862,U+6864,U+6866-6868,U+686b,U+686f,U+6872,U+6874,U+6877,U+687f,U+6883,U+6886,U+688f,U+689b,U+689f,U+68a0,U+68a2,U+68a3,U+68b1,U+68b6,U+68b9,U+68ba,U+68bc-68bf,U+68c1-68c4,U+68c6,U+68c8,U+68ca,U+68cc,U+68d0,U+68d1,U+68d3,U+68d7,U+68dd,U+68df; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.47.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+663a,U+663b,U+663d,U+6641,U+6644,U+6645,U+6649,U+664c,U+664f,U+6654,U+6659,U+665b,U+665d,U+665e,U+6660-6667,U+6669,U+666b,U+666c,U+6671,U+6673,U+6677-6679,U+667c,U+6680,U+6681,U+6684,U+6685,U+6688,U+6689,U+668b-668e,U+6690,U+6692,U+6695,U+6698,U+669a,U+669d,U+669f,U+66a0,U+66a2,U+66a3,U+66a6,U+66aa,U+66ab,U+66b1,U+66b2,U+66b5,U+66b8,U+66b9,U+66bb,U+66be,U+66c1,U+66c6-66c9,U+66cc,U+66d5-66d8,U+66da-66dc,U+66de-66e2,U+66e8-66ea,U+66ec,U+66f1,U+66f3,U+66f7,U+66fa,U+66fd,U+6702,U+6705,U+670a,U+670f,U+6710,U+6713,U+6715,U+6719,U+6722,U+6723,U+6725-6727,U+6729,U+672d,U+672e,U+6732,U+6733,U+6736,U+6739,U+673b,U+673f,U+6744,U+6748,U+674c,U+674d,U+6753,U+6755,U+6762,U+6767,U+6769-676c,U+676e,U+6772,U+6773,U+6775,U+6777,U+677a-677d,U+6782,U+6783,U+6787,U+678a-678d,U+678f; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.48.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+64f8,U+64fa,U+64fc,U+64fe,U+64ff,U+6503,U+6509,U+650f,U+6514,U+6518,U+651c-651e,U+6522-6525,U+652a-652c,U+652e,U+6530-6532,U+6534,U+6535,U+6537,U+6538,U+653a,U+653c,U+653d,U+6542,U+6549-654b,U+654d,U+654e,U+6553-6555,U+6557,U+6558,U+655d,U+6564,U+6569,U+656b,U+656d-656f,U+6571,U+6573,U+6575,U+6576,U+6578-657e,U+6581-6583,U+6585,U+6586,U+6589,U+658e,U+658f,U+6592,U+6593,U+6595,U+6596,U+659b,U+659d,U+659f-65a1,U+65a3,U+65ab,U+65ac,U+65b2,U+65b6,U+65b7,U+65ba,U+65bb,U+65be-65c0,U+65c2-65c4,U+65c6-65c8,U+65cc,U+65ce,U+65d0,U+65d2,U+65d3,U+65d6,U+65db,U+65dd,U+65e1,U+65e3,U+65ee-65f0,U+65f3-65f5,U+65f8,U+65fb,U+65fc,U+65fe-6600,U+6603,U+6607,U+6609,U+660b,U+6610,U+6611,U+6619,U+661a,U+661c-661e,U+6621,U+6624,U+6626,U+662a-662c,U+662e,U+6630,U+6631,U+6633,U+6634,U+6636; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.49.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+63bc,U+63be,U+63c0,U+63c3,U+63c4,U+63c6,U+63c8,U+63cd,U+63ce,U+63d1,U+63d6,U+63da,U+63db,U+63de,U+63e0,U+63e3,U+63e9,U+63ea,U+63ee,U+63f2,U+63f5-63fa,U+63fc,U+63fe-6400,U+6406,U+640b-640d,U+6410,U+6414,U+6416,U+6417,U+641b,U+6420-6423,U+6425-6428,U+642a,U+6431,U+6432,U+6434-6437,U+643d-6442,U+6445,U+6448,U+6450-6452,U+645b-645f,U+6462,U+6465,U+6468,U+646d,U+646f-6471,U+6473,U+6477,U+6479-647d,U+6482-6485,U+6487,U+6488,U+648c,U+6490,U+6493,U+6496-649a,U+649d,U+64a0,U+64a5,U+64ab,U+64ac,U+64b1-64b7,U+64b9-64bb,U+64be-64c1,U+64c4,U+64c7,U+64c9-64cb,U+64d0,U+64d4,U+64d7,U+64d8,U+64da,U+64de,U+64e0-64e2,U+64e4,U+64e9,U+64ec,U+64f0-64f2,U+64f4,U+64f7; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.50.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+623b,U+623d,U+623e,U+6243,U+6246,U+6248,U+6249,U+624c,U+6255,U+6259,U+625e,U+6260,U+6261,U+6265,U+6266,U+626a,U+6271,U+627a,U+627c,U+627d,U+6283,U+6286,U+6289,U+628e,U+6294,U+629c,U+629e,U+629f,U+62a1,U+62a8,U+62ba,U+62bb,U+62bf,U+62c2,U+62c4,U+62c8,U+62ca,U+62cb,U+62ce,U+62cf,U+62d1,U+62d7,U+62d9,U+62da,U+62dd,U+62e0,U+62e1,U+62e3,U+62e4,U+62e7,U+62eb,U+62ee,U+62f0,U+62f4-62f6,U+6308,U+630a-630e,U+6310,U+6312,U+6313,U+6317,U+6319,U+631b,U+631d-631f,U+6322,U+6326,U+6329,U+6331,U+6332,U+6334-6337,U+6339,U+633b,U+633c,U+633e-6340,U+6343,U+6347,U+634b-634e,U+6354,U+635c,U+635d,U+6368,U+6369,U+636d,U+636f-6372,U+6376,U+637a,U+637b,U+637d,U+6382,U+6383,U+6387,U+638a,U+638b,U+638d,U+638e,U+6391,U+6393-6397,U+6399,U+639b,U+639e,U+639f,U+63a1,U+63a3,U+63a4,U+63ac-63ae,U+63b1-63b5,U+63b7-63bb; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.51.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+60fa,U+6100,U+6106,U+610d,U+610e,U+6112,U+6114,U+6115,U+6119,U+611c,U+6120,U+6122,U+6123,U+6126,U+6128-6130,U+6136,U+6137,U+613a,U+613d,U+613e,U+6144,U+6146,U+6147,U+614a,U+614b,U+6151,U+6153,U+6158,U+615a,U+615c,U+615d,U+615f,U+6161,U+6163-6165,U+616b,U+616c,U+616e,U+6171,U+6173-6177,U+617e,U+6182,U+6187,U+618a,U+618d,U+618e,U+6190,U+6191,U+6194,U+6199,U+619a,U+619c,U+619f,U+61a1,U+61a3,U+61a4,U+61a7-61a9,U+61ab-61ad,U+61b2,U+61b3,U+61b5-61b7,U+61ba,U+61bb,U+61bf,U+61c3,U+61c4,U+61c6,U+61c7,U+61c9-61cb,U+61d0,U+61d1,U+61d3,U+61d4,U+61d7,U+61da,U+61df-61e1,U+61e6,U+61ee,U+61f0,U+61f2,U+61f6-61f8,U+61fa,U+61fc-61fe,U+6200,U+6206,U+6207,U+6209,U+620b,U+620d,U+620e,U+6213-6215,U+6217,U+6219,U+621b-6223,U+6225,U+6226,U+622c,U+622e-6230,U+6232,U+6238; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.52.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+5fd1-5fd6,U+5fda-5fde,U+5fe1,U+5fe2,U+5fe4,U+5fe5,U+5fea,U+5fed,U+5fee,U+5ff1-5ff3,U+5ff6,U+5ff8,U+5ffb,U+5ffe,U+5fff,U+6002-6006,U+600a,U+600d,U+600f,U+6014,U+6019,U+601b,U+6020,U+6023,U+6026,U+6029,U+602b,U+602e,U+602f,U+6031,U+6033,U+6035,U+6039,U+603f,U+6041-6043,U+6046,U+604f,U+6053,U+6054,U+6058-605b,U+605d,U+605e,U+6060,U+6063,U+6065,U+6067,U+606a-606c,U+6075,U+6078,U+6079,U+607b,U+607d,U+607f,U+6083,U+6085-6087,U+608a,U+608c,U+608e,U+608f,U+6092,U+6093,U+6095-6097,U+609b-609d,U+60a2,U+60a7,U+60a9-60ab,U+60ad,U+60af-60b1,U+60b3-60b6,U+60b8,U+60bb,U+60bd,U+60be,U+60c0-60c3,U+60c6-60c9,U+60cb,U+60ce,U+60d3,U+60d4,U+60d7-60db,U+60dd,U+60e1-60e4,U+60e6,U+60ea,U+60ec-60ee,U+60f0,U+60f1,U+60f4,U+60f6; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.53.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+5ea3-5ea5,U+5ea8,U+5eab,U+5eaf,U+5eb3,U+5eb5,U+5eb6,U+5eb9,U+5ebe,U+5ec1-5ec3,U+5ec6,U+5ec8,U+5ecb,U+5ecc,U+5ed1,U+5ed2,U+5ed4,U+5ed9-5edb,U+5edd,U+5edf,U+5ee0,U+5ee2,U+5ee3,U+5ee8,U+5eea,U+5eec,U+5eef,U+5ef0,U+5ef3,U+5ef4,U+5ef8,U+5efb,U+5efc,U+5efe,U+5eff,U+5f01,U+5f07,U+5f0b-5f0e,U+5f10-5f12,U+5f14,U+5f1a,U+5f22,U+5f28,U+5f29,U+5f2c,U+5f2d,U+5f35,U+5f36,U+5f38,U+5f3b-5f43,U+5f45-5f4a,U+5f4c-5f4e,U+5f50,U+5f54,U+5f56-5f59,U+5f5b-5f5f,U+5f61,U+5f63,U+5f65,U+5f67,U+5f68,U+5f6b,U+5f6e,U+5f6f,U+5f72-5f78,U+5f7a,U+5f7e,U+5f7f,U+5f82,U+5f83,U+5f87,U+5f89,U+5f8a,U+5f8d,U+5f91,U+5f93,U+5f95,U+5f98,U+5f99,U+5f9c,U+5f9e,U+5fa0,U+5fa6-5fa9,U+5fac,U+5fad,U+5faf,U+5fb3-5fb5,U+5fb9,U+5fbc,U+5fc4,U+5fc9,U+5fcb,U+5fce-5fd0; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.54.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+5d32-5d34,U+5d3c-5d3e,U+5d41-5d44,U+5d46-5d48,U+5d4a,U+5d4b,U+5d4e,U+5d50,U+5d52,U+5d55-5d58,U+5d5a-5d5d,U+5d68,U+5d69,U+5d6b,U+5d6c,U+5d6f,U+5d74,U+5d7f,U+5d82-5d89,U+5d8b,U+5d8c,U+5d8f,U+5d92,U+5d93,U+5d99,U+5d9d,U+5db2,U+5db6,U+5db7,U+5dba,U+5dbc,U+5dbd,U+5dc2,U+5dc3,U+5dc6,U+5dc7,U+5dc9,U+5dcc,U+5dd2,U+5dd4,U+5dd6-5dd8,U+5ddb,U+5ddc,U+5de3,U+5ded,U+5def,U+5df3,U+5df6,U+5dfa-5dfd,U+5dff,U+5e00,U+5e07,U+5e0f,U+5e11,U+5e13,U+5e14,U+5e19-5e1b,U+5e22,U+5e25,U+5e28,U+5e2a,U+5e2f-5e31,U+5e33,U+5e34,U+5e36,U+5e39-5e3c,U+5e3e,U+5e40,U+5e44,U+5e46-5e48,U+5e4c,U+5e4f,U+5e53,U+5e54,U+5e57,U+5e59,U+5e5b,U+5e5e,U+5e5f,U+5e61,U+5e63,U+5e6a,U+5e6b,U+5e75,U+5e77,U+5e79,U+5e7a,U+5e7e,U+5e80,U+5e81,U+5e83,U+5e85,U+5e87,U+5e8b,U+5e91,U+5e92,U+5e96,U+5e98,U+5e9b,U+5e9d,U+5ea0-5ea2; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.55.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+5bf5,U+5bf6,U+5bfe,U+5c02,U+5c03,U+5c05,U+5c07-5c09,U+5c0b,U+5c0c,U+5c0e,U+5c10,U+5c12,U+5c13,U+5c15,U+5c17,U+5c19,U+5c1b,U+5c1c,U+5c1e,U+5c1f,U+5c22,U+5c25,U+5c28,U+5c2a,U+5c2b,U+5c2f,U+5c30,U+5c37,U+5c3b,U+5c43,U+5c44,U+5c46,U+5c47,U+5c4d,U+5c50,U+5c59,U+5c5b,U+5c5c,U+5c62-5c64,U+5c66,U+5c6c,U+5c6e,U+5c74,U+5c78-5c7e,U+5c80,U+5c83,U+5c84,U+5c88,U+5c8b-5c8d,U+5c91,U+5c94-5c96,U+5c98,U+5c99,U+5c9c,U+5c9e,U+5ca1-5ca3,U+5cab,U+5cac,U+5cb1,U+5cb5,U+5cb7,U+5cba,U+5cbd-5cbf,U+5cc1,U+5cc3,U+5cc4,U+5cc7,U+5ccb,U+5cd2,U+5cd8,U+5cd9,U+5cdf,U+5ce0,U+5ce3-5ce6,U+5ce8-5cea,U+5ced,U+5cef,U+5cf3,U+5cf4,U+5cf6,U+5cf8,U+5cfd,U+5d00-5d04,U+5d06,U+5d08,U+5d0b-5d0d,U+5d0f-5d13,U+5d15,U+5d17-5d1a,U+5d1d-5d22,U+5d24-5d27,U+5d2e-5d31; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.56.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+5ab2,U+5ab4,U+5ab5,U+5ab7-5aba,U+5abd-5abf,U+5ac3,U+5ac4,U+5ac6-5ac8,U+5aca,U+5acb,U+5acd,U+5acf-5ad2,U+5ad4,U+5ad8-5ada,U+5adc,U+5adf-5ae2,U+5ae4,U+5ae6,U+5ae8,U+5aea-5aed,U+5af0-5af3,U+5af5,U+5af9-5afb,U+5afd,U+5b01,U+5b05,U+5b08,U+5b0b,U+5b0c,U+5b11,U+5b16,U+5b17,U+5b1b,U+5b21,U+5b22,U+5b24,U+5b27-5b2e,U+5b30,U+5b32,U+5b34,U+5b36-5b38,U+5b3e-5b40,U+5b43,U+5b45,U+5b4a,U+5b4b,U+5b51-5b53,U+5b56,U+5b5a,U+5b5b,U+5b62,U+5b65,U+5b67,U+5b6a-5b6e,U+5b70,U+5b71,U+5b73,U+5b7a,U+5b7b,U+5b7f,U+5b80,U+5b84,U+5b8d,U+5b91,U+5b93-5b95,U+5b9f,U+5ba5,U+5ba6,U+5bac,U+5bae,U+5bb8,U+5bc0,U+5bc3,U+5bcb,U+5bd0,U+5bd1,U+5bd4-5bd8,U+5bda-5bdc,U+5be2,U+5be4-5be7,U+5be9,U+5beb,U+5bec,U+5bee-5bf0,U+5bf2,U+5bf3; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.57.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+5981,U+598f,U+5997,U+5998,U+599a,U+599c,U+599d,U+59a0,U+59a1,U+59a3,U+59a4,U+59a7,U+59aa-59ad,U+59af,U+59b2,U+59b3,U+59b5,U+59b6,U+59b8,U+59ba,U+59bd,U+59be,U+59c0,U+59c1,U+59c3,U+59c4,U+59c7-59ca,U+59cc,U+59cd,U+59cf,U+59d2,U+59d5,U+59d6,U+59d8,U+59d9,U+59db,U+59dd-59e0,U+59e2-59e7,U+59e9-59eb,U+59ee,U+59f1,U+59f3,U+59f5,U+59f7-59f9,U+59fd,U+5a06,U+5a08-5a0a,U+5a0c,U+5a0d,U+5a11-5a13,U+5a15,U+5a16,U+5a1a,U+5a1b,U+5a21-5a23,U+5a2d-5a2f,U+5a32,U+5a38,U+5a3c,U+5a3e-5a45,U+5a47,U+5a4a,U+5a4c,U+5a4d,U+5a4f-5a51,U+5a53,U+5a55-5a57,U+5a5e,U+5a60,U+5a62,U+5a65-5a67,U+5a6a,U+5a6c,U+5a6d,U+5a72,U+5a73,U+5a75,U+5a76,U+5a79-5a7c,U+5a81-5a84,U+5a8c,U+5a8e,U+5a93,U+5a96,U+5a97,U+5a9c,U+5a9e,U+5aa0,U+5aa3,U+5aa4,U+5aaa,U+5aae,U+5aaf,U+5ab1; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.58.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+5831,U+583a,U+583d,U+583f-5842,U+5844-5846,U+5848,U+584a,U+584d,U+5852,U+5857,U+5859,U+585a,U+585c,U+585d,U+5862,U+5868,U+5869,U+586c,U+586d,U+586f-5873,U+5875,U+5879,U+587d,U+587e,U+5880,U+5881,U+5888-588a,U+588d,U+5892,U+5896-5898,U+589a,U+589c,U+589d,U+58a0,U+58a1,U+58a3,U+58a6,U+58a9,U+58ab-58ae,U+58b0,U+58b3,U+58bb-58bf,U+58c2,U+58c3,U+58c5-58c8,U+58ca,U+58cc,U+58ce,U+58d1-58d3,U+58d5,U+58d8,U+58d9,U+58de,U+58df,U+58e2,U+58e9,U+58ec,U+58ef,U+58f1,U+58f2,U+58f5,U+58f7,U+58f8,U+58fa,U+58fd,U+5900,U+5902,U+5906,U+5908-590c,U+590e,U+5910,U+5914,U+5919,U+591b,U+591d,U+591e,U+5920,U+5922-5925,U+5928,U+592c,U+592d,U+592f,U+5932,U+5936,U+593c,U+593e,U+5940-5942,U+5944,U+594c,U+594d,U+5950,U+5953,U+5958,U+595a,U+5961,U+5966-5968,U+596a,U+596c-596e,U+5977,U+597b,U+597c; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.59.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+570a,U+570c,U+570d,U+570f,U+5712,U+5713,U+5718,U+5719,U+571c,U+571e,U+5725,U+5727,U+5729,U+572a,U+572c,U+572e,U+572f,U+5734,U+5735,U+5739,U+573b,U+5741,U+5743,U+5745,U+5749,U+574c,U+574d,U+575c,U+5763,U+5768,U+5769,U+576b,U+576d,U+576e,U+5770,U+5773,U+5775,U+5777,U+577b,U+577c,U+5785,U+5786,U+5788,U+578c,U+578e,U+578f,U+5793-5795,U+5799-57a1,U+57a3,U+57a4,U+57a6-57aa,U+57ac,U+57ad,U+57af-57b2,U+57b4-57b6,U+57b8,U+57b9,U+57bd-57bf,U+57c2,U+57c4-57c8,U+57cc,U+57cd,U+57cf,U+57d2,U+57d5-57de,U+57e1,U+57e2,U+57e4,U+57e5,U+57e7,U+57eb,U+57ed,U+57ef,U+57f4-57f8,U+57fc,U+57fd,U+5800,U+5801,U+5803,U+5805,U+5807,U+5809,U+580b-580e,U+5811,U+5814,U+5819,U+581b-5820,U+5822,U+5823,U+5825,U+5826,U+582c,U+582f; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.60.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+5605,U+5606,U+5608,U+560c,U+560d,U+560f,U+5614,U+5616,U+5617,U+561a,U+561c,U+561e,U+5621-5625,U+5627,U+5629,U+562b-5630,U+5636,U+5638-563a,U+563c,U+5640-5642,U+5649,U+564c-5650,U+5653-5655,U+5657-565b,U+5660,U+5663,U+5664,U+5666,U+566b,U+566f-5671,U+5673-567c,U+567e,U+5684-5687,U+568c,U+568e-5693,U+5695,U+5697,U+569b,U+569c,U+569e,U+569f,U+56a1,U+56a2,U+56a4-56a9,U+56ac-56af,U+56b1,U+56b4,U+56b6-56b8,U+56bf,U+56c1-56c3,U+56c9,U+56cd,U+56d1,U+56d4,U+56d6-56d9,U+56dd,U+56df,U+56e1,U+56e3-56e6,U+56e8-56ec,U+56ee,U+56ef,U+56f1-56f3,U+56f5,U+56f7-56f9,U+56fc,U+56ff,U+5700,U+5703,U+5704,U+5709; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.61.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+5519,U+551b,U+551d,U+551e,U+5520,U+5522,U+5523,U+5526,U+5527,U+552a-552c,U+5530,U+5532-5535,U+5537,U+5538,U+553b-5541,U+5543,U+5544,U+5547-5549,U+554b,U+554d,U+5550,U+5553,U+5555-5558,U+555b-555f,U+5567-5569,U+556b-5572,U+5574-5577,U+557b,U+557c,U+557e,U+557f,U+5581,U+5583,U+5585,U+5586,U+5588,U+558b,U+558c,U+558e-5591,U+5593,U+5599,U+559a,U+559f,U+55a5,U+55a6,U+55a8-55ac,U+55ae,U+55b0-55b3,U+55b6,U+55b9,U+55ba,U+55bc-55be,U+55c4,U+55c6,U+55c7,U+55c9,U+55cc-55d2,U+55d4-55db,U+55dd-55df,U+55e1,U+55e3-55e6,U+55ea-55ee,U+55f0-55f3,U+55f5-55f7,U+55fb,U+55fe,U+5600,U+5601; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.62.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+53fb-5400,U+5402,U+5405-5407,U+540b,U+540f,U+5412,U+5414,U+5416,U+5418-541a,U+541d,U+5420-5423,U+5425,U+5429,U+542a,U+542d,U+542e,U+5431-5433,U+5436,U+543d,U+543f,U+5442,U+5443,U+5449,U+544b,U+544c,U+544e,U+5451-5454,U+5456,U+5459,U+545b,U+545c,U+5461,U+5463,U+5464,U+546a-5472,U+5474,U+5476-5478,U+547a,U+547e-5484,U+5486,U+548a,U+548d,U+548e,U+5490,U+5491,U+5494,U+5497-5499,U+549b,U+549d,U+54a1-54a7,U+54a9,U+54ab,U+54ad,U+54b4,U+54b5,U+54b9,U+54bb,U+54be,U+54bf,U+54c2,U+54c3,U+54c9-54cc,U+54cf,U+54d0,U+54d3,U+54d5,U+54d6,U+54d9,U+54da,U+54dc-54de,U+54e2,U+54e7,U+54f3,U+54f4,U+54f8,U+54f9,U+54fd-54ff,U+5501,U+5504-5506,U+550c-550f,U+5511-5514,U+5516,U+5517; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.63.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+52a2,U+52a6,U+52a7,U+52ac,U+52ad,U+52af,U+52b4,U+52b5,U+52b9,U+52bb,U+52bc,U+52be,U+52c1,U+52c5,U+52ca,U+52cd,U+52d0,U+52d6,U+52d7,U+52d9,U+52db,U+52dd,U+52de,U+52e0,U+52e2,U+52e3,U+52e5,U+52e7-52f0,U+52f2,U+52f3,U+52f5-52f9,U+52fb,U+52fc,U+5302,U+5304,U+530b,U+530d,U+530f,U+5310,U+5315,U+531a,U+531c,U+531d,U+5321,U+5323,U+5326,U+532e-5331,U+5338,U+533c-533e,U+5340,U+5344,U+5345,U+534b-534d,U+5350,U+5354,U+5358,U+535d-535f,U+5363,U+5368,U+5369,U+536c,U+536e,U+536f,U+5372,U+5379-537b,U+537d,U+538d,U+538e,U+5390,U+5393,U+5394,U+5396,U+539b-539d,U+53a0,U+53a1,U+53a3-53a5,U+53a9,U+53ad,U+53ae,U+53b0,U+53b2,U+53b3,U+53b5-53b8,U+53bc,U+53be,U+53c1,U+53c3-53c7,U+53ce,U+53cf,U+53d2,U+53d3,U+53d5,U+53da,U+53de,U+53df,U+53e1,U+53e2,U+53e7-53e9,U+53f1,U+53f4,U+53f5,U+53fa; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.64.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+5110,U+5113,U+5115,U+5117,U+5118,U+511a-511c,U+511e,U+511f,U+5121,U+5128,U+512b-512d,U+5131-5135,U+5137-5139,U+513c,U+5140,U+5142,U+5147,U+514c,U+514e-5150,U+5155-5158,U+5162,U+5169,U+5172,U+517f,U+5181-5184,U+5186,U+5187,U+518b,U+518f,U+5191,U+5195-5197,U+519a,U+51a2,U+51a3,U+51a6-51ab,U+51ad,U+51ae,U+51b1,U+51b4,U+51bc,U+51bd,U+51bf,U+51c3,U+51c7,U+51c8,U+51ca,U+51cb,U+51cd,U+51ce,U+51d4,U+51d6,U+51db,U+51dc,U+51e6,U+51e8-51eb,U+51f1,U+51f5,U+51fc,U+51ff,U+5202,U+5205,U+5208,U+520b,U+520d,U+520e,U+5215,U+5216,U+5228,U+522a,U+522c,U+522d,U+5233,U+523c,U+523d,U+523f,U+5240,U+5245,U+5247,U+5249,U+524b,U+524c,U+524e,U+5250,U+525b-525f,U+5261,U+5263,U+5264,U+5270,U+5273,U+5275,U+5277,U+527d,U+527f,U+5281-5285,U+5287,U+5289,U+528b,U+528d,U+528f,U+5291-5293,U+529a; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.65.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+4fe3,U+4fe4,U+4fe6,U+4fe8,U+4feb-4fed,U+4ff3,U+4ff5,U+4ff6,U+4ff8,U+4ffe,U+5001,U+5005,U+5006,U+5009,U+500c,U+500f,U+5013-5018,U+501b-501e,U+5022-5025,U+5027,U+5028,U+502b-502e,U+5030,U+5033,U+5034,U+5036-5039,U+503b,U+5041-5043,U+5045,U+5046,U+5048-504a,U+504c-504e,U+5051,U+5053,U+5055-5057,U+505b,U+505e,U+5060,U+5062,U+5063,U+5067,U+506a,U+506c,U+5070-5072,U+5074,U+5075,U+5078,U+507b,U+507d,U+507e,U+5080,U+5088,U+5089,U+5091,U+5092,U+5095,U+5097-509e,U+50a2,U+50a3,U+50a5-50a7,U+50a9,U+50ad,U+50b3,U+50b5,U+50b7,U+50ba,U+50be,U+50c4,U+50c5,U+50c7,U+50ca,U+50cd,U+50d1,U+50d5,U+50d6,U+50da,U+50de,U+50e5,U+50e6,U+50ec-50ee,U+50f0,U+50f1,U+50f3,U+50f9-50fb,U+50fe-5102,U+5104,U+5106,U+5107,U+5109-510b,U+510d,U+510f; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.66.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+4eb8,U+4eb9,U+4ebb-4ebe,U+4ec2-4ec4,U+4ec8,U+4ec9,U+4ecc,U+4ecf,U+4ed0,U+4ed2,U+4eda,U+4edb,U+4edd-4ee1,U+4ee6-4ee9,U+4eeb,U+4eee,U+4eef,U+4ef3-4ef5,U+4ef8-4efa,U+4efc,U+4f00,U+4f03-4f05,U+4f08,U+4f09,U+4f0b,U+4f0e,U+4f12,U+4f13,U+4f15,U+4f1b,U+4f1d,U+4f21,U+4f22,U+4f25,U+4f27-4f29,U+4f2b-4f2e,U+4f31-4f33,U+4f36,U+4f37,U+4f39,U+4f3e,U+4f40,U+4f41,U+4f43,U+4f47-4f49,U+4f54,U+4f57,U+4f58,U+4f5d,U+4f5e,U+4f61,U+4f62,U+4f64,U+4f65,U+4f67,U+4f6a,U+4f6e,U+4f6f,U+4f72,U+4f74-4f7e,U+4f80-4f82,U+4f84,U+4f89,U+4f8a,U+4f8e-4f98,U+4f9e,U+4fa1,U+4fa5,U+4fa9,U+4faa,U+4fac,U+4fb3,U+4fb6-4fb8,U+4fbd,U+4fc2,U+4fc5,U+4fc6,U+4fcd,U+4fce,U+4fd0,U+4fd1,U+4fd3,U+4fda-4fdc,U+4fdf,U+4fe0,U+4fe2; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.67.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+3127-3129,U+3220-3229,U+3231,U+32a3,U+338e,U+338f,U+339c-339e,U+33c4,U+33d1,U+33d2,U+33d5,U+3434,U+34dc,U+34ee,U+353e,U+355d,U+3566,U+3575,U+3592,U+35a0,U+35a1,U+35ad,U+35ce,U+36a2,U+36ab,U+38a8,U+3dab,U+3de7,U+3deb,U+3e1a,U+3f1b,U+3f6d,U+4495,U+4723,U+48fa,U+4ca3,U+4e02,U+4e04-4e06,U+4e0c,U+4e0f,U+4e15,U+4e17,U+4e1f-4e21,U+4e26,U+4e29,U+4e2c,U+4e2f,U+4e31,U+4e35,U+4e37,U+4e3c,U+4e3f-4e42,U+4e44,U+4e46,U+4e47,U+4e57,U+4e5a-4e5c,U+4e64,U+4e65,U+4e67,U+4e69,U+4e6d,U+4e78,U+4e7f-4e82,U+4e85,U+4e87,U+4e8a,U+4e8d,U+4e93,U+4e96,U+4e98,U+4e99,U+4e9c,U+4e9e-4ea0,U+4ea2,U+4ea3,U+4ea5,U+4eb0,U+4eb1,U+4eb3-4eb6; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.68.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+27e8,U+27e9,U+2ebb,U+3003,U+3005-3007,U+3012,U+3013,U+301d,U+301e,U+3021,U+3023,U+3024,U+3041,U+3043,U+3045,U+3047,U+3049,U+3056,U+3058,U+305c,U+305e,U+3062,U+306c,U+3074,U+3077,U+307a,U+307c,U+307d,U+3080,U+308e,U+3090,U+3091,U+309b,U+309d,U+309e,U+30a5,U+30bc,U+30be,U+30c2,U+30c5,U+30cc,U+30d8,U+30e2,U+30e8,U+30ee,U+30f0-30f2,U+30f4-30f6,U+30fd,U+30fe,U+3105-3126; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.69.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+254b,U+2550,U+2551,U+2554,U+2557,U+255a,U+255b,U+255d,U+255f,U+2560,U+2562,U+2563,U+2565-2567,U+2569,U+256a,U+256c-2572,U+2581-258f,U+2593-2595,U+25a1,U+25b3,U+25bd,U+25ca,U+25cb,U+25e2-25e5,U+2609,U+2640,U+2642; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.70.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+2465-2469,U+2474-249b,U+2500-2509,U+250b-2526,U+2528-2534,U+2536,U+2537,U+253b-2548,U+254a; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.71.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+207f-2083,U+20a6,U+20a8-20ac,U+20b1,U+20b9,U+20ba,U+20bd,U+2105,U+2109,U+2113,U+2116,U+2121,U+2126,U+2196-2199,U+2202,U+2206,U+2208,U+220f,U+2211,U+2212,U+2215,U+221d-2220,U+2223,U+2225,U+2227-222b,U+222e,U+2234-2237,U+223d,U+2248,U+224c,U+2252,U+2260,U+2261,U+2266,U+2267,U+226e,U+226f,U+2295,U+2299,U+22a5,U+22bf,U+2312; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.72.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+1ea0-1ea9,U+1eab-1ead,U+1eaf,U+1eb1,U+1eb3,U+1eb5,U+1eb7,U+1eb9,U+1ebb,U+1ebd,U+1ebe,U+1ec0-1ec3,U+1ec5,U+1ec6,U+1ec9-1ecd,U+1ecf-1ed3,U+1ed5,U+1ed7-1edf,U+1ee1,U+1ee3,U+1ee5-1eeb,U+1eed,U+1eef-1ef1,U+1ef3,U+1ef7,U+1ef9,U+2004-2006,U+2009,U+200a,U+2010,U+2011,U+2015,U+2016,U+201a,U+201e,U+2020,U+2021,U+2025,U+2027,U+2028,U+2030,U+2032,U+2033,U+2035,U+203c,U+2044,U+2060,U+2061,U+2070,U+2074-2078; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.73.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+2bb,U+2bc,U+2c6,U+2c7,U+2c9-2cb,U+2d8-2da,U+2dc,U+2f3,U+302-304,U+306-30a,U+30c,U+323,U+327,U+335,U+338; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.74.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+176-17f,U+192,U+1a0,U+1a1,U+1af,U+1b0,U+1d2,U+1d4,U+1d6,U+1d8,U+1da,U+1dc,U+1e7,U+1e9,U+1f0,U+1f9-1ff,U+219-21b,U+237,U+251,U+259,U+261,U+292; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.75.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+a1-a4,U+a6-a8,U+aa,U+ac,U+af,U+b1,U+b3-b6,U+b8-ba,U+bc-d6,U+d8-de,U+e6,U+eb,U+ee-f0,U+f5,U+f7,U+f8,U+fb,U+fd-100,U+102,U+104-107,U+10d,U+10f-112,U+115,U+117,U+119,U+11b,U+11e,U+11f,U+121,U+123,U+125-127,U+129,U+12a,U+12d,U+12f-13f,U+141,U+142,U+144,U+146,U+14b,U+14c,U+14f-153,U+158-15b,U+15e-160,U+163-165,U+168-16a,U+16d-175; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.76.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+221a,U+2264,U+2464,U+25a0,U+3008,U+4e10,U+512a,U+5152,U+5201,U+5241,U+5352,U+549a,U+54b2,U+54c6,U+54d7,U+54e1,U+5509,U+55c5,U+560e,U+5618,U+565c,U+56bc,U+5716,U+576f,U+5784,U+57a2,U+589f,U+5a20,U+5a25,U+5a29,U+5a34,U+5a7f,U+5ac9,U+5ad6,U+5b09,U+5b5c,U+5bc7,U+5c27,U+5d2d,U+5dcd,U+5f1b,U+5f37,U+604d,U+6055,U+6073,U+60eb,U+61ff,U+620c,U+62c7,U+62ed,U+6320,U+6345,U+6390,U+63b0,U+64ae,U+64c2,U+64d2,U+6556,U+663c,U+667e,U+66d9,U+66f8,U+6756,U+6789,U+689d,U+68f1,U+695e,U+6975,U+6a1f,U+6b0a,U+6b61,U+6b87,U+6c5d,U+6c7e,U+6c92,U+6d31,U+6df9,U+6e0d,U+6e2d,U+6f3e,U+70b3,U+70bd,U+70ca,U+70e8,U+725f,U+72e9,U+733f,U+7396,U+739f,U+7459,U+745a,U+74a7,U+75a1,U+75f0,U+76cf,U+76d4,U+7729,U+77aa,U+77b0,U+77e3,U+780c,U+78d5,U+7941,U+7977,U+797a,U+79c3,U+7a20,U+7a92,U+7b71,U+7bf1,U+7c9f,U+7eb6,U+7eca,U+7ef7,U+7f07,U+7f09,U+7f15,U+7f81,U+7fb9,U+8038,U+8098,U+80b4,U+8110,U+814b,U+814c,U+816e,U+818a,U+8205,U+8235,U+828b,U+82a5,U+82b7,U+82d4,U+82db,U+82df,U+8317,U+8338,U+8385,U+8386,U+83c1,U+83cf,U+8537,U+853b,U+854a,U+8715,U+8783,U+892a,U+8a71,U+8aaa,U+8d58,U+8dbe,U+8f67,U+8fab,U+8fc4,U+8fe6,U+9023,U+9084,U+9091,U+916a,U+91c9,U+91dc,U+94b3,U+9502,U+9523,U+9551,U+956f,U+960e,U+962a,U+962e,U+9647,U+96f3,U+9739,U+97a0,U+97ed,U+983b,U+985e,U+988a,U+9a6f,U+9a8b,U+9ab7,U+9ac5,U+9e25,U+ff06,U+ff14-ff16; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.77.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+161,U+2463,U+25c7,U+25ce,U+3009,U+3016,U+3017,U+4e4d,U+4e53,U+4f5a,U+4f70,U+4fae,U+4fd8,U+4ffa,U+5011,U+501a,U+516e,U+51c4,U+5225,U+5364,U+547b,U+5495,U+54e8,U+54ee,U+5594,U+55d3,U+55dc,U+55fd,U+5662,U+5669,U+566c,U+5742,U+5824,U+5834,U+598a,U+5992,U+59a9,U+5a04,U+5b75,U+5b7d,U+5bc5,U+5c49,U+5c90,U+5e1c,U+5e27,U+5e2b,U+5e37,U+5e90,U+618b,U+61f5,U+620a,U+6273,U+62f7,U+6342,U+6401,U+6402,U+6413,U+6512,U+655b,U+65a7,U+65f1,U+65f7,U+665f,U+6687,U+66a7,U+673d,U+67b8,U+6854,U+68d8,U+68fa,U+696d,U+6a02,U+6a0a,U+6a80,U+6b7c,U+6bd9,U+6c2e,U+6c76,U+6cf8,U+6d4a,U+6d85,U+6e24,U+6e32,U+6ec7,U+6ed5,U+6f88,U+700f,U+701a,U+7078,U+707c,U+70ac,U+70c1,U+7409,U+7422,U+7480,U+74a8,U+752b,U+7574,U+7656,U+7699,U+7737,U+785d,U+78be,U+79b9,U+7a3d,U+7a91,U+7a9f,U+7ae3,U+7b77,U+7c3f,U+7d1a,U+7d50,U+7d93,U+803f,U+8042,U+808b,U+8236,U+82b8,U+82b9,U+82ef,U+8309,U+836b,U+83ef,U+8431,U+85c9,U+865e,U+868c,U+8759,U+8760,U+8845,U+89ba,U+8a2a,U+8c41,U+8cec,U+8d2c,U+8d4e,U+8e66,U+8e6d,U+8eaf,U+902e,U+914b,U+916e,U+919b,U+949b,U+94a0,U+94b0,U+9541,U+9542,U+9556,U+95eb,U+95f5,U+964b,U+968b,U+96cc,U+96cd,U+96cf,U+9704,U+9713,U+9890,U+98a8,U+9985,U+9992,U+9a6d,U+9a81,U+9a86,U+9ab8,U+9ca4,U+9f9a,U+ff02,U+ff1e,U+ff3d; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.78.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+10c,U+203b,U+2265,U+2573,U+25b2,U+3448,U+3449,U+4e1e,U+4e5e,U+4f3a,U+4f5f,U+4fea,U+5026,U+508d,U+5189,U+5254,U+5288,U+52d8,U+52fa,U+5306,U+5308,U+5384,U+53ed,U+543c,U+5450,U+5455,U+5466,U+54c4,U+5578,U+55a7,U+561f,U+5631,U+572d,U+575f,U+57ae,U+57e0,U+5830,U+594e,U+5984,U+5993,U+5bdd,U+5c0d,U+5c7f,U+5c82,U+5e62,U+5ed3,U+5f08,U+607a,U+60bc,U+60df,U+625b,U+6292,U+62e2,U+6363,U+6467,U+6714,U+675e,U+6771,U+67a2,U+67ff,U+6805,U+6813,U+6869,U+68a7,U+68e0,U+6930,U+6986,U+69a8,U+69df,U+6a44,U+6a5f,U+6c13,U+6c1f,U+6c22,U+6c2f,U+6c40,U+6c81,U+6c9b,U+6ca5,U+6da4,U+6df3,U+6e85,U+6eba,U+6f13,U+6f33,U+6f62,U+715e,U+72c4,U+73d1,U+73fe,U+7405,U+7455,U+7487,U+7578,U+75a4,U+75eb,U+7693,U+7738,U+7741,U+776b,U+7792,U+77a7,U+77a9,U+77b3,U+788c,U+7984,U+79a7,U+79e4,U+7a1a,U+7a57,U+7aa6,U+7b0b,U+7b5d,U+7c27,U+7c7d,U+7caa,U+7cd9,U+7cef,U+7eda,U+7ede,U+7f24,U+8046,U+80fa,U+81b3,U+81fb,U+8207,U+8258,U+8335,U+8339,U+8354,U+840e,U+85b0,U+85fb,U+8695,U+86aa,U+8717,U+8749,U+874c,U+8996,U+89bd,U+89c5,U+8bdb,U+8bf5,U+8c5a,U+8d3f,U+8d9f,U+8e44,U+8fed,U+9005,U+9019,U+904e,U+9082,U+90af,U+90dd,U+90e1,U+90f8,U+9119,U+916f,U+9176,U+949e,U+94a7,U+94c2,U+9525,U+9580,U+95dc,U+96e2,U+96fb,U+9a7c,U+9a7f,U+9b41,U+9ca8,U+9cc4,U+9cde,U+9e92,U+9ede,U+ff10,U+ff13,U+ff3b; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.79.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+60,U+2606,U+3014,U+3015,U+309c,U+33a1,U+4e52,U+4ec6,U+4f86,U+4f8d,U+4fde,U+4fef,U+500b,U+502a,U+515c,U+518a,U+51a5,U+51f3,U+5243,U+52c9,U+52d5,U+53a2,U+53ee,U+54ce,U+54fa,U+54fc,U+5580,U+5587,U+563f,U+56da,U+5792,U+5815,U+5960,U+59d7,U+5a1f,U+5b78,U+5b9b,U+5be1,U+5c4e,U+5c51,U+5c6f,U+5c9a,U+5cfb,U+5d16,U+5ed6,U+5f27,U+5f6a,U+5f6c,U+603c,U+609a,U+6168,U+61c8,U+6236,U+62d0,U+62f1,U+62fd,U+631a,U+6328,U+632b,U+6346,U+638f,U+63a0,U+63c9,U+655e,U+6590,U+6615,U+6627,U+66ae,U+66e6,U+66f0,U+6703,U+67da,U+67ec,U+6816,U+6893,U+68ad,U+68f5,U+6977,U+6984,U+69db,U+6b72,U+6bb7,U+6ce3,U+6cfb,U+6d47,U+6da1,U+6dc4,U+6e43,U+6eaf,U+6eff,U+6f8e,U+7011,U+7063,U+7076,U+7096,U+70ba,U+70db,U+70ef,U+7119,U+711a,U+7172,U+718f,U+7194,U+727a,U+72d9,U+72ed,U+7325,U+73ae,U+73ba,U+73c0,U+7410,U+7426,U+7554,U+7576,U+75ae,U+75b9,U+762b,U+766b,U+7682,U+7750,U+7779,U+7784,U+77eb,U+77ee,U+78f7,U+79e9,U+7a79,U+7b1b,U+7b28,U+7bf7,U+7db2,U+7ec5,U+7eee,U+7f14,U+7f1a,U+7fe1,U+8087,U+809b,U+8231,U+830e,U+835f,U+83e9,U+849c,U+851a,U+868a,U+8718,U+874e,U+8822,U+8910,U+8944,U+8a3b,U+8bb6,U+8bbc,U+8d50,U+8e72,U+8f9c,U+900d,U+904b,U+9063,U+90a2,U+90b9,U+94f2,U+952f,U+9576,U+9577,U+9593,U+95f8,U+961c,U+9631,U+969b,U+96a7,U+96c1,U+9716,U+9761,U+97ad,U+97e7,U+98a4,U+997a,U+9a73,U+9b44,U+9e3d,U+9ecf,U+9ed4,U+ff11,U+ff12; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.80.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+2193,U+2462,U+4e19,U+4e2b,U+4e36,U+4ea8,U+4ed1,U+4ed7,U+4f51,U+4f63,U+4f83,U+50e7,U+5112,U+5167,U+51a4,U+51b6,U+5239,U+5265,U+532a,U+5351,U+537f,U+5401,U+548f,U+5492,U+54af,U+54b3,U+54bd,U+54d1,U+54df,U+554f,U+5564,U+5598,U+5632,U+56a3,U+56e7,U+574e,U+575d,U+575e,U+57d4,U+584c,U+58e4,U+5937,U+5955,U+5a05,U+5a49,U+5ac2,U+5bb0,U+5c39,U+5c61,U+5d0e,U+5de9,U+5e9a,U+5eb8,U+5f0a,U+5f13,U+5f8c,U+608d,U+611b,U+6127,U+62a0,U+634f,U+635e,U+63fd,U+6577,U+658b,U+65bc,U+660a,U+6643,U+6656,U+6760,U+67af,U+67c4,U+67e0,U+6817,U+68cd,U+690e,U+6960,U+69b4,U+6a71,U+6aac,U+6b67,U+6bb4,U+6c55,U+6c70,U+6c82,U+6ca6,U+6cb8,U+6cbe,U+6e9c,U+6ede,U+6ee5,U+6f4d,U+6f84,U+6f9c,U+7115,U+7121,U+722a,U+7261,U+7272,U+7280,U+72f8,U+7504,U+754f,U+75d8,U+767c,U+76ef,U+778e,U+77bb,U+77f6,U+786b,U+78b1,U+7948,U+7985,U+79be,U+7a83,U+7a8d,U+7eac,U+7eef,U+7ef8,U+7efd,U+7f00,U+803d,U+8086,U+810a,U+8165,U+819d,U+81a8,U+8214,U+829c,U+831c,U+8328,U+832b,U+8367,U+83e0,U+83f1,U+8403,U+846b,U+8475,U+84b2,U+8513,U+8574,U+85af,U+86d9,U+86db,U+8acb,U+8bbd,U+8be0,U+8be1,U+8c0e,U+8d29,U+8d63,U+8e81,U+8f7f,U+9032,U+9042,U+90b1,U+90b5,U+9165,U+9175,U+94a6,U+94c5,U+950c,U+9540,U+9610,U+9699,U+96c7,U+973e,U+978d,U+97ec,U+97f6,U+984c,U+987d,U+9882,U+9965,U+996a,U+9972,U+9a8f,U+9ad3,U+9ae6,U+9cb8,U+9edb,U+ff05,U+ff0b; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.81.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+5e,U+2190,U+250a,U+25bc,U+25cf,U+300f,U+4e56,U+4ea9,U+4f3d,U+4f6c,U+4f88,U+4fa8,U+4fcf,U+5029,U+5188,U+51f9,U+5203,U+524a,U+5256,U+529d,U+5375,U+53db,U+541f,U+5435,U+5457,U+548b,U+54b1,U+54c7,U+54d4,U+54e9,U+556a,U+5589,U+55bb,U+55e8,U+55ef,U+563b,U+566a,U+576a,U+58f9,U+598d,U+599e,U+59a8,U+5a9b,U+5ae3,U+5bde,U+5c4c,U+5c60,U+5d1b,U+5deb,U+5df7,U+5e18,U+5f26,U+5f64,U+601c,U+6084,U+60e9,U+614c,U+61be,U+6208,U+621a,U+6233,U+6254,U+62d8,U+62e6,U+62ef,U+6323,U+632a,U+633d,U+6361,U+6380,U+6405,U+640f,U+6614,U+6642,U+6657,U+67a3,U+6808,U+683d,U+6850,U+6897,U+68b3,U+68b5,U+68d5,U+6a58,U+6b47,U+6b6a,U+6c28,U+6c90,U+6ca7,U+6cf5,U+6d51,U+6da9,U+6dc7,U+6dd1,U+6e0a,U+6e5b,U+6f47,U+6f6d,U+70ad,U+70f9,U+710a,U+7130,U+71ac,U+745f,U+7476,U+7490,U+7529,U+7538,U+75d2,U+7696,U+76b1,U+76fc,U+777f,U+77dc,U+789f,U+795b,U+79bd,U+79c9,U+7a3b,U+7a46,U+7aa5,U+7ad6,U+7ca5,U+7cb9,U+7cdf,U+7d6e,U+7f06,U+7f38,U+7fa1,U+7fc1,U+8015,U+803b,U+80a2,U+80aa,U+8116,U+813e,U+82ad,U+82bd,U+8305,U+8346,U+846c,U+8549,U+859b,U+8611,U+8680,U+87f9,U+884d,U+8877,U+888d,U+88d4,U+898b,U+8a79,U+8a93,U+8c05,U+8c0d,U+8c26,U+8d1e,U+8d31,U+8d81,U+8e22,U+8f90,U+8f96,U+90ca,U+916c,U+917f,U+9187,U+918b,U+9499,U+94a9,U+9524,U+958b,U+9600,U+9640,U+96b6,U+96ef,U+98d9,U+9976,U+997f,U+9a74,U+9a84,U+9c8d,U+9e26,U+9e9f,U+ff0f; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.82.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+b0,U+2191,U+2460,U+2461,U+25c6,U+300e,U+4e1b,U+4e7e,U+4ed5,U+4ef2,U+4f10,U+4f1e,U+4f50,U+4fa6,U+4faf,U+5021,U+50f5,U+5179,U+5180,U+51d1,U+522e,U+52a3,U+52c3,U+52cb,U+5300,U+5319,U+5320,U+5349,U+5395,U+53d9,U+541e,U+5428,U+543e,U+54c0,U+54d2,U+570b,U+5858,U+58f6,U+5974,U+59a5,U+59e8,U+59ec,U+5a36,U+5a9a,U+5ab3,U+5b99,U+5baa,U+5ce1,U+5d14,U+5d4c,U+5dc5,U+5de2,U+5e99,U+5e9e,U+5f18,U+5f66,U+5f70,U+6070,U+60d5,U+60e7,U+6101,U+611a,U+6241,U+6252,U+626f,U+6296,U+62bc,U+62cc,U+63a9,U+644a,U+6454,U+64a9,U+64b8,U+6500,U+6572,U+65a5,U+65a9,U+65ec,U+660f,U+6749,U+6795,U+67ab,U+68da,U+6912,U+6bbf,U+6bef,U+6cab,U+6cca,U+6ccc,U+6cfc,U+6d3d,U+6d78,U+6dee,U+6e17,U+6e34,U+6e83,U+6ea2,U+6eb6,U+6f20,U+6fa1,U+707f,U+70d8,U+70eb,U+714c,U+714e,U+7235,U+7239,U+73ca,U+743c,U+745c,U+7624,U+763e,U+76f2,U+77db,U+77e9,U+780d,U+7838,U+7845,U+78ca,U+796d,U+7a84,U+7aed,U+7b3c,U+7eb2,U+7f05,U+7f20,U+7f34,U+7f62,U+7fc5,U+7fd8,U+7ff0,U+800d,U+8036,U+80ba,U+80be,U+80c0,U+80c1,U+8155,U+817a,U+8180,U+81e3,U+8206,U+8247,U+8270,U+8299,U+8304,U+8393,U+83b9,U+83ca,U+840d,U+8427,U+8469,U+8471,U+84c4,U+84ec,U+853d,U+8681,U+8682,U+8721,U+8854,U+88d5,U+88f9,U+8bc0,U+8c0a,U+8c29,U+8c2d,U+8d41,U+8dea,U+8eb2,U+8f9f,U+903b,U+903e,U+9102,U+9493,U+94a5,U+94f8,U+95ef,U+95f7,U+9706,U+9709,U+9774,U+9887,U+98a0,U+9e64,U+9f9f; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.83.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+2103,U+4e18,U+4e27,U+4e28,U+4e38,U+4e59,U+4e8f,U+4ead,U+4ec7,U+4fe9,U+503a,U+5085,U+5146,U+51af,U+51f8,U+52ab,U+5339,U+535c,U+5378,U+538c,U+5398,U+53f9,U+5415,U+5475,U+54aa,U+54ac,U+54b8,U+5582,U+5760,U+5764,U+57cb,U+5835,U+5885,U+5951,U+5983,U+59da,U+5a77,U+5b5d,U+5b5f,U+5bb5,U+5bc2,U+5be8,U+5bfa,U+5c2c,U+5c34,U+5c41,U+5c48,U+5c65,U+5cad,U+5e06,U+5e42,U+5ef7,U+5f17,U+5f25,U+5f6d,U+5f79,U+6028,U+6064,U+6068,U+606d,U+607c,U+6094,U+6109,U+6124,U+6247,U+626d,U+6291,U+629a,U+62ac,U+62b9,U+62fe,U+6324,U+6349,U+6367,U+6398,U+6495,U+64a4,U+64b0,U+64bc,U+64ce,U+658c,U+65ed,U+6602,U+6674,U+6691,U+66a8,U+674f,U+679a,U+67ef,U+67f4,U+680b,U+6876,U+68a8,U+6a59,U+6a61,U+6b20,U+6bc5,U+6d12,U+6d46,U+6d8c,U+6dc0,U+6e14,U+6e23,U+6f06,U+7164,U+716e,U+7199,U+71e5,U+72ac,U+742a,U+755c,U+75ab,U+75b2,U+75f4,U+7897,U+78b3,U+78c5,U+7978,U+79fd,U+7a74,U+7b4b,U+7b5b,U+7ece,U+7ed2,U+7ee3,U+7ef3,U+7f50,U+7f55,U+7f9e,U+7fe0,U+809d,U+8106,U+814a,U+8154,U+817b,U+818f,U+81c2,U+81ed,U+821f,U+82a6,U+82d1,U+8302,U+83c7,U+845b,U+848b,U+84c9,U+85e4,U+86ee,U+8700,U+8774,U+886c,U+8881,U+8c1c,U+8c79,U+8d2a,U+8d3c,U+8eba,U+8f70,U+8fa9,U+8fb1,U+900a,U+9017,U+901d,U+9022,U+906e,U+946b,U+94dd,U+94ed,U+953b,U+95fa,U+95fd,U+964c,U+96c0,U+971c,U+971e,U+9753,U+9756,U+97e6,U+9881,U+9b4f,U+9e2d,U+9f0e,U+ff5c; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.84.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+24,U+4e08,U+4e43,U+4e4f,U+4ef0,U+4f2a,U+507f,U+50ac,U+50bb,U+5151,U+51bb,U+51f6,U+51fd,U+5272,U+52fe,U+5362,U+53c9,U+53d4,U+53e0,U+543b,U+54f2,U+5507,U+5524,U+558a,U+55b5,U+561b,U+56ca,U+5782,U+57c3,U+5893,U+5915,U+5949,U+5962,U+59ae,U+59dc,U+59fb,U+5bd3,U+5c38,U+5cb3,U+5d07,U+5d29,U+5de1,U+5dfe,U+5e15,U+5eca,U+5f2f,U+5f7c,U+5fcc,U+6021,U+609f,U+60f9,U+6108,U+6148,U+6155,U+6170,U+61d2,U+6251,U+629b,U+62ab,U+62e8,U+62f3,U+6321,U+6350,U+6566,U+659c,U+65e8,U+6635,U+6655,U+6670,U+66f9,U+6734,U+679d,U+6851,U+6905,U+6b49,U+6b96,U+6c1b,U+6c41,U+6c6a,U+6c83,U+6cf3,U+6d9b,U+6dcb,U+6e1d,U+6e20,U+6e21,U+6eaa,U+6ee4,U+6ee9,U+6f58,U+70e4,U+722c,U+7262,U+7267,U+72b9,U+72e0,U+72ee,U+72f1,U+7334,U+73ab,U+7433,U+7470,U+758f,U+75d5,U+764c,U+7686,U+76c6,U+76fe,U+7720,U+77e2,U+7802,U+7816,U+788d,U+7891,U+7a00,U+7a9d,U+7b52,U+7bad,U+7c98,U+7cca,U+7eba,U+7eea,U+7ef5,U+7f1d,U+7f69,U+806a,U+809a,U+80bf,U+80c3,U+81c0,U+820c,U+82ac,U+82af,U+82cd,U+82d7,U+838e,U+839e,U+8404,U+84b8,U+852c,U+8587,U+85aa,U+8650,U+8679,U+86c7,U+8702,U+87ba,U+886b,U+8870,U+8c10,U+8c23,U+8c6b,U+8d3e,U+8d4b,U+8d4c,U+8d64,U+8d6b,U+8d74,U+8e29,U+8f69,U+8f74,U+8fb0,U+8fdf,U+901b,U+9038,U+9093,U+90aa,U+9171,U+9489,U+94ae,U+94c3,U+9508,U+9510,U+9601,U+9614,U+9675,U+97f5,U+9888,U+98d8,U+9971,U+9aa4,U+9e3f,U+9e45,U+9e4f,U+9e70,U+9f7f; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.85.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+a5,U+2022,U+2192,U+2605,U+4e11,U+4e22,U+4e32,U+4f0d,U+4f0f,U+4f69,U+4ff1,U+50b2,U+5154,U+51dd,U+51f0,U+5211,U+5269,U+533f,U+5366,U+5367,U+5389,U+5413,U+5440,U+5446,U+5561,U+574a,U+5751,U+57ab,U+5806,U+5821,U+582a,U+58f3,U+5938,U+5948,U+5978,U+59d1,U+5a03,U+5a07,U+5ac1,U+5acc,U+5ae9,U+5bb4,U+5bc4,U+5c3f,U+5e3d,U+5e7d,U+5f92,U+5faa,U+5fe0,U+5ffd,U+6016,U+60a0,U+60dc,U+60e8,U+614e,U+6212,U+6284,U+62c6,U+62d3,U+62d4,U+63f4,U+642c,U+6478,U+6491,U+6492,U+64e6,U+6591,U+65a4,U+664b,U+6735,U+6746,U+67f1,U+67f3,U+6842,U+68af,U+68c9,U+68cb,U+6a31,U+6b3a,U+6bc1,U+6c0f,U+6c27,U+6c57,U+6cc4,U+6ce5,U+6d2a,U+6d66,U+6d69,U+6daf,U+6e58,U+6ecb,U+6ef4,U+707e,U+7092,U+70ab,U+71d5,U+7275,U+7384,U+73b2,U+7434,U+74e6,U+74f7,U+75bc,U+76c8,U+76d0,U+7709,U+77ac,U+7855,U+78a7,U+78c1,U+7a77,U+7b79,U+7c92,U+7cae,U+7cd5,U+7ea4,U+7eb5,U+7ebd,U+7f5a,U+7fd4,U+7ffc,U+8083,U+8096,U+80a0,U+80d6,U+80de,U+8102,U+8109,U+810f,U+8179,U+8292,U+82b3,U+8352,U+8361,U+83cc,U+841d,U+8461,U+8482,U+8521,U+857e,U+866b,U+8776,U+8896,U+889c,U+88f8,U+8a9e,U+8bc8,U+8bf8,U+8c0b,U+8c28,U+8d2b,U+8d2f,U+8d37,U+8d3a,U+8d54,U+8dc3,U+8dcc,U+8df5,U+8e0f,U+8e48,U+8f86,U+8f88,U+8f9e,U+8fc1,U+8fc8,U+8feb,U+9065,U+90a6,U+90bb,U+90c1,U+94dc,U+9521,U+9676,U+96d5,U+970d,U+9897,U+997c,U+9a70,U+9a76,U+9a9a,U+9ad4,U+9e23,U+9e7f,U+9f3b,U+ffe5; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.86.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+300c,U+300d,U+4e54,U+4e58,U+4e95,U+4ec1,U+4f2f,U+4f38,U+4fa3,U+4fca,U+503e,U+5141,U+5144,U+517c,U+51cc,U+51ed,U+5242,U+52b2,U+52d2,U+52e4,U+540a,U+5439,U+5448,U+5496,U+54ed,U+5565,U+5761,U+5766,U+58ee,U+593a,U+594b,U+594f,U+5954,U+5996,U+59c6,U+59ff,U+5b64,U+5bff,U+5c18,U+5c1d,U+5c97,U+5ca9,U+5cb8,U+5e9f,U+5ec9,U+5f04,U+5f7b,U+5fa1,U+5fcd,U+6012,U+60a6,U+60ac,U+60b2,U+60ef,U+626e,U+6270,U+6276,U+62d6,U+62dc,U+6316,U+632f,U+633a,U+6355,U+63aa,U+6447,U+649e,U+64c5,U+654c,U+65c1,U+65cb,U+65e6,U+6606,U+6731,U+675c,U+67cf,U+67dc,U+6846,U+6b8b,U+6beb,U+6c61,U+6c88,U+6cbf,U+6cdb,U+6cea,U+6d45,U+6d53,U+6d74,U+6d82,U+6da8,U+6db5,U+6deb,U+6eda,U+6ee8,U+6f0f,U+706d,U+708e,U+70ae,U+70bc,U+70c2,U+70e6,U+7237,U+7238,U+72fc,U+730e,U+731b,U+739b,U+73bb,U+7483,U+74dc,U+74f6,U+7586,U+7626,U+775b,U+77ff,U+788e,U+78b0,U+7956,U+7965,U+79e6,U+7af9,U+7bee,U+7c97,U+7eb1,U+7eb7,U+7ed1,U+7ed5,U+7f6a,U+7f72,U+7fbd,U+8017,U+808c,U+80a9,U+80c6,U+80ce,U+8150,U+8170,U+819c,U+820d,U+8230,U+8239,U+827e,U+8377,U+8389,U+83b2,U+8428,U+8463,U+867e,U+88c2,U+88d9,U+8986,U+8bca,U+8bde,U+8c13,U+8c8c,U+8d21,U+8d24,U+8d56,U+8d60,U+8d8b,U+8db4,U+8e2a,U+8f68,U+8f89,U+8f9b,U+8fa8,U+8fbd,U+9003,U+90ce,U+90ed,U+9189,U+94bb,U+9505,U+95f9,U+963b,U+9655,U+966a,U+9677,U+96fe,U+9896,U+99a8,U+9a71,U+9a82,U+9a91,U+9b45,U+9ece,U+9f20,U+ff0d; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.87.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+4e4c,U+4e88,U+4ea1,U+4ea6,U+4ed3,U+4ed4,U+4eff,U+4f30,U+4fa7,U+4fc4,U+4fd7,U+500d,U+504f,U+5076,U+5077,U+517d,U+5192,U+51c9,U+51ef,U+5238,U+5251,U+526a,U+52c7,U+52df,U+52ff,U+53a6,U+53a8,U+53ec,U+5410,U+559d,U+55b7,U+5634,U+573e,U+5783,U+585e,U+586b,U+58a8,U+5999,U+59d3,U+5a1c,U+5a46,U+5b54,U+5b55,U+5b85,U+5b8b,U+5b8f,U+5bbf,U+5bd2,U+5c16,U+5c24,U+5e05,U+5e45,U+5e7c,U+5e84,U+5f03,U+5f1f,U+5f31,U+5f84,U+5f90,U+5fbd,U+5fc6,U+5fd9,U+5fe7,U+6052,U+6062,U+6089,U+60a3,U+60d1,U+6167,U+622a,U+6234,U+624e,U+6269,U+626c,U+62b5,U+62d2,U+6325,U+63e1,U+643a,U+6446,U+6562,U+656c,U+65e2,U+65fa,U+660c,U+6628,U+6652,U+6668,U+6676,U+66fc,U+66ff,U+6717,U+676d,U+67aa,U+67d4,U+6843,U+6881,U+68d2,U+695a,U+69fd,U+6a2a,U+6b8a,U+6c60,U+6c64,U+6c9f,U+6caa,U+6cc9,U+6ce1,U+6cfd,U+6d1b,U+6d1e,U+6d6e,U+6de1,U+6e10,U+6e7f,U+6f5c,U+704c,U+7070,U+7089,U+70b8,U+718a,U+71c3,U+723d,U+732a,U+73cd,U+7518,U+756a,U+75af,U+75be,U+75c7,U+76d2,U+76d7,U+7763,U+78e8,U+795d,U+79df,U+7c4d,U+7d2f,U+7ee9,U+7f13,U+7f8a,U+8000,U+8010,U+80af,U+80f6,U+80f8,U+8212,U+8273,U+82f9,U+83ab,U+83b1,U+83f2,U+8584,U+871c,U+8861,U+888b,U+88c1,U+88e4,U+8bd1,U+8bf1,U+8c31,U+8d5a,U+8d75,U+8d76,U+8de8,U+8f85,U+8fa3,U+8fc5,U+9006,U+903c,U+904d,U+9075,U+9178,U+9274,U+950b,U+9526,U+95ea,U+9636,U+9686,U+978b,U+987f,U+9a7e,U+9b42,U+9e1f,U+9ea6,U+9f13,U+9f84,U+ff5e; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.88.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+23,U+3d,U+4e01,U+4e39,U+4e73,U+4ecd,U+4ed9,U+4eea,U+4f0a,U+4f1f,U+4f5b,U+4fa0,U+4fc3,U+501f,U+50a8,U+515a,U+5175,U+51a0,U+51c0,U+51e1,U+51e4,U+5200,U+520a,U+5224,U+523a,U+52aa,U+52b1,U+52b3,U+5348,U+5353,U+5360,U+5371,U+5377,U+539a,U+541b,U+5434,U+547c,U+54e6,U+5510,U+5531,U+5609,U+56f0,U+56fa,U+5733,U+574f,U+5851,U+5854,U+5899,U+58c1,U+592e,U+5939,U+5976,U+5986,U+59bb,U+5a18,U+5a74,U+5b59,U+5b87,U+5b97,U+5ba0,U+5bab,U+5bbd,U+5bbe,U+5bf8,U+5c0a,U+5c3a,U+5c4a,U+5e16,U+5e1d,U+5e2d,U+5e8a,U+6015,U+602a,U+6050,U+6069,U+6162,U+61c2,U+6293,U+6297,U+62b1,U+62bd,U+62df,U+62fc,U+6302,U+635f,U+638c,U+63ed,U+6458,U+6469,U+6563,U+6620,U+6653,U+6696,U+6697,U+66dd,U+675f,U+676f,U+6770,U+67d0,U+67d3,U+684c,U+6865,U+6885,U+68b0,U+68ee,U+690d,U+6b23,U+6b32,U+6bd5,U+6c89,U+6d01,U+6d25,U+6d89,U+6da6,U+6db2,U+6df7,U+6ed1,U+6f02,U+70c8,U+70df,U+70e7,U+7126,U+7236,U+7259,U+731c,U+745e,U+74e3,U+751a,U+751c,U+7532,U+7545,U+75db,U+7761,U+7a0d,U+7b51,U+7ca4,U+7cd6,U+7d2b,U+7ea0,U+7eb9,U+7ed8,U+7f18,U+7f29,U+8033,U+804a,U+80a4,U+80a5,U+80e1,U+817f,U+829d,U+82e6,U+8336,U+840c,U+8499,U+864e,U+8651,U+865a,U+88ad,U+89e6,U+8bd7,U+8bfa,U+8c37,U+8d25,U+8d38,U+8ddd,U+8fea,U+9010,U+9012,U+906d,U+907f,U+9080,U+90d1,U+9177,U+91ca,U+94fa,U+9501,U+9634,U+9635,U+9694,U+9707,U+9738,U+9769,U+9a7b,U+9a97,U+9aa8,U+9b3c,U+9c81,U+9ed8; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.89.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+26,U+3c,U+d7,U+4e4e,U+4e61,U+4e71,U+4ebf,U+4ee4,U+4f26,U+5012,U+51ac,U+51b0,U+51b2,U+51b7,U+5218,U+521a,U+5220,U+5237,U+523b,U+526f,U+5385,U+53bf,U+53e5,U+53eb,U+53f3,U+53f6,U+5409,U+5438,U+54c8,U+54e5,U+552f,U+5584,U+5706,U+5723,U+5750,U+575a,U+5987,U+5988,U+59b9,U+59d0,U+59d4,U+5b88,U+5b9c,U+5bdf,U+5bfb,U+5c01,U+5c04,U+5c3e,U+5c4b,U+5c4f,U+5c9b,U+5cf0,U+5ddd,U+5de6,U+5de8,U+5e01,U+5e78,U+5e7b,U+5e9c,U+5ead,U+5ef6,U+5f39,U+5fd8,U+6000,U+6025,U+604b,U+6076,U+613f,U+6258,U+6263,U+6267,U+6298,U+62a2,U+62e5,U+62ec,U+6311,U+6377,U+6388,U+6389,U+63a2,U+63d2,U+641e,U+642d,U+654f,U+6551,U+6597,U+65cf,U+65d7,U+65e7,U+6682,U+66f2,U+671d,U+672b,U+6751,U+6768,U+6811,U+6863,U+6982,U+6bd2,U+6cf0,U+6d0b,U+6d17,U+6d59,U+6dd8,U+6dfb,U+6e7e,U+6f6e,U+6fb3,U+706f,U+719f,U+72af,U+72d0,U+72d7,U+732b,U+732e,U+7389,U+73e0,U+7530,U+7687,U+76d6,U+76db,U+7840,U+786c,U+79cb,U+79d2,U+7a0e,U+7a33,U+7a3f,U+7a97,U+7ade,U+7adf,U+7b26,U+7e41,U+7ec3,U+7f3a,U+8089,U+80dc,U+811a,U+8131,U+8138,U+821e,U+8349,U+83dc,U+8457,U+867d,U+86cb,U+8a89,U+8ba8,U+8bad,U+8bef,U+8bfe,U+8c6a,U+8d1d,U+8d4f,U+8d62,U+8dd1,U+8df3,U+8f6e,U+8ff9,U+900f,U+9014,U+9057,U+9192,U+91ce,U+9488,U+94a2,U+9547,U+955c,U+95f2,U+9644,U+964d,U+96c4,U+96c5,U+96e8,U+96f6,U+96f7,U+9732,U+9759,U+9760,U+987a,U+989c,U+9910,U+996d,U+996e,U+9b54,U+9e21,U+9ebb,U+9f50; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.90.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+7e,U+2026,U+4e03,U+4e25,U+4e30,U+4e34,U+4e45,U+4e5d,U+4e89,U+4eae,U+4ed8,U+4f11,U+4f19,U+4f24,U+4f34,U+4f59,U+4f73,U+4f9d,U+4fb5,U+5047,U+505c,U+5170,U+519c,U+51cf,U+5267,U+5356,U+5374,U+5382,U+538b,U+53e6,U+5426,U+542b,U+542f,U+5462,U+5473,U+554a,U+5566,U+5708,U+571f,U+5757,U+57df,U+57f9,U+5802,U+590f,U+591c,U+591f,U+592b,U+5965,U+5979,U+5a01,U+5a5a,U+5b69,U+5b81,U+5ba1,U+5ba3,U+5c3c,U+5c42,U+5c81,U+5de7,U+5dee,U+5e0c,U+5e10,U+5e55,U+5e86,U+5e8f,U+5ea7,U+5f02,U+5f52,U+5f81,U+5ff5,U+60ca,U+60e0,U+6279,U+62c5,U+62ff,U+63cf,U+6444,U+64cd,U+653b,U+65bd,U+65e9,U+665a,U+66b4,U+66fe,U+6728,U+6740,U+6742,U+677e,U+67b6,U+680f,U+68a6,U+68c0,U+699c,U+6b4c,U+6b66,U+6b7b,U+6bcd,U+6bdb,U+6c38,U+6c47,U+6c49,U+6cb3,U+6cb9,U+6ce2,U+6d32,U+6d3e,U+6d4f,U+6e56,U+6fc0,U+7075,U+7206,U+725b,U+72c2,U+73ed,U+7565,U+7591,U+7597,U+75c5,U+76ae,U+76d1,U+76df,U+7834,U+7968,U+7981,U+79c0,U+7a7f,U+7a81,U+7ae5,U+7b14,U+7c89,U+7d27,U+7eaf,U+7eb3,U+7eb8,U+7ec7,U+7ee7,U+7eff,U+7f57,U+7ffb,U+805a,U+80a1,U+822c,U+82cf,U+82e5,U+8363,U+836f,U+84dd,U+878d,U+8840,U+8857,U+8863,U+8865,U+8b66,U+8bb2,U+8bda,U+8c01,U+8c08,U+8c46,U+8d1f,U+8d35,U+8d5b,U+8d5e,U+8da3,U+8ddf,U+8f93,U+8fdd,U+8ff0,U+8ff7,U+8ffd,U+9000,U+9047,U+9152,U+949f,U+94c1,U+94f6,U+9646,U+9648,U+9669,U+969c,U+96ea,U+97e9,U+987b,U+987e,U+989d,U+9970,U+9986,U+9c7c,U+9c9c; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.91.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+25,U+4e14,U+4e1d,U+4e3d,U+4e49,U+4e60,U+4e9a,U+4eb2,U+4ec5,U+4efd,U+4f3c,U+4f4f,U+4f8b,U+4fbf,U+5019,U+5145,U+514b,U+516b,U+516d,U+5174,U+5178,U+517b,U+5199,U+519b,U+51b3,U+51b5,U+5207,U+5212,U+5219,U+521d,U+52bf,U+533b,U+5343,U+5347,U+534a,U+536b,U+5370,U+53e4,U+53f2,U+5403,U+542c,U+547d,U+54a8,U+54cd,U+54ea,U+552e,U+56f4,U+5747,U+575b,U+5883,U+589e,U+5931,U+5947,U+5956,U+5957,U+5a92,U+5b63,U+5b83,U+5ba4,U+5bb3,U+5bcc,U+5c14,U+5c1a,U+5c3d,U+5c40,U+5c45,U+5c5e,U+5df4,U+5e72,U+5e95,U+5f80,U+5f85,U+5fb7,U+5fd7,U+601d,U+626b,U+627f,U+62c9,U+62cd,U+6309,U+63a7,U+6545,U+65ad,U+65af,U+65c5,U+666e,U+667a,U+670b,U+671b,U+674e,U+677f,U+6781,U+6790,U+6797,U+6821,U+6838,U+6839,U+697c,U+6b27,U+6b62,U+6bb5,U+6c7d,U+6c99,U+6d4e,U+6d6a,U+6e29,U+6e2f,U+6ee1,U+6f14,U+6f2b,U+72b6,U+72ec,U+7387,U+7533,U+753b,U+76ca,U+76d8,U+7701,U+773c,U+77ed,U+77f3,U+7814,U+793c,U+79bb,U+79c1,U+79d8,U+79ef,U+79fb,U+7a76,U+7b11,U+7b54,U+7b56,U+7b97,U+7bc7,U+7c73,U+7d20,U+7eaa,U+7ec8,U+7edd,U+7eed,U+7efc,U+7fa4,U+804c,U+8058,U+80cc,U+8111,U+817e,U+826f,U+8303,U+843d,U+89c9,U+89d2,U+8ba2,U+8bbf,U+8bc9,U+8bcd,U+8be6,U+8c22,U+8c61,U+8d22,U+8d26,U+8d27,U+8d8a,U+8f6f,U+8f7b,U+8f83,U+8f91,U+8fb9,U+8fd4,U+8fdc,U+9002,U+94b1,U+9519,U+95ed,U+961f,U+9632,U+9633,U+963f,U+968f,U+9690,U+96be,U+9876,U+9884,U+98de,U+9988,U+9999,U+9ec4,U+ff1b; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.92.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+2b,U+40,U+3000,U+300a,U+300b,U+4e16,U+4e66,U+4e70,U+4e91,U+4e92,U+4e94,U+4e9b,U+4ec0,U+4eca,U+4f01,U+4f17,U+4f18,U+4f46,U+4f4e,U+4f9b,U+4fee,U+503c,U+5065,U+50cf,U+513f,U+5148,U+518d,U+51c6,U+51e0,U+5217,U+529e,U+529f,U+5341,U+534f,U+5361,U+5386,U+53c2,U+53c8,U+53cc,U+53d7,U+53d8,U+5404,U+5411,U+5417,U+5427,U+5468,U+559c,U+5668,U+56e0,U+56e2,U+56ed,U+5740,U+57fa,U+58eb,U+5904,U+592a,U+59cb,U+5a31,U+5b58,U+5b9d,U+5bc6,U+5c71,U+5dde,U+5df1,U+5e08,U+5e26,U+5e2e,U+5e93,U+5e97,U+5eb7,U+5f15,U+5f20,U+5f3a,U+5f62,U+5f69,U+5f88,U+5f8b,U+5fc5,U+600e,U+620f,U+6218,U+623f,U+627e,U+628a,U+62a4,U+62db,U+62e9,U+6307,U+6362,U+636e,U+64ad,U+6539,U+653f,U+6548,U+6574,U+6613,U+6625,U+663e,U+666f,U+672a,U+6750,U+6784,U+6a21,U+6b3e,U+6b65,U+6bcf,U+6c11,U+6c5f,U+6d4b,U+6df1,U+706b,U+7167,U+724c,U+738b,U+73a9,U+73af,U+7403,U+7537,U+754c,U+7559,U+767d,U+7740,U+786e,U+795e,U+798f,U+79f0,U+7aef,U+7b7e,U+7bb1,U+7ea2,U+7ea6,U+7ec4,U+7ec6,U+7ecd,U+7edc,U+7ef4,U+8003,U+80b2,U+81f3,U+81f4,U+822a,U+827a,U+82f1,U+83b7,U+8425,U+89c2,U+89c8,U+8ba9,U+8bb8,U+8bc6,U+8bd5,U+8be2,U+8be5,U+8bed,U+8c03,U+8d23,U+8d2d,U+8d34,U+8d70,U+8db3,U+8fbe,U+8fce,U+8fd1,U+8fde,U+9001,U+901f,U+9020,U+90a3,U+914d,U+91c7,U+94fe,U+9500,U+952e,U+9605,U+9645,U+9662,U+9664,U+9700,U+9752,U+975e,U+97f3,U+9879,U+9886,U+98df,U+9a6c,U+9a8c,U+9ed1,U+9f99; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.93.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+4e,U+201c,U+201d,U+3010,U+3011,U+4e07,U+4e1c,U+4e24,U+4e3e,U+4e48,U+4e50,U+4e5f,U+4e8b,U+4e8c,U+4ea4,U+4eab,U+4eac,U+4ecb,U+4ece,U+4ed6,U+4ee3,U+4ef6,U+4ef7,U+4efb,U+4f20,U+4f55,U+4f7f,U+4fdd,U+505a,U+5143,U+5149,U+514d,U+5171,U+5177,U+518c,U+51fb,U+521b,U+5229,U+522b,U+52a9,U+5305,U+5317,U+534e,U+5355,U+5357,U+535a,U+5373,U+539f,U+53bb,U+53ca,U+53cd,U+53d6,U+53e3,U+53ea,U+53f0,U+5458,U+5546,U+56db,U+573a,U+578b,U+57ce,U+58f0,U+590d,U+5934,U+5973,U+5b57,U+5b8c,U+5b98,U+5bb9,U+5bfc,U+5c06,U+5c11,U+5c31,U+5c55,U+5df2,U+5e03,U+5e76,U+5e94,U+5efa,U+5f71,U+5f97,U+5feb,U+6001,U+603b,U+60f3,U+611f,U+6216,U+624d,U+6253,U+6295,U+6301,U+6392,U+641c,U+652f,U+653e,U+6559,U+6599,U+661f,U+671f,U+672f,U+6761,U+67e5,U+6807,U+6837,U+683c,U+6848,U+6b22,U+6b64,U+6bd4,U+6c14,U+6c34,U+6c42,U+6ca1,U+6d41,U+6d77,U+6d88,U+6e05,U+6e38,U+6e90,U+7136,U+7231,U+7531,U+767e,U+76ee,U+76f4,U+771f,U+7801,U+793a,U+79cd,U+7a0b,U+7a7a,U+7acb,U+7ae0,U+7b2c,U+7b80,U+7ba1,U+7cbe,U+7d22,U+7ea7,U+7ed3,U+7ed9,U+7edf,U+7f16,U+7f6e,U+8001,U+800c,U+8272,U+8282,U+82b1,U+8350,U+88ab,U+88c5,U+897f,U+89c1,U+89c4,U+89e3,U+8a00,U+8ba1,U+8ba4,U+8bae-8bb0,U+8bbe,U+8bc1,U+8bc4,U+8bfb,U+8d28,U+8d39,U+8d77,U+8d85,U+8def,U+8eab,U+8f66,U+8f6c,U+8f7d,U+8fd0,U+9009,U+90ae,U+90fd,U+91cc,U+91cd,U+91cf,U+95fb,U+9650,U+96c6,U+9891,U+98ce,U+ff1f; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.94.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+3e,U+5f,U+7c,U+a0,U+a9,U+4e09-4e0b,U+4e0d,U+4e0e,U+4e13,U+4e1a,U+4e2a,U+4e3a,U+4e3b,U+4e4b,U+4e86,U+4e8e,U+4ea7,U+4eba,U+4ee5,U+4eec,U+4f1a,U+4f4d,U+4f53,U+4f5c,U+4f60,U+4fe1,U+5165,U+5168,U+516c,U+5173,U+5176,U+5185,U+51fa,U+5206,U+5230,U+5236,U+524d,U+529b,U+52a0,U+52a1,U+52a8,U+5316,U+533a,U+53cb,U+53d1,U+53ef,U+53f7,U+53f8,U+5408,U+540c-540e,U+544a,U+548c,U+54c1,U+56de,U+56fd,U+56fe,U+5728,U+5730,U+5907,U+5916,U+591a,U+5927,U+5929,U+597d,U+5982,U+5b50,U+5b66,U+5b89,U+5b9a,U+5b9e,U+5ba2,U+5bb6,U+5bf9,U+5c0f,U+5de5,U+5e02,U+5e38,U+5e73,U+5e74,U+5e7f,U+5ea6,U+5f00,U+5f0f,U+5f53,U+5f55,U+5fae,U+5fc3,U+6027,U+606f,U+60a8,U+60c5,U+610f,U+6210,U+6211,U+6237,U+6240,U+624b,U+6280,U+62a5,U+63a5,U+63a8,U+63d0,U+6536,U+6570,U+6587,U+65b9,U+65e0,U+65f6,U+660e,U+662d,U+662f,U+66f4,U+6700,U+670d,U+672c,U+673a,U+6743,U+6765,U+679c,U+682a,U+6b21,U+6b63,U+6cbb,U+6cd5,U+6ce8,U+6d3b,U+70ed,U+7247,U+7248,U+7269,U+7279,U+73b0,U+7406,U+751f,U+7528,U+7535,U+767b,U+76f8,U+770b,U+77e5,U+793e,U+79d1,U+7ad9,U+7b49,U+7c7b,U+7cfb,U+7ebf,U+7ecf,U+7f8e,U+8005,U+8054,U+80fd,U+81ea,U+85cf,U+884c,U+8868,U+8981,U+89c6,U+8bba,U+8bdd,U+8bf4,U+8bf7,U+8d44,U+8fc7,U+8fd8,U+8fd9,U+8fdb,U+901a,U+9053,U+90e8,U+91d1,U+957f,U+95e8,U+95ee,U+95f4,U+9762,U+9875,U+9898,U+9996,U+9ad8,U+ff01,U+ff08,U+ff09; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.95.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+20-22,U+27-2a,U+2c-3b,U+3f,U+41-4d,U+4f-5d,U+61-7b,U+7d,U+ab,U+ae,U+b2,U+b7,U+bb,U+2013,U+2014,U+2039,U+203a,U+2122,U+3001,U+3002,U+30fb,U+30fc,U+4e00,U+4e2d,U+65b0,U+65e5,U+6708,U+6709,U+70b9,U+7684,U+7f51,U+ff0c,U+ff0e,U+ff1a; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Light.96.woff2") format("woff2"); + font-weight: 300; + font-style: normal; + font-display: swap; + unicode-range: U+df-e5,U+e7-ea,U+ec,U+ed,U+f1-f4,U+f6,U+f9,U+fa,U+fc,U+101,U+103,U+113,U+12b,U+148,U+14d,U+16b,U+1ce,U+1d0,U+300,U+301,U+1ebf,U+1ec7,U+3042,U+3044,U+3046,U+3048,U+304a-3055,U+3057,U+3059-305b,U+305d,U+305f-3061,U+3063-306b,U+306d-3073,U+3075,U+3076,U+3078,U+3079,U+307b,U+307e,U+307f,U+3081-308d,U+308f,U+3092,U+3093,U+30a1-30a4,U+30a6-30bb,U+30bd,U+30bf-30c1,U+30c3,U+30c4,U+30c6-30cb,U+30cd-30d7,U+30d9-30e1,U+30e3-30e7,U+30e9-30ed,U+30ef,U+30f3; +} diff --git a/resources/font/HarmonyOS_Sans_SC_Light/index.html b/resources/font/HarmonyOS_Sans_SC_Light/index.html new file mode 100644 index 0000000..1e8b09a --- /dev/null +++ b/resources/font/HarmonyOS_Sans_SC_Light/index.html @@ -0,0 +1,20 @@ + + + + + + Demo + + + + + +
+

Created by voderl ( https://github.com/voderl/font-slice )

+

如果遇到问题可以在 issue 中反馈

+ +
+ + \ No newline at end of file diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.1.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.1.woff2 new file mode 100644 index 0000000..abaaaea Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.1.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.10.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.10.woff2 new file mode 100644 index 0000000..b2dbe66 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.10.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.11.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.11.woff2 new file mode 100644 index 0000000..b8ce869 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.11.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.12.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.12.woff2 new file mode 100644 index 0000000..8438b05 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.12.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.13.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.13.woff2 new file mode 100644 index 0000000..dc7e99b Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.13.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.14.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.14.woff2 new file mode 100644 index 0000000..81f915b Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.14.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.15.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.15.woff2 new file mode 100644 index 0000000..f3e021f Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.15.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.16.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.16.woff2 new file mode 100644 index 0000000..9a07aa4 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.16.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.17.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.17.woff2 new file mode 100644 index 0000000..e0eb386 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.17.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.18.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.18.woff2 new file mode 100644 index 0000000..57a23c3 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.18.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.19.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.19.woff2 new file mode 100644 index 0000000..3945187 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.19.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.2.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.2.woff2 new file mode 100644 index 0000000..adb3bed Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.2.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.20.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.20.woff2 new file mode 100644 index 0000000..ff13f93 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.20.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.21.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.21.woff2 new file mode 100644 index 0000000..9e37722 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.21.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.22.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.22.woff2 new file mode 100644 index 0000000..f39ef91 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.22.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.23.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.23.woff2 new file mode 100644 index 0000000..cc3fa36 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.23.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.24.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.24.woff2 new file mode 100644 index 0000000..e8d2ebc Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.24.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.25.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.25.woff2 new file mode 100644 index 0000000..24cf6ce Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.25.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.26.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.26.woff2 new file mode 100644 index 0000000..e64076a Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.26.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.27.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.27.woff2 new file mode 100644 index 0000000..49dd28b Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.27.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.28.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.28.woff2 new file mode 100644 index 0000000..f405523 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.28.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.29.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.29.woff2 new file mode 100644 index 0000000..cec061a Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.29.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.3.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.3.woff2 new file mode 100644 index 0000000..04c6797 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.3.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.30.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.30.woff2 new file mode 100644 index 0000000..fed6826 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.30.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.31.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.31.woff2 new file mode 100644 index 0000000..5b34fb1 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.31.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.32.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.32.woff2 new file mode 100644 index 0000000..e0f86d6 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.32.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.33.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.33.woff2 new file mode 100644 index 0000000..e540c1b Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.33.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.34.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.34.woff2 new file mode 100644 index 0000000..5a26699 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.34.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.35.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.35.woff2 new file mode 100644 index 0000000..2b35584 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.35.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.36.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.36.woff2 new file mode 100644 index 0000000..8645f7c Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.36.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.37.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.37.woff2 new file mode 100644 index 0000000..8bb1a69 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.37.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.38.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.38.woff2 new file mode 100644 index 0000000..bfbfffc Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.38.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.39.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.39.woff2 new file mode 100644 index 0000000..9bad14c Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.39.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.4.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.4.woff2 new file mode 100644 index 0000000..96c79be Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.4.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.40.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.40.woff2 new file mode 100644 index 0000000..4d963ec Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.40.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.41.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.41.woff2 new file mode 100644 index 0000000..40661ac Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.41.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.42.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.42.woff2 new file mode 100644 index 0000000..0da16e3 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.42.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.43.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.43.woff2 new file mode 100644 index 0000000..7291423 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.43.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.44.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.44.woff2 new file mode 100644 index 0000000..8b605ef Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.44.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.45.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.45.woff2 new file mode 100644 index 0000000..a534006 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.45.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.46.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.46.woff2 new file mode 100644 index 0000000..4310cd8 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.46.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.47.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.47.woff2 new file mode 100644 index 0000000..13c94e8 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.47.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.48.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.48.woff2 new file mode 100644 index 0000000..107a5aa Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.48.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.49.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.49.woff2 new file mode 100644 index 0000000..9ce3b74 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.49.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.5.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.5.woff2 new file mode 100644 index 0000000..5800348 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.5.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.50.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.50.woff2 new file mode 100644 index 0000000..e4427a2 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.50.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.51.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.51.woff2 new file mode 100644 index 0000000..83fef8a Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.51.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.52.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.52.woff2 new file mode 100644 index 0000000..6b44e88 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.52.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.53.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.53.woff2 new file mode 100644 index 0000000..b56442d Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.53.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.54.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.54.woff2 new file mode 100644 index 0000000..b020dc7 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.54.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.55.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.55.woff2 new file mode 100644 index 0000000..4e66fd9 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.55.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.56.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.56.woff2 new file mode 100644 index 0000000..d9020dc Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.56.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.57.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.57.woff2 new file mode 100644 index 0000000..6dbe82e Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.57.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.58.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.58.woff2 new file mode 100644 index 0000000..14f539b Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.58.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.59.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.59.woff2 new file mode 100644 index 0000000..95354c5 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.59.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.6.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.6.woff2 new file mode 100644 index 0000000..0da411d Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.6.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.60.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.60.woff2 new file mode 100644 index 0000000..ef91530 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.60.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.61.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.61.woff2 new file mode 100644 index 0000000..f11820b Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.61.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.62.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.62.woff2 new file mode 100644 index 0000000..6e47727 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.62.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.63.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.63.woff2 new file mode 100644 index 0000000..e878e2c Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.63.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.64.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.64.woff2 new file mode 100644 index 0000000..c514471 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.64.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.65.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.65.woff2 new file mode 100644 index 0000000..d15dce0 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.65.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.66.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.66.woff2 new file mode 100644 index 0000000..cfdb396 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.66.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.67.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.67.woff2 new file mode 100644 index 0000000..8d991f3 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.67.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.68.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.68.woff2 new file mode 100644 index 0000000..32c2378 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.68.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.69.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.69.woff2 new file mode 100644 index 0000000..17db407 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.69.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.7.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.7.woff2 new file mode 100644 index 0000000..956c4bb Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.7.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.70.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.70.woff2 new file mode 100644 index 0000000..06af4ee Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.70.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.71.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.71.woff2 new file mode 100644 index 0000000..422552c Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.71.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.72.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.72.woff2 new file mode 100644 index 0000000..b5cb9a0 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.72.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.73.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.73.woff2 new file mode 100644 index 0000000..f86d365 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.73.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.74.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.74.woff2 new file mode 100644 index 0000000..51e05be Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.74.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.75.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.75.woff2 new file mode 100644 index 0000000..7fa64cb Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.75.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.76.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.76.woff2 new file mode 100644 index 0000000..aa1b9a9 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.76.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.77.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.77.woff2 new file mode 100644 index 0000000..b10ad43 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.77.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.78.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.78.woff2 new file mode 100644 index 0000000..a40315a Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.78.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.79.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.79.woff2 new file mode 100644 index 0000000..d338cb1 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.79.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.8.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.8.woff2 new file mode 100644 index 0000000..0b6394f Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.8.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.80.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.80.woff2 new file mode 100644 index 0000000..0335c07 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.80.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.81.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.81.woff2 new file mode 100644 index 0000000..c0f9171 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.81.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.82.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.82.woff2 new file mode 100644 index 0000000..f593710 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.82.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.83.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.83.woff2 new file mode 100644 index 0000000..456e7de Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.83.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.84.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.84.woff2 new file mode 100644 index 0000000..3c789de Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.84.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.85.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.85.woff2 new file mode 100644 index 0000000..9735c4e Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.85.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.86.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.86.woff2 new file mode 100644 index 0000000..6b0969a Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.86.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.87.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.87.woff2 new file mode 100644 index 0000000..53110eb Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.87.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.88.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.88.woff2 new file mode 100644 index 0000000..54cd117 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.88.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.89.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.89.woff2 new file mode 100644 index 0000000..4f6e777 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.89.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.9.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.9.woff2 new file mode 100644 index 0000000..8b1ceea Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.9.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.90.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.90.woff2 new file mode 100644 index 0000000..fa60487 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.90.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.91.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.91.woff2 new file mode 100644 index 0000000..8bf3d18 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.91.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.92.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.92.woff2 new file mode 100644 index 0000000..95ba0fb Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.92.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.93.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.93.woff2 new file mode 100644 index 0000000..2029232 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.93.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.94.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.94.woff2 new file mode 100644 index 0000000..9a74d05 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.94.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.95.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.95.woff2 new file mode 100644 index 0000000..188773c Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.95.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.96.woff2 b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.96.woff2 new file mode 100644 index 0000000..aff5d47 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Medium/HarmonyOS_Sans_SC_Medium.96.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/font.css b/resources/font/HarmonyOS_Sans_SC_Medium/font.css new file mode 100644 index 0000000..7e0de42 --- /dev/null +++ b/resources/font/HarmonyOS_Sans_SC_Medium/font.css @@ -0,0 +1,769 @@ +/** generated by https://github.com/voderl/font-slice */ +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.1.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+ff03,U+ff04,U+ff07,U+ff0a,U+ff17-ff19,U+ff1c,U+ff1d,U+ff20-ff3a,U+ff3c,U+ff3e-ff5b,U+ff5d,U+ffe0-ffe4; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.2.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+f92c,U+f979,U+fa11,U+fe30,U+fe31,U+fe33-fe44,U+fe49-fe52,U+fe54-fe57,U+fe59-fe66,U+fe68-fe6b; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.3.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+9f3d,U+9f3e,U+9f41,U+9f4a,U+9f4b,U+9f51,U+9f52,U+9f61-9f63,U+9f66,U+9f67,U+9f80,U+9f81,U+9f83,U+9f85-9f8d,U+9f90,U+9f91,U+9f94-9f96,U+9f98,U+9f9b,U+9f9c,U+9f9e,U+9fa0,U+9fa2; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.4.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+9dfa,U+9e0a,U+9e11,U+9e1a,U+9e1e,U+9e20,U+9e22,U+9e28-9e2c,U+9e2e-9e33,U+9e35-9e3b,U+9e3e,U+9e40-9e44,U+9e46-9e4e,U+9e51,U+9e53,U+9e55-9e58,U+9e5a-9e5c,U+9e5e-9e63,U+9e66-9e6e,U+9e71,U+9e73,U+9e75,U+9e78,U+9e79,U+9e7c-9e7e,U+9e82,U+9e86-9e88,U+9e8b,U+9e8c,U+9e90,U+9e91,U+9e93,U+9e95,U+9e97,U+9e9d,U+9ea4,U+9ea5,U+9ea9,U+9eaa,U+9eb4,U+9eb5,U+9eb8-9eba,U+9ebc-9ebf,U+9ec3,U+9ec9,U+9ecd,U+9ed0,U+9ed2,U+9ed3,U+9ed5,U+9ed6,U+9ed9,U+9edc,U+9edd,U+9edf,U+9ee0,U+9ee2,U+9ee5,U+9ee7-9eea,U+9eef,U+9ef1,U+9ef3,U+9ef4,U+9ef6,U+9ef9,U+9efb,U+9efc,U+9efe,U+9f0b,U+9f0d,U+9f10,U+9f14,U+9f17,U+9f19,U+9f22,U+9f29,U+9f2c,U+9f2f,U+9f31,U+9f37,U+9f39; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.5.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+9c3b,U+9c40,U+9c47-9c49,U+9c53,U+9c57,U+9c64,U+9c72,U+9c77,U+9c78,U+9c7b,U+9c7f,U+9c80,U+9c82,U+9c83,U+9c85-9c8c,U+9c8e-9c92,U+9c94-9c9b,U+9c9e-9ca3,U+9ca5-9ca7,U+9ca9,U+9cab,U+9cad,U+9cae,U+9cb1-9cb7,U+9cb9-9cbd,U+9cbf,U+9cc0,U+9cc3,U+9cc5-9cc7,U+9cc9-9cd1,U+9cd3-9cda,U+9cdc,U+9cdd,U+9cdf,U+9ce1-9ce3,U+9ce5,U+9ce9,U+9cee,U+9cef,U+9cf3,U+9cf4,U+9cf6,U+9cfc,U+9cfd,U+9d02,U+9d08,U+9d09,U+9d12,U+9d1b,U+9d1e,U+9d26,U+9d28,U+9d37,U+9d3b,U+9d3f,U+9d51,U+9d59,U+9d5c,U+9d5d,U+9d5f-9d61,U+9d6c,U+9d70,U+9d72,U+9d7a,U+9d7e,U+9d84,U+9d89,U+9d8f,U+9d92,U+9daf,U+9db4,U+9db8,U+9dbc,U+9dc4,U+9dc7,U+9dc9,U+9dd7,U+9ddf,U+9df2,U+9df9; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.6.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+9a5f,U+9a62,U+9a65,U+9a69,U+9a6b,U+9a6e,U+9a75,U+9a77-9a7a,U+9a7d,U+9a80,U+9a83,U+9a85,U+9a87-9a8a,U+9a8d,U+9a8e,U+9a90,U+9a92,U+9a93,U+9a95,U+9a96,U+9a98,U+9a99,U+9a9b-9aa2,U+9aa5,U+9aa7,U+9aaf-9ab1,U+9ab5,U+9ab6,U+9ab9,U+9aba,U+9abc,U+9ac0-9ac4,U+9ac8,U+9acb,U+9acc,U+9ace,U+9acf,U+9ad1,U+9ad2,U+9ad9,U+9adf,U+9ae1,U+9ae3,U+9aea,U+9aeb,U+9aed-9aef,U+9af4,U+9af9,U+9afb,U+9b03,U+9b04,U+9b06,U+9b08,U+9b0d,U+9b0f,U+9b10,U+9b13,U+9b18,U+9b1a,U+9b1f,U+9b22,U+9b23,U+9b25,U+9b27,U+9b28,U+9b2a,U+9b2f,U+9b31,U+9b32,U+9b3b,U+9b43,U+9b46-9b49,U+9b4d,U+9b4e,U+9b51,U+9b56,U+9b58,U+9b5a,U+9b5c,U+9b5f,U+9b61,U+9b62,U+9b6f,U+9b77,U+9b80,U+9b88,U+9b8b,U+9b8e,U+9b91,U+9b9f,U+9ba0,U+9ba8,U+9baa,U+9bab,U+9bad,U+9bae,U+9bb0,U+9bb1,U+9bb8,U+9bc9,U+9bca,U+9bd3,U+9bd6,U+9bdb,U+9be8,U+9bf0,U+9bf1,U+9c02,U+9c10,U+9c15,U+9c24,U+9c2d,U+9c32,U+9c39; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.7.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+98c8,U+98cf-98d6,U+98da,U+98db,U+98dd,U+98e1,U+98e2,U+98e7-98ea,U+98ec,U+98ee,U+98ef,U+98f2,U+98f4,U+98fc-98fe,U+9903,U+9905,U+9908,U+990a,U+990c,U+990d,U+9913,U+9914,U+9918,U+991a,U+991b,U+991e,U+9921,U+9928,U+992c,U+992e,U+9935,U+9938,U+9939,U+993d,U+993e,U+9945,U+994b,U+994c,U+9951,U+9952,U+9954,U+9955,U+9957,U+995e,U+9963,U+9966-9969,U+996b,U+996c,U+996f,U+9974,U+9975,U+9977-9979,U+997d,U+997e,U+9980,U+9981,U+9983,U+9984,U+9987,U+998a,U+998b,U+998d-9991,U+9993-9995,U+9997,U+9998,U+99a5,U+99ab-99ae,U+99b1,U+99b3,U+99b4,U+99bc,U+99bf,U+99c1,U+99c3-99c6,U+99cc,U+99d0,U+99d2,U+99d5,U+99db,U+99dd,U+99e1,U+99ed,U+99f1,U+99ff,U+9a01,U+9a03,U+9a04,U+9a0e,U+9a0f,U+9a11-9a13,U+9a19,U+9a1b,U+9a28,U+9a2b,U+9a30,U+9a32,U+9a37,U+9a40,U+9a45,U+9a4a,U+9a4d,U+9a4e,U+9a52,U+9a55,U+9a57,U+9a5a,U+9a5b; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.8.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+972a,U+972d,U+9730,U+973d,U+9742,U+9744,U+9748,U+9749,U+9750,U+9751,U+975a-975c,U+9763,U+9765,U+9766,U+976c,U+976d,U+9773,U+9776,U+977a,U+977c,U+9784,U+9785,U+978e,U+978f,U+9791,U+9792,U+9794,U+9795,U+9798,U+979a,U+979e,U+97a3,U+97a5,U+97a6,U+97a8,U+97ab,U+97ac,U+97ae,U+97af,U+97b2,U+97b4,U+97c6,U+97cb,U+97cc,U+97d3,U+97d8,U+97dc,U+97e1,U+97ea,U+97eb,U+97ee,U+97fb,U+97fe,U+97ff,U+9801-9803,U+9805,U+9806,U+9808,U+980c,U+9810-9814,U+9817,U+9818,U+981e,U+9820,U+9821,U+9824,U+9828,U+982b-982d,U+9830,U+9834,U+9838,U+9839,U+983c,U+9846,U+984d-984f,U+9851,U+9852,U+9854,U+9855,U+9857,U+9858,U+985a,U+985b,U+9862,U+9863,U+9865,U+9867,U+986b,U+986f-9871,U+9877,U+9878,U+987c,U+9880,U+9883,U+9885,U+9889,U+988b-988f,U+9893-9895,U+9899-989b,U+989e,U+989f,U+98a1,U+98a2,U+98a5-98a7,U+98a9,U+98af,U+98b1,U+98b6,U+98ba,U+98be,U+98c3,U+98c4,U+98c6,U+98c7; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.9.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+95b9-95ca,U+95cc,U+95cd,U+95d4-95d6,U+95d8,U+95e1,U+95e2,U+95e9,U+95f0,U+95f1,U+95f3,U+95f6,U+95fc,U+95fe,U+95ff,U+9602-9604,U+9606-960d,U+960f,U+9611-9613,U+9615-9617,U+9619-961b,U+961d,U+9621,U+9628,U+962f,U+963c-963e,U+9641,U+9642,U+9649,U+9654,U+965b-965f,U+9661,U+9663,U+9665,U+9667,U+9668,U+966c,U+9670,U+9672-9674,U+9678,U+967a,U+967d,U+9682,U+9685,U+9688,U+968a,U+968d,U+968e,U+9695,U+9697,U+9698,U+969e,U+96a0,U+96a3,U+96a4,U+96a8,U+96aa,U+96b0,U+96b1,U+96b3,U+96b4,U+96b7-96b9,U+96bb-96bd,U+96c9,U+96cb,U+96ce,U+96d1,U+96d2,U+96d6,U+96d9,U+96db,U+96dc,U+96de,U+96e0,U+96e3,U+96e9,U+96eb,U+96f0-96f2,U+96f9,U+96ff,U+9701,U+9702,U+9705,U+9708,U+970a,U+970e,U+970f,U+9711,U+9719,U+9727; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.10.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+94e7-94ec,U+94ee-94f1,U+94f3,U+94f5,U+94f7,U+94f9,U+94fb-94fd,U+94ff,U+9503,U+9504,U+9506,U+9507,U+9509,U+950a,U+950d-950f,U+9511-9518,U+951a-9520,U+9522,U+9528-952d,U+9530-953a,U+953c-953f,U+9543-9546,U+9548-9550,U+9552-9555,U+9557-955b,U+955d-9568,U+956a-956d,U+9570-9574,U+9583,U+9586,U+9589,U+958e,U+958f,U+9591,U+9592,U+9594,U+9598,U+9599,U+959e-95a0,U+95a2-95a6,U+95a8-95b2,U+95b4,U+95b8; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.11.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+9410-941a,U+941c-942b,U+942d,U+942e,U+9432,U+9433,U+9435,U+9438,U+943a,U+943e,U+9444,U+944a,U+9451,U+9452,U+945a,U+9462,U+9463,U+9465,U+9470-9487,U+948a-9492,U+9494-9498,U+949a,U+949c,U+949d,U+94a1,U+94a3,U+94a4,U+94a8,U+94aa-94ad,U+94af,U+94b2,U+94b4-94ba,U+94bc-94c0,U+94c4,U+94c6-94db,U+94de-94e6; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.12.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+92b7,U+92b9,U+92c1,U+92c5,U+92c6,U+92c8,U+92cc,U+92d0,U+92d2,U+92e4,U+92ea,U+92ec,U+92ed,U+92f0,U+92f3,U+92f8,U+92fc,U+9304,U+9306,U+9310,U+9312,U+9315,U+9318,U+931a,U+931e,U+9320-9322,U+9324,U+9326-9329,U+932b,U+932c,U+932f,U+9331,U+9332,U+9335,U+9336,U+933e,U+9340,U+9341,U+934a-9360,U+9362,U+9363,U+9365-936b,U+936e,U+9375,U+937e,U+9382,U+938a,U+938c,U+938f,U+9393,U+9394,U+9396,U+9397,U+939a,U+93a2,U+93a7,U+93ac-93cd,U+93d0,U+93d1,U+93d6-93d8,U+93de,U+93df,U+93e1,U+93e2,U+93e4,U+93f8,U+93fb,U+93fd,U+940e,U+940f; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.13.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+914c,U+914e-9150,U+9154,U+9157,U+915a,U+915d,U+915e,U+9161-9164,U+9169,U+9170,U+9172,U+9174,U+9179,U+917a,U+917d,U+917e,U+9182,U+9183,U+9185,U+918c,U+918d,U+9190,U+9191,U+919a,U+919c,U+91a1-91a4,U+91a8,U+91aa-91af,U+91b4,U+91b5,U+91b8,U+91ba,U+91be,U+91c0,U+91c1,U+91c6,U+91c8,U+91cb,U+91d0,U+91d2,U+91d7,U+91d8,U+91dd,U+91e3,U+91e6,U+91e7,U+91ed,U+91f0,U+91f5,U+91f9,U+9200,U+9205,U+9207-920a,U+920d,U+920e,U+9210,U+9214,U+9215,U+921c,U+921e,U+9221,U+9223-9227,U+9229,U+922a,U+922d,U+9234,U+9235,U+9237,U+9239,U+923a,U+923c-9240,U+9244-9246,U+9249,U+924e,U+924f,U+9251,U+9253,U+9257,U+925b,U+925e,U+9262,U+9264-9266,U+9268,U+926c,U+926f,U+9271,U+927b,U+927e,U+9280,U+9283,U+9285-928a,U+928e,U+9291,U+9293,U+9296,U+9298,U+929c,U+929d,U+92a8,U+92ab-92ae,U+92b3,U+92b6; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.14.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+8fe2-8fe5,U+8fe8,U+8fe9,U+8fee,U+8ff3,U+8ff4,U+8ff8,U+8ffa,U+9004,U+900b,U+9011,U+9015,U+9016,U+901e,U+9021,U+9026,U+902d,U+902f,U+9031,U+9035,U+9036,U+9039,U+903a,U+9041,U+9044-9046,U+904a,U+904f-9052,U+9054,U+9055,U+9058,U+9059,U+905b-905e,U+9060-9062,U+9068,U+9069,U+906f,U+9072,U+9074,U+9076-907a,U+907c,U+907d,U+9081,U+9083,U+9085,U+9087-908b,U+908f,U+9095,U+9097,U+9099-909b,U+909d,U+90a0,U+90a1,U+90a8,U+90a9,U+90ac,U+90b0,U+90b2-90b4,U+90b6,U+90b8,U+90ba,U+90bd,U+90be,U+90c3-90c5,U+90c7,U+90c8,U+90cf,U+90d0,U+90d3,U+90d5,U+90d7,U+90da-90dc,U+90de,U+90e2,U+90e4,U+90e6,U+90e7,U+90ea,U+90eb,U+90ef,U+90f4,U+90f5,U+90f7,U+90fe-9100,U+9104,U+9109,U+910c,U+9112,U+9114,U+9115,U+9118,U+911c,U+911e,U+9120,U+9122,U+9123,U+9127,U+912d,U+912f-9132,U+9139,U+913a,U+9143,U+9146,U+9149,U+914a; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.15.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+8e2d-8e31,U+8e34,U+8e35,U+8e39,U+8e3a,U+8e3d,U+8e40-8e42,U+8e47,U+8e49-8e4b,U+8e50-8e53,U+8e59,U+8e5a,U+8e5f,U+8e60,U+8e64,U+8e69,U+8e6c,U+8e70,U+8e74,U+8e76,U+8e7a-8e7c,U+8e7f,U+8e84,U+8e85,U+8e87,U+8e89,U+8e8b,U+8e8d,U+8e8f,U+8e90,U+8e94,U+8e99,U+8e9c,U+8e9e,U+8eaa,U+8eac,U+8eb0,U+8eb6,U+8ec0,U+8ec6,U+8eca-8ece,U+8ed2,U+8eda,U+8edf,U+8ee2,U+8eeb,U+8ef8,U+8efb-8efe,U+8f03,U+8f09,U+8f0b,U+8f12-8f15,U+8f1b,U+8f1d,U+8f1f,U+8f29,U+8f2a,U+8f2f,U+8f36,U+8f38,U+8f3b,U+8f3e,U+8f3f,U+8f44,U+8f45,U+8f49,U+8f4d,U+8f4e,U+8f5f,U+8f6b,U+8f6d,U+8f71-8f73,U+8f75,U+8f76,U+8f78-8f7a,U+8f7c,U+8f7e,U+8f81,U+8f82,U+8f84,U+8f87,U+8f8a,U+8f8b,U+8f8d-8f8f,U+8f94,U+8f95,U+8f97-8f9a,U+8fa6,U+8fad-8faf,U+8fb2,U+8fb5-8fb7,U+8fba-8fbc,U+8fbf,U+8fc2,U+8fcb,U+8fcd,U+8fd3,U+8fd5,U+8fd7,U+8fda; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.16.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+8caf,U+8cb0,U+8cb3,U+8cb4,U+8cb6-8cb9,U+8cbb-8cbd,U+8cbf-8cc4,U+8cc7,U+8cc8,U+8cca,U+8ccd,U+8cd1,U+8cd3,U+8cdb,U+8cdc,U+8cde,U+8ce0,U+8ce2-8ce4,U+8ce6-8ce8,U+8cea,U+8ced,U+8cf4,U+8cf8,U+8cfa,U+8cfc,U+8cfd,U+8d04,U+8d05,U+8d07,U+8d08,U+8d0a,U+8d0d,U+8d0f,U+8d13,U+8d14,U+8d16,U+8d1b,U+8d20,U+8d2e,U+8d30,U+8d32,U+8d33,U+8d36,U+8d3b,U+8d3d,U+8d40,U+8d42,U+8d43,U+8d45,U+8d46,U+8d48-8d4a,U+8d4d,U+8d51,U+8d53,U+8d55,U+8d59,U+8d5c,U+8d5d,U+8d5f,U+8d61,U+8d66,U+8d67,U+8d6a,U+8d6d,U+8d71,U+8d73,U+8d84,U+8d90,U+8d91,U+8d94,U+8d95,U+8d99,U+8da8,U+8daf,U+8db1,U+8db5,U+8db8,U+8dba,U+8dbc,U+8dbf,U+8dc2,U+8dc4,U+8dc6,U+8dcb,U+8dce,U+8dcf,U+8dd6,U+8dd7,U+8dda,U+8ddb,U+8dde,U+8de1,U+8de3,U+8de4,U+8de9,U+8deb,U+8dec,U+8df0,U+8df1,U+8df6-8dfd,U+8e05,U+8e07,U+8e09,U+8e0a,U+8e0c,U+8e0e,U+8e10,U+8e14,U+8e1d-8e1f,U+8e23,U+8e26,U+8e2b,U+8e2c; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.17.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+8b5e,U+8b60,U+8b6c,U+8b6f,U+8b70,U+8b72,U+8b74,U+8b77,U+8b7d,U+8b80,U+8b83,U+8b8a,U+8b8c,U+8b90,U+8b93,U+8b99,U+8b9a,U+8ba0,U+8ba3,U+8ba5-8ba7,U+8baa-8bac,U+8bb3-8bb5,U+8bb7,U+8bb9,U+8bc2,U+8bc3,U+8bc5,U+8bcb,U+8bcc,U+8bce-8bd0,U+8bd2-8bd4,U+8bd6,U+8bd8,U+8bd9,U+8bdc,U+8bdf,U+8be3,U+8be4,U+8be7-8be9,U+8beb,U+8bec,U+8bee,U+8bf0,U+8bf2,U+8bf3,U+8bf6,U+8bf9,U+8bfc,U+8bfd,U+8bff,U+8c00,U+8c02,U+8c04,U+8c06,U+8c07,U+8c0c,U+8c0f,U+8c11,U+8c12,U+8c14-8c1b,U+8c1d-8c21,U+8c24,U+8c25,U+8c27,U+8c2a-8c2c,U+8c2e-8c30,U+8c32-8c36,U+8c3f,U+8c47-8c4c,U+8c4e-8c50,U+8c54-8c56,U+8c62,U+8c68,U+8c6c,U+8c73,U+8c78,U+8c7a,U+8c82,U+8c85,U+8c89,U+8c8a,U+8c8d,U+8c8e,U+8c90,U+8c93,U+8c94,U+8c98,U+8c9d,U+8c9e,U+8ca0-8ca2,U+8ca7-8cac; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.18.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+8a02,U+8a03,U+8a07-8a0a,U+8a0e,U+8a0f,U+8a13,U+8a15-8a18,U+8a1a,U+8a1b,U+8a1d,U+8a1f,U+8a22,U+8a23,U+8a25,U+8a2b,U+8a2d,U+8a31,U+8a33,U+8a34,U+8a36-8a38,U+8a3a,U+8a3c,U+8a3e,U+8a40,U+8a41,U+8a46,U+8a48,U+8a50,U+8a52,U+8a54,U+8a55,U+8a58,U+8a5b,U+8a5d-8a63,U+8a66,U+8a69-8a6b,U+8a6d,U+8a6e,U+8a70,U+8a72,U+8a73,U+8a7a,U+8a85,U+8a87,U+8a8a,U+8a8c,U+8a8d,U+8a90-8a92,U+8a95,U+8a98,U+8aa0,U+8aa1,U+8aa3-8aa6,U+8aa8,U+8aa9,U+8aac-8aae,U+8ab0,U+8ab2,U+8ab8,U+8ab9,U+8abc,U+8abe,U+8abf,U+8ac7,U+8acf,U+8ad2,U+8ad6,U+8ad7,U+8adb,U+8adc,U+8adf,U+8ae1,U+8ae6-8ae8,U+8aeb,U+8aed,U+8aee,U+8af1,U+8af3,U+8af4,U+8af7,U+8af8,U+8afa,U+8afe,U+8b00-8b02,U+8b07,U+8b0a,U+8b0c,U+8b0e,U+8b10,U+8b17,U+8b19,U+8b1b,U+8b1d,U+8b20,U+8b21,U+8b26,U+8b28,U+8b2c,U+8b33,U+8b39,U+8b3e,U+8b3f,U+8b41,U+8b45,U+8b49,U+8b4c,U+8b4f,U+8b57,U+8b58,U+8b5a,U+8b5c; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.19.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+8869,U+886a,U+886e,U+886f,U+8872,U+8879,U+887d-887f,U+8882,U+8884-8886,U+8888,U+888f,U+8892,U+8893,U+889b,U+88a2,U+88a4,U+88a6,U+88a8,U+88aa,U+88ae,U+88b1,U+88b4,U+88b7,U+88bc,U+88c0,U+88c6-88c9,U+88ce,U+88cf,U+88d1-88d3,U+88d8,U+88db-88dd,U+88df,U+88e1-88e3,U+88e5,U+88e8,U+88ec,U+88f0,U+88f1,U+88f3,U+88f4,U+88fc-88fe,U+8900,U+8902,U+8906,U+8907,U+8909-890c,U+8912-8915,U+8918-891b,U+8921,U+8925,U+892b,U+8930,U+8932,U+8934,U+8936,U+893b,U+893d,U+8941,U+894c,U+8955,U+8956,U+8959,U+895c,U+895e-8960,U+8966,U+896a,U+896c,U+896f,U+8970,U+8972,U+897b,U+897e,U+8980,U+8983,U+8985,U+8987,U+8988,U+898c,U+898f,U+8993,U+8997,U+899a,U+89a1,U+89a7,U+89a9,U+89aa,U+89b2,U+89b3,U+89b7,U+89c0,U+89c7,U+89ca-89cc,U+89ce-89d1,U+89d6,U+89da,U+89dc,U+89de,U+89e5,U+89e7,U+89eb,U+89ef,U+89f1,U+89f3,U+89f4,U+89f8,U+89ff,U+8a01; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.20.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+86e4,U+86e6,U+86e9,U+86ed,U+86ef-86f4,U+86f8,U+86f9,U+86fb,U+86fe,U+8703,U+8706-870a,U+870d,U+8711-8713,U+871a,U+871e,U+8722,U+8723,U+8725,U+8729,U+872e,U+8731,U+8734,U+8737,U+873a,U+873b,U+873e-8740,U+8742,U+8747,U+8748,U+8753,U+8755,U+8757,U+8758,U+875d,U+875f,U+8762-8766,U+8768,U+876e,U+8770,U+8772,U+8775,U+8778,U+877b-877e,U+8782,U+8785,U+8788,U+878b,U+8793,U+8797,U+879a,U+879e-87a0,U+87a2,U+87a3,U+87a8,U+87ab-87ad,U+87af,U+87b3,U+87b5,U+87bd,U+87c0,U+87c4,U+87c6,U+87ca,U+87cb,U+87d1,U+87d2,U+87db,U+87dc,U+87de,U+87e0,U+87e5,U+87ea,U+87ec,U+87ee,U+87f2,U+87f3,U+87fb,U+87fd,U+87fe,U+8802,U+8803,U+8805,U+880a,U+880b,U+880d,U+8813-8816,U+8819,U+881b,U+881f,U+8821,U+8823,U+8831,U+8832,U+8835,U+8836,U+8839,U+883b,U+883c,U+8844,U+8846,U+884a,U+884e,U+8852,U+8853,U+8855,U+8859,U+885b,U+885d,U+885e,U+8862,U+8864; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.21.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+8532,U+8534,U+8535,U+8538-853a,U+853c,U+8543,U+8545,U+8548,U+854e,U+8553,U+8556,U+8557,U+8559,U+855e,U+8561,U+8564,U+8565,U+8568-856a,U+856d,U+856f,U+8570,U+8572,U+8576,U+8579-857b,U+8580,U+8585,U+8586,U+8588,U+858a,U+858f,U+8591,U+8594,U+8599,U+859c,U+85a2,U+85a4,U+85a6,U+85a8,U+85a9,U+85ab,U+85ac,U+85ae,U+85b7-85b9,U+85be,U+85c1,U+85c7,U+85cd,U+85d0,U+85d3,U+85d5,U+85dc,U+85dd,U+85df,U+85e0,U+85e5,U+85e6,U+85e8-85ea,U+85f4,U+85f9,U+85fe,U+85ff,U+8602,U+8605-8607,U+860a,U+860b,U+8616,U+8618,U+861a,U+8627,U+8629,U+862d,U+8638,U+863c,U+863f,U+864d,U+864f,U+8652-8655,U+865b,U+865c,U+865f,U+8662,U+8667,U+866c,U+866e,U+8671,U+8675,U+867a-867c,U+867f,U+868b,U+868d,U+8693,U+869c,U+869d,U+86a1,U+86a3,U+86a4,U+86a7-86a9,U+86ac,U+86af-86b1,U+86b4-86b6,U+86ba,U+86c0,U+86c4,U+86c6,U+86c9,U+86ca,U+86cd-86d1,U+86d4,U+86d8,U+86de,U+86df; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.22.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+83b4,U+83b6,U+83b8,U+83ba,U+83bc,U+83bd,U+83bf,U+83c0,U+83c2,U+83c5,U+83c8,U+83c9,U+83cb,U+83d1,U+83d3-83d6,U+83d8,U+83db,U+83dd,U+83df,U+83e1,U+83e5,U+83ea,U+83eb,U+83f0,U+83f4,U+83f8,U+83f9,U+83fb,U+83fd,U+83ff,U+8401,U+8406,U+840a,U+840b,U+840f,U+8411,U+8418,U+841c,U+8420,U+8422-8424,U+8426,U+8429,U+842c,U+8438,U+8439,U+843b,U+843c,U+843f,U+8446,U+8447,U+8449,U+844e,U+8451,U+8452,U+8456,U+8459,U+845a,U+845c,U+8462,U+8466,U+846d,U+846f,U+8470,U+8473,U+8476-8478,U+847a,U+847d,U+8484,U+8485,U+8487,U+8489,U+848c,U+848e,U+8490,U+8493,U+8494,U+8497,U+849b,U+849e,U+849f,U+84a1,U+84a5,U+84a8,U+84af,U+84b4,U+84b9-84bf,U+84c1,U+84c2,U+84c5-84c7,U+84ca,U+84cb,U+84cd,U+84d0,U+84d1,U+84d3,U+84d6,U+84df,U+84e0,U+84e2,U+84e3,U+84e5-84e7,U+84ee,U+84f3,U+84f6,U+84fa,U+84fc,U+84ff,U+8500,U+850c,U+8511,U+8514,U+8515,U+8517,U+8518,U+851f,U+8523,U+8525,U+8526,U+8529,U+852b,U+852d; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.23.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+82a9-82ab,U+82ae,U+82b0,U+82b2,U+82b4-82b6,U+82bc,U+82be,U+82c0-82c2,U+82c4-82c8,U+82ca-82cc,U+82ce,U+82d0,U+82d2,U+82d3,U+82d5,U+82d6,U+82d8,U+82d9,U+82dc-82de,U+82e0-82e4,U+82e7,U+82e9-82eb,U+82ed,U+82ee,U+82f3,U+82f4,U+82f7,U+82f8,U+82fa-8301,U+8306-8308,U+830c,U+830d,U+830f,U+8311,U+8313-8315,U+8318,U+831a,U+831b,U+831d,U+8324,U+8327,U+832a,U+832c,U+832d,U+832f,U+8331-8334,U+833a-833c,U+8340,U+8343-8345,U+8347,U+8348,U+834a,U+834c,U+834f,U+8351,U+8356,U+8358-835c,U+835e,U+8360,U+8364-8366,U+8368-836a,U+836c-836e,U+8373,U+8378,U+837b-837d,U+837f,U+8380,U+8382,U+8388,U+838a,U+838b,U+8392,U+8394,U+8396,U+8398,U+8399,U+839b,U+839c,U+83a0,U+83a2,U+83a3,U+83a8-83aa,U+83ae-83b0,U+83b3; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.24.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+814d,U+814e,U+8151,U+8153,U+8158-815a,U+815e,U+8160,U+8166-8169,U+816b,U+816d,U+8171,U+8173,U+8174,U+8178,U+817c,U+817d,U+8182,U+8188,U+8191,U+8198-819b,U+81a0,U+81a3,U+81a5,U+81a6,U+81a9,U+81b6,U+81ba,U+81bb,U+81bd,U+81bf,U+81c1,U+81c3,U+81c6,U+81c9,U+81ca,U+81cc,U+81cd,U+81d1,U+81d3,U+81d4,U+81d8,U+81db,U+81dc,U+81de,U+81df,U+81e5,U+81e7-81e9,U+81eb,U+81ec,U+81ee,U+81ef,U+81f5,U+81f8,U+81fa,U+81fc,U+81fe,U+8200-8202,U+8204,U+8208-820a,U+820e-8210,U+8216-8218,U+821b,U+821c,U+8221-8224,U+8226-8228,U+822b,U+822d,U+822f,U+8232-8234,U+8237,U+8238,U+823a,U+823b,U+823e,U+8244,U+8249,U+824b,U+824f,U+8259,U+825a,U+825f,U+8266,U+8268,U+826e,U+8271,U+8276-8279,U+827d,U+827f,U+8283,U+8284,U+8288-828a,U+828d-8291,U+8293,U+8294,U+8296-8298,U+829f-82a1,U+82a3,U+82a4,U+82a7,U+82a8; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.25.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+7ffa,U+7ffe,U+8004,U+8006,U+800b,U+800e,U+8011,U+8012,U+8014,U+8016,U+8018,U+8019,U+801c,U+801e,U+8026-802a,U+8031,U+8034,U+8035,U+8037,U+8043,U+804b,U+804d,U+8052,U+8056,U+8059,U+805e,U+8061,U+8068,U+8069,U+806e-8074,U+8076-8078,U+807c-8080,U+8082,U+8084,U+8085,U+8088,U+808f,U+8093,U+809c,U+809f,U+80ab,U+80ad,U+80ae,U+80b1,U+80b6-80b8,U+80bc,U+80bd,U+80c2,U+80c4,U+80ca,U+80cd,U+80d1,U+80d4,U+80d7,U+80d9-80db,U+80dd,U+80e0,U+80e4,U+80e5,U+80e7-80ed,U+80ef-80f1,U+80f3,U+80f4,U+80fc,U+8101,U+8104,U+8105,U+8107,U+8108,U+810c-810e,U+8112-8115,U+8117-8119,U+811b-811f,U+8121-8130,U+8132-8134,U+8137,U+8139,U+813f,U+8140,U+8142,U+8146,U+8148; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.26.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+7ed7,U+7edb,U+7ee0-7ee2,U+7ee5,U+7ee6,U+7ee8,U+7eeb,U+7ef0-7ef2,U+7ef6,U+7efa,U+7efb,U+7efe,U+7f01-7f04,U+7f08,U+7f0a-7f12,U+7f17,U+7f19,U+7f1b,U+7f1c,U+7f1f,U+7f21-7f23,U+7f25-7f28,U+7f2a-7f33,U+7f35-7f37,U+7f3d,U+7f42,U+7f44,U+7f45,U+7f4c,U+7f4d,U+7f52,U+7f54,U+7f58,U+7f59,U+7f5d,U+7f5f-7f61,U+7f63,U+7f65,U+7f68,U+7f70,U+7f71,U+7f73-7f75,U+7f77,U+7f79,U+7f7d,U+7f7e,U+7f85,U+7f86,U+7f88,U+7f89,U+7f8b,U+7f8c,U+7f90,U+7f91,U+7f94-7f96,U+7f98-7f9b,U+7f9d,U+7f9f,U+7fa3,U+7fa7-7fa9,U+7fac-7fb2,U+7fb4,U+7fb6,U+7fb8,U+7fbc,U+7fbf,U+7fc0,U+7fc3,U+7fca,U+7fcc,U+7fce,U+7fd2,U+7fd5,U+7fd9-7fdb,U+7fdf,U+7fe3,U+7fe5-7fe7,U+7fe9,U+7feb,U+7fec,U+7fee,U+7fef,U+7ff1,U+7ff3,U+7ff4,U+7ff9; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.27.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+7dc4,U+7dc7,U+7dc8,U+7dca-7dcd,U+7dcf,U+7dd1,U+7dd2,U+7dd4,U+7dd6-7dd8,U+7dda-7de0,U+7de2-7de6,U+7de8-7ded,U+7def,U+7df1-7df5,U+7df7,U+7df9,U+7dfb,U+7dfc,U+7dfe-7e02,U+7e04,U+7e08-7e0b,U+7e12,U+7e1b,U+7e1e,U+7e20,U+7e22,U+7e23,U+7e26,U+7e29,U+7e2b,U+7e2e,U+7e2f,U+7e31,U+7e37,U+7e39-7e3e,U+7e40,U+7e43,U+7e44,U+7e46,U+7e47,U+7e4a,U+7e4b,U+7e4d,U+7e4e,U+7e51,U+7e54-7e56,U+7e58-7e5b,U+7e5d,U+7e5e,U+7e61,U+7e66,U+7e67,U+7e69-7e6b,U+7e6d,U+7e70,U+7e73,U+7e77,U+7e79,U+7e7b-7e7d,U+7e81,U+7e82,U+7e8c,U+7e8d,U+7e8f,U+7e92-7e94,U+7e96,U+7e98,U+7e9a-7e9c,U+7e9e,U+7e9f,U+7ea1,U+7ea3,U+7ea5,U+7ea8,U+7ea9,U+7eab,U+7ead,U+7eae,U+7eb0,U+7ebb,U+7ebe,U+7ec0-7ec2,U+7ec9,U+7ecb,U+7ecc,U+7ed0,U+7ed4; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.28.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+7ccc,U+7ccd,U+7cd7,U+7cdc,U+7cde,U+7ce0,U+7ce4,U+7ce5,U+7ce7,U+7ce8,U+7cec,U+7cf0,U+7cf5-7cf9,U+7cfc,U+7cfe,U+7d00,U+7d04-7d0b,U+7d0d,U+7d10-7d14,U+7d17-7d19,U+7d1b-7d1f,U+7d21,U+7d24-7d26,U+7d28-7d2a,U+7d2c-7d2e,U+7d30,U+7d31,U+7d33,U+7d35,U+7d36,U+7d38-7d3a,U+7d40,U+7d42-7d44,U+7d46,U+7d4b,U+7d4c,U+7d4f,U+7d51,U+7d54-7d56,U+7d58,U+7d5b,U+7d5c,U+7d5e,U+7d61-7d63,U+7d66,U+7d68,U+7d6a-7d6c,U+7d6f,U+7d71-7d73,U+7d75-7d77,U+7d79,U+7d7a,U+7d7e,U+7d81,U+7d84-7d8b,U+7d8d,U+7d8f,U+7d91,U+7d94,U+7d96,U+7d98-7d9a,U+7d9c-7da0,U+7da2,U+7da6,U+7daa-7db1,U+7db4-7db8,U+7dba-7dbf,U+7dc1; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.29.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+7bc3,U+7bc4,U+7bc6,U+7bc8-7bcc,U+7bd1,U+7bd3,U+7bd4,U+7bd9,U+7bda,U+7bdd,U+7be0,U+7be1,U+7be4-7be6,U+7be9,U+7bea,U+7bef,U+7bf4,U+7bf6,U+7bfc,U+7bfe,U+7c01,U+7c03,U+7c07,U+7c08,U+7c0a-7c0d,U+7c0f,U+7c11,U+7c15,U+7c16,U+7c19,U+7c1e-7c21,U+7c23,U+7c24,U+7c26,U+7c28-7c33,U+7c35,U+7c37-7c3b,U+7c3d,U+7c3e,U+7c40,U+7c41,U+7c43,U+7c47,U+7c48,U+7c4c,U+7c50,U+7c53,U+7c54,U+7c59,U+7c5f,U+7c60,U+7c63-7c65,U+7c6c,U+7c6e,U+7c72,U+7c74,U+7c79,U+7c7a,U+7c7c,U+7c81,U+7c82,U+7c84,U+7c85,U+7c88,U+7c8a-7c91,U+7c93-7c96,U+7c99,U+7c9b-7c9e,U+7ca0-7ca2,U+7ca6-7ca9,U+7cac,U+7caf-7cb3,U+7cb5-7cb7,U+7cba-7cbd,U+7cbf-7cc2,U+7cc5,U+7cc7-7cc9; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.30.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+7aca,U+7ad1,U+7ad2,U+7ada-7add,U+7ae1,U+7ae4,U+7ae6,U+7af4-7af7,U+7afa,U+7afb,U+7afd-7b0a,U+7b0c,U+7b0e,U+7b0f,U+7b13,U+7b15,U+7b16,U+7b18,U+7b19,U+7b1e-7b20,U+7b22-7b25,U+7b29-7b2b,U+7b2d,U+7b2e,U+7b30-7b3b,U+7b3e,U+7b3f,U+7b41,U+7b42,U+7b44-7b47,U+7b4a,U+7b4c-7b50,U+7b58,U+7b5a,U+7b5c,U+7b60,U+7b66,U+7b67,U+7b69,U+7b6c-7b6f,U+7b72-7b76,U+7b7b-7b7d,U+7b7f,U+7b82,U+7b85,U+7b87,U+7b8b-7b96,U+7b98,U+7b99,U+7b9b-7b9f,U+7ba2-7ba4,U+7ba6-7bac,U+7bae-7bb0,U+7bb4,U+7bb7-7bb9,U+7bbb,U+7bc0,U+7bc1; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.31.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+797c,U+797e-7980,U+7982,U+7986,U+7987,U+7989-798e,U+7992,U+7994,U+7995,U+7997,U+7998,U+799a-799c,U+799f,U+79a3-79a6,U+79a8-79ac,U+79ae-79b1,U+79b3-79b5,U+79b8,U+79ba,U+79bf,U+79c2,U+79c6,U+79c8,U+79cf,U+79d5,U+79d6,U+79dd,U+79de,U+79e3,U+79e7,U+79e8,U+79eb,U+79ed,U+79f4,U+79f7,U+79f8,U+79fa,U+79fe,U+7a02,U+7a03,U+7a05,U+7a0a,U+7a14,U+7a17,U+7a19,U+7a1c,U+7a1e,U+7a1f,U+7a23,U+7a25,U+7a26,U+7a2c,U+7a2e,U+7a30-7a32,U+7a36,U+7a37,U+7a39,U+7a3c,U+7a40,U+7a42,U+7a47,U+7a49,U+7a4c-7a4f,U+7a51,U+7a55,U+7a5b,U+7a5d,U+7a5e,U+7a62,U+7a63,U+7a66,U+7a68,U+7a69,U+7a6b,U+7a70,U+7a78,U+7a80,U+7a85-7a88,U+7a8a,U+7a90,U+7a93-7a96,U+7a98,U+7a9b,U+7a9c,U+7a9e,U+7aa0,U+7aa1,U+7aa3,U+7aa8-7aaa,U+7aac-7ab0,U+7ab3,U+7ab8,U+7aba,U+7abd-7abf,U+7ac4,U+7ac5,U+7ac7,U+7ac8; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.32.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+783e,U+7841-7844,U+7847-7849,U+784b,U+784c,U+784e-7854,U+7856,U+7857,U+7859,U+785a,U+7865,U+7869,U+786a,U+786d,U+786f,U+7876,U+7877,U+787c,U+787e,U+787f,U+7881,U+7887-7889,U+7893,U+7894,U+7898-789e,U+78a1,U+78a3,U+78a5,U+78a9,U+78ad,U+78b2,U+78b4,U+78b6,U+78b9,U+78ba,U+78bc,U+78bf,U+78c3,U+78c9,U+78cb,U+78d0-78d2,U+78d4,U+78d9,U+78da,U+78dc,U+78de,U+78e1,U+78e5,U+78e6,U+78ea,U+78ec,U+78ef,U+78f1,U+78f2,U+78f4,U+78fa,U+78fb,U+78fe,U+7901,U+7902,U+7905,U+7907,U+7909,U+790b,U+790c,U+790e,U+7910,U+7913,U+7919-791b,U+791e,U+791f,U+7921,U+7924,U+7926,U+792a,U+792b,U+7934,U+7936,U+7939,U+793b,U+793d,U+7940,U+7942,U+7943,U+7945-7947,U+7949,U+794a,U+794c,U+794e-7951,U+7953-7955,U+7957-795a,U+795c,U+795f,U+7960,U+7962,U+7964,U+7966,U+7967,U+7969,U+796b,U+796f,U+7972,U+7974,U+7979,U+797b; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.33.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+770f,U+7712,U+7714,U+7716,U+7719-771b,U+771e,U+7721,U+7722,U+7726,U+7728,U+772b-7730,U+7732-7736,U+7739,U+773a,U+773d-773f,U+7743,U+7746,U+7747,U+774c-774f,U+7751,U+7752,U+7758-775a,U+775c-775e,U+7762,U+7765,U+7766,U+7768-776a,U+776c,U+776d,U+7771,U+7772,U+777a,U+777c-777e,U+7780,U+7785,U+7787,U+778b-778d,U+778f-7791,U+7793,U+779e-77a0,U+77a2,U+77a5,U+77ad,U+77af,U+77b4-77b7,U+77bd-77c0,U+77c2,U+77c5,U+77c7,U+77cd,U+77d6,U+77d7,U+77d9,U+77da,U+77dd,U+77de,U+77e7,U+77ea,U+77ec,U+77ef,U+77f8,U+77fb,U+77fd,U+77fe,U+7800,U+7803,U+7806,U+7809,U+780f-7812,U+7815,U+7817,U+7818,U+781a-781f,U+7821-7823,U+7825-7827,U+7829,U+782b-7830,U+7832,U+7833,U+7835,U+7837,U+7839-783c; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.34.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+760a-760e,U+7610-7619,U+761b-761d,U+761f-7622,U+7625,U+7627-762a,U+762e-7630,U+7632-7635,U+7638-763a,U+763c,U+763d,U+763f,U+7640,U+7642,U+7643,U+7647,U+7648,U+764d,U+764e,U+7652,U+7654,U+7658,U+765a,U+765c,U+765e,U+765f,U+7661-7663,U+7665,U+7669,U+766c,U+766e,U+766f,U+7671-7673,U+7675,U+7676,U+7678-767a,U+767f,U+7681,U+7683,U+7688,U+768a-768c,U+768e,U+7690-7692,U+7695,U+7698,U+769a,U+769b,U+769d-76a0,U+76a2,U+76a4-76a7,U+76ab,U+76ac,U+76af,U+76b0,U+76b2,U+76b4,U+76b5,U+76ba,U+76bb,U+76bf,U+76c2,U+76c3,U+76c5,U+76c9,U+76cc-76ce,U+76dc-76de,U+76e1-76ea,U+76f1,U+76f9-76fb,U+76fd,U+76ff,U+7700,U+7703,U+7704,U+7707,U+7708,U+770c-770e; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.35.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+74ef,U+74f4,U+74ff,U+7501,U+7503,U+7505,U+7508,U+750d,U+750f,U+7511,U+7513,U+7515,U+7517,U+7519,U+7521-7527,U+752a,U+752c,U+752d,U+752f,U+7534,U+7536,U+753a,U+753e,U+7540,U+7544,U+7547-754b,U+754d,U+754e,U+7550-7553,U+7556,U+7557,U+755a,U+755b,U+755d,U+755e,U+7560,U+7562,U+7564,U+7566-7568,U+756b,U+756c,U+756f-7573,U+7575,U+7579-757c,U+757e,U+757f,U+7581-7584,U+7587,U+7589-758e,U+7590,U+7592,U+7594,U+7596,U+7599,U+759a,U+759d,U+759f,U+75a0,U+75a3,U+75a5,U+75a8,U+75ac,U+75ad,U+75b0,U+75b1,U+75b3-75b5,U+75b8,U+75bd,U+75c1-75c4,U+75c8-75ca,U+75cc,U+75cd,U+75d4,U+75d6,U+75d9,U+75de,U+75e0,U+75e2-75e4,U+75e6-75ea,U+75f1-75f3,U+75f7,U+75f9,U+75fa,U+75fc,U+75fe-7601,U+7603,U+7605,U+7606,U+7608,U+7609; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.36.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+73e7-73ea,U+73ee-73f0,U+73f2,U+73f4,U+73f5,U+73f7,U+73f9,U+73fa,U+73fc,U+73fd,U+73ff-7402,U+7404,U+7407,U+7408,U+740a-740f,U+7418,U+741a-741c,U+741e,U+7424,U+7425,U+7428,U+7429,U+742c-7430,U+7432,U+7435,U+7436,U+7438-743b,U+743e-7441,U+7443-7446,U+7448,U+744a,U+744b,U+7452,U+7457,U+745b,U+745d,U+7460,U+7462-7465,U+7467-746a,U+746d,U+746f,U+7471,U+7473,U+7474,U+7477,U+747a,U+747e,U+7481,U+7482,U+7484,U+7486,U+7488-748b,U+748e,U+748f,U+7493,U+7498,U+749a,U+749c-74a0,U+74a3,U+74a6,U+74a9,U+74aa,U+74ae,U+74b0-74b2,U+74b6,U+74b8-74ba,U+74bd,U+74bf,U+74c1,U+74c3,U+74c5,U+74c8,U+74ca,U+74cc,U+74cf,U+74d1,U+74d2,U+74d4,U+74d5,U+74d8-74db,U+74de-74e0,U+74e2,U+74e4,U+74e5,U+74e7-74e9,U+74ee; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.37.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+72dd-72df,U+72e1,U+72e5,U+72e6,U+72e8,U+72ef,U+72f0,U+72f2-72f4,U+72f6,U+72f7,U+72f9-72fb,U+72fd,U+7300-7304,U+7307,U+730a-730c,U+7313-7317,U+731d-7322,U+7327,U+7329,U+732c,U+732d,U+7330,U+7331,U+7333,U+7335-7337,U+7339,U+733d,U+733e,U+7340,U+7342,U+7344,U+7345,U+734a,U+734d-7350,U+7352,U+7355,U+7357,U+7359,U+735f,U+7360,U+7362,U+7363,U+7365,U+7368,U+736c,U+736d,U+736f,U+7370,U+7372,U+7374-7376,U+7378,U+737a,U+737b,U+737d,U+737e,U+7382,U+7383,U+7386,U+7388,U+738a,U+738c-7393,U+7395,U+7397-739a,U+739c,U+739e,U+73a0-73a3,U+73a5-73a8,U+73aa,U+73ad,U+73b1,U+73b3,U+73b6,U+73b7,U+73b9,U+73c2,U+73c5-73c9,U+73cc,U+73ce-73d0,U+73d2,U+73d6,U+73d9,U+73db-73de,U+73e3,U+73e5,U+73e6; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.38.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+719c,U+71a0,U+71a4,U+71a5,U+71a8,U+71af,U+71b1-71bc,U+71be,U+71c1,U+71c2,U+71c4,U+71c8-71cb,U+71ce-71d0,U+71d2,U+71d4,U+71d9,U+71da,U+71dc,U+71df,U+71e0,U+71e6-71e8,U+71ea,U+71ed,U+71ee,U+71f4,U+71f6,U+71f9,U+71fb,U+71fc,U+71ff,U+7200,U+7207,U+720c,U+720d,U+7210,U+7216,U+721a-721e,U+7223,U+7228,U+722b,U+722d,U+722e,U+7230,U+7232,U+723a-723c,U+723e-7242,U+7246,U+724b,U+724d,U+724e,U+7252,U+7256,U+7258,U+725a,U+725c,U+725d,U+7260,U+7264-7266,U+726a,U+726c,U+726e,U+726f,U+7271,U+7273,U+7274,U+7278,U+727b,U+727d,U+727e,U+7281,U+7282,U+7284,U+7287,U+728a,U+728d,U+728f,U+7292,U+729b,U+729f,U+72a0,U+72a7,U+72ad,U+72ae,U+72b0-72b5,U+72b7,U+72b8,U+72ba-72be,U+72c0,U+72c1,U+72c3,U+72c5,U+72c6,U+72c8,U+72cc-72ce,U+72d2,U+72d6,U+72db; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.39.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+7005,U+7006,U+7009,U+700b,U+700d,U+7015,U+7018,U+701b,U+701d-701f,U+7023,U+7026-7028,U+702c,U+702e-7030,U+7035,U+7037,U+7039,U+703a,U+703c-703e,U+7044,U+7049-704b,U+704f,U+7051,U+7058,U+705a,U+705c-705e,U+7061,U+7064,U+7066,U+706c,U+707d,U+7080,U+7081,U+7085,U+7086,U+708a,U+708f,U+7091,U+7094,U+7095,U+7098,U+7099,U+709c,U+709d,U+709f,U+70a4,U+70a9,U+70aa,U+70af-70b2,U+70b4-70b7,U+70bb,U+70c0,U+70c3,U+70c7,U+70cb,U+70ce,U+70cf,U+70d4,U+70d9,U+70da,U+70dc,U+70dd,U+70e0,U+70e9,U+70ec,U+70f7,U+70fa,U+70fd,U+70ff,U+7104,U+7108,U+7109,U+710c,U+7110,U+7113,U+7114,U+7116-7118,U+711c,U+711e,U+7120,U+712e,U+712f,U+7131,U+713c,U+7142,U+7144-7147,U+7149-714b,U+7150,U+7152,U+7155,U+7156,U+7159,U+715a,U+715c,U+7161,U+7165,U+7166,U+7168,U+7169,U+716d,U+7173,U+7174,U+7176,U+7178,U+717a,U+717d,U+717f,U+7180,U+7184,U+7186-7188,U+7192,U+7198; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.40.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+6ed8,U+6ed9,U+6edb,U+6edd,U+6edf,U+6ee0,U+6ee2,U+6ee6,U+6eea,U+6eec,U+6eee,U+6eef,U+6ef2,U+6ef3,U+6ef7-6efa,U+6efe,U+6f01,U+6f03,U+6f08,U+6f09,U+6f15,U+6f16,U+6f19,U+6f22-6f25,U+6f28-6f2a,U+6f2c,U+6f2d,U+6f2f,U+6f31,U+6f32,U+6f36-6f38,U+6f3f,U+6f43-6f46,U+6f48,U+6f4b,U+6f4e,U+6f4f,U+6f51,U+6f54-6f57,U+6f59-6f5b,U+6f5e,U+6f5f,U+6f61,U+6f64-6f67,U+6f69-6f6c,U+6f6f-6f72,U+6f74-6f76,U+6f78-6f7e,U+6f80-6f83,U+6f86,U+6f89,U+6f8b-6f8d,U+6f90,U+6f92,U+6f94,U+6f97,U+6f98,U+6f9b,U+6fa3-6fa5,U+6fa7,U+6faa,U+6faf,U+6fb1,U+6fb4,U+6fb6,U+6fb9,U+6fc1-6fcb,U+6fd1-6fd3,U+6fd5,U+6fdb,U+6fde-6fe1,U+6fe4,U+6fe9,U+6feb,U+6fec,U+6fee-6ff1,U+6ffa,U+6ffe; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.41.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+6dc3,U+6dc5,U+6dc6,U+6dc9,U+6dcc,U+6dcf,U+6dd2,U+6dd3,U+6dd6,U+6dd9-6dde,U+6de0,U+6de4,U+6de6,U+6de8-6dea,U+6dec,U+6def,U+6df0,U+6df5,U+6df6,U+6df8,U+6dfa,U+6dfc,U+6e03,U+6e04,U+6e07-6e09,U+6e0b,U+6e0c,U+6e0e,U+6e11,U+6e13,U+6e15,U+6e16,U+6e19-6e1b,U+6e1e,U+6e1f,U+6e22,U+6e25-6e27,U+6e2b,U+6e2c,U+6e36,U+6e37,U+6e39,U+6e3a,U+6e3c-6e41,U+6e44,U+6e45,U+6e47,U+6e49-6e4b,U+6e4d,U+6e4e,U+6e51,U+6e53-6e55,U+6e5c-6e5f,U+6e61-6e63,U+6e65-6e67,U+6e6a,U+6e6b,U+6e6d-6e70,U+6e72-6e74,U+6e76-6e78,U+6e7c,U+6e80-6e82,U+6e86,U+6e87,U+6e89,U+6e8d,U+6e8f,U+6e96,U+6e98,U+6e9d-6e9f,U+6ea1,U+6ea5-6ea7,U+6eab,U+6eb1,U+6eb2,U+6eb4,U+6eb7,U+6ebb-6ebd,U+6ebf-6ec6,U+6ec8,U+6ec9,U+6ecc,U+6ecf,U+6ed0,U+6ed3,U+6ed4,U+6ed7; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.42.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+6cb2,U+6cb4,U+6cb5,U+6cb7,U+6cba,U+6cbc,U+6cbd,U+6cc1-6cc3,U+6cc5-6cc7,U+6cd0-6cd4,U+6cd6,U+6cd7,U+6cd9,U+6cda,U+6cde-6ce0,U+6ce4,U+6ce6,U+6ce9,U+6ceb-6cef,U+6cf1,U+6cf2,U+6cf6,U+6cf7,U+6cfa,U+6cfe,U+6d03-6d05,U+6d07,U+6d08,U+6d0a,U+6d0c,U+6d0e-6d11,U+6d13,U+6d14,U+6d16,U+6d18-6d1a,U+6d1c,U+6d1f,U+6d22,U+6d23,U+6d26-6d29,U+6d2b,U+6d2e-6d30,U+6d33,U+6d35,U+6d36,U+6d38-6d3a,U+6d3c,U+6d3f,U+6d42-6d44,U+6d48,U+6d49,U+6d4d,U+6d50,U+6d52,U+6d54,U+6d56-6d58,U+6d5a-6d5c,U+6d5e,U+6d60,U+6d61,U+6d63-6d65,U+6d67,U+6d6c,U+6d6d,U+6d6f,U+6d75,U+6d7b-6d7d,U+6d87,U+6d8a,U+6d8e,U+6d90-6d9a,U+6d9c-6da0,U+6da2,U+6da3,U+6da7,U+6daa-6dac,U+6dae,U+6db3,U+6db4,U+6db6,U+6db8,U+6dbc,U+6dbf,U+6dc2; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.43.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+6b85,U+6b86,U+6b89,U+6b8d,U+6b91-6b93,U+6b95,U+6b97,U+6b98,U+6b9a,U+6b9b,U+6b9e,U+6ba1-6ba4,U+6ba9,U+6baa,U+6bad,U+6baf,U+6bb0,U+6bb2,U+6bb3,U+6bba-6bbd,U+6bc0,U+6bc2,U+6bc6,U+6bca-6bcc,U+6bce,U+6bd0,U+6bd1,U+6bd3,U+6bd6-6bd8,U+6bda,U+6be1,U+6be6,U+6bec,U+6bf1,U+6bf3-6bf5,U+6bf9,U+6bfd,U+6c05-6c08,U+6c0d,U+6c10,U+6c15-6c1a,U+6c21,U+6c23-6c26,U+6c29-6c2d,U+6c30-6c33,U+6c35-6c37,U+6c39,U+6c3a,U+6c3c-6c3f,U+6c46,U+6c4a-6c4c,U+6c4e-6c50,U+6c54,U+6c56,U+6c59-6c5c,U+6c5e,U+6c63,U+6c67-6c69,U+6c6b,U+6c6d,U+6c6f,U+6c72-6c74,U+6c78-6c7a,U+6c7c,U+6c84-6c87,U+6c8b,U+6c8c,U+6c8f,U+6c91,U+6c93-6c96,U+6c98,U+6c9a,U+6c9d,U+6ca2-6ca4,U+6ca8,U+6ca9,U+6cac-6cae,U+6cb1; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.44.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+6a01,U+6a06,U+6a09,U+6a0b,U+6a11,U+6a13,U+6a17-6a19,U+6a1b,U+6a1e,U+6a23,U+6a28,U+6a29,U+6a2b,U+6a2f,U+6a30,U+6a35,U+6a38-6a40,U+6a46-6a48,U+6a4a,U+6a4b,U+6a4e,U+6a50,U+6a52,U+6a5b,U+6a5e,U+6a62,U+6a65-6a67,U+6a6b,U+6a79,U+6a7c,U+6a7e,U+6a7f,U+6a84,U+6a86,U+6a8e,U+6a90,U+6a91,U+6a94,U+6a97,U+6a9c,U+6a9e,U+6aa0,U+6aa2,U+6aa4,U+6aa9,U+6aab,U+6aae-6ab0,U+6ab2,U+6ab3,U+6ab5,U+6ab7,U+6ab8,U+6aba,U+6abb,U+6abd,U+6abf,U+6ac2-6ac4,U+6ac6,U+6ac8,U+6acc,U+6ace,U+6ad2,U+6ad3,U+6ad8-6adc,U+6adf,U+6ae0,U+6ae4,U+6ae5,U+6ae7,U+6ae8,U+6afb,U+6b04,U+6b05,U+6b0d-6b13,U+6b16,U+6b17,U+6b19,U+6b24,U+6b25,U+6b2c,U+6b37-6b39,U+6b3b,U+6b3d,U+6b43,U+6b46,U+6b4e,U+6b50,U+6b53,U+6b54,U+6b58,U+6b59,U+6b5b,U+6b60,U+6b69,U+6b6d,U+6b6f,U+6b70,U+6b73,U+6b74,U+6b77-6b7a,U+6b80-6b84; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.45.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+68e1,U+68e3,U+68e4,U+68e6-68ed,U+68ef,U+68f0,U+68f2,U+68f4,U+68f6,U+68f7,U+68f9,U+68fb-68fd,U+68ff-6902,U+6906-6908,U+690b,U+6910,U+691a-691c,U+691f,U+6920,U+6924,U+6925,U+692a,U+692d,U+6934,U+6939,U+693c-6945,U+694a,U+694b,U+6952-6954,U+6957,U+6959,U+695b,U+695d,U+695f,U+6962-6964,U+6966,U+6968-696c,U+696e,U+696f,U+6971,U+6973,U+6974,U+6978,U+6979,U+697d,U+697f,U+6980,U+6985,U+6987-698a,U+698d,U+698e,U+6994-6999,U+699b,U+69a3,U+69a4,U+69a6,U+69a7,U+69ab,U+69ad,U+69ae,U+69b1,U+69b7,U+69bb,U+69bc,U+69c1,U+69c3-69c5,U+69c7,U+69ca-69ce,U+69d0,U+69d1,U+69d3,U+69d4,U+69d7-69da,U+69e0,U+69e4,U+69e6,U+69ec,U+69ed,U+69f1-69f3,U+69f8,U+69fa-69fc,U+69fe-6a00; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.46.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+6792,U+6793,U+6796,U+6798,U+679e-67a1,U+67a5,U+67a7-67a9,U+67ac,U+67ad,U+67b0,U+67b1,U+67b3,U+67b5,U+67b7,U+67b9,U+67bb,U+67bc,U+67c0,U+67c1,U+67c3,U+67c5-67ca,U+67d1,U+67d2,U+67d7-67d9,U+67dd-67df,U+67e2-67e4,U+67e6-67e9,U+67f0,U+67f5,U+67f7,U+67f8,U+67fa,U+67fb,U+67fd,U+67fe,U+6800,U+6801,U+6803,U+6804,U+6806,U+6809,U+680a,U+680c,U+680e,U+6812,U+681d-681f,U+6822,U+6824-6829,U+682b-682d,U+6831-6835,U+683b,U+683e,U+6840,U+6841,U+6844,U+6845,U+6849,U+684e,U+6853,U+6855,U+6856,U+685c,U+685d,U+685f-6862,U+6864,U+6866-6868,U+686b,U+686f,U+6872,U+6874,U+6877,U+687f,U+6883,U+6886,U+688f,U+689b,U+689f,U+68a0,U+68a2,U+68a3,U+68b1,U+68b6,U+68b9,U+68ba,U+68bc-68bf,U+68c1-68c4,U+68c6,U+68c8,U+68ca,U+68cc,U+68d0,U+68d1,U+68d3,U+68d7,U+68dd,U+68df; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.47.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+663a,U+663b,U+663d,U+6641,U+6644,U+6645,U+6649,U+664c,U+664f,U+6654,U+6659,U+665b,U+665d,U+665e,U+6660-6667,U+6669,U+666b,U+666c,U+6671,U+6673,U+6677-6679,U+667c,U+6680,U+6681,U+6684,U+6685,U+6688,U+6689,U+668b-668e,U+6690,U+6692,U+6695,U+6698,U+669a,U+669d,U+669f,U+66a0,U+66a2,U+66a3,U+66a6,U+66aa,U+66ab,U+66b1,U+66b2,U+66b5,U+66b8,U+66b9,U+66bb,U+66be,U+66c1,U+66c6-66c9,U+66cc,U+66d5-66d8,U+66da-66dc,U+66de-66e2,U+66e8-66ea,U+66ec,U+66f1,U+66f3,U+66f7,U+66fa,U+66fd,U+6702,U+6705,U+670a,U+670f,U+6710,U+6713,U+6715,U+6719,U+6722,U+6723,U+6725-6727,U+6729,U+672d,U+672e,U+6732,U+6733,U+6736,U+6739,U+673b,U+673f,U+6744,U+6748,U+674c,U+674d,U+6753,U+6755,U+6762,U+6767,U+6769-676c,U+676e,U+6772,U+6773,U+6775,U+6777,U+677a-677d,U+6782,U+6783,U+6787,U+678a-678d,U+678f; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.48.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+64f8,U+64fa,U+64fc,U+64fe,U+64ff,U+6503,U+6509,U+650f,U+6514,U+6518,U+651c-651e,U+6522-6525,U+652a-652c,U+652e,U+6530-6532,U+6534,U+6535,U+6537,U+6538,U+653a,U+653c,U+653d,U+6542,U+6549-654b,U+654d,U+654e,U+6553-6555,U+6557,U+6558,U+655d,U+6564,U+6569,U+656b,U+656d-656f,U+6571,U+6573,U+6575,U+6576,U+6578-657e,U+6581-6583,U+6585,U+6586,U+6589,U+658e,U+658f,U+6592,U+6593,U+6595,U+6596,U+659b,U+659d,U+659f-65a1,U+65a3,U+65ab,U+65ac,U+65b2,U+65b6,U+65b7,U+65ba,U+65bb,U+65be-65c0,U+65c2-65c4,U+65c6-65c8,U+65cc,U+65ce,U+65d0,U+65d2,U+65d3,U+65d6,U+65db,U+65dd,U+65e1,U+65e3,U+65ee-65f0,U+65f3-65f5,U+65f8,U+65fb,U+65fc,U+65fe-6600,U+6603,U+6607,U+6609,U+660b,U+6610,U+6611,U+6619,U+661a,U+661c-661e,U+6621,U+6624,U+6626,U+662a-662c,U+662e,U+6630,U+6631,U+6633,U+6634,U+6636; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.49.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+63bc,U+63be,U+63c0,U+63c3,U+63c4,U+63c6,U+63c8,U+63cd,U+63ce,U+63d1,U+63d6,U+63da,U+63db,U+63de,U+63e0,U+63e3,U+63e9,U+63ea,U+63ee,U+63f2,U+63f5-63fa,U+63fc,U+63fe-6400,U+6406,U+640b-640d,U+6410,U+6414,U+6416,U+6417,U+641b,U+6420-6423,U+6425-6428,U+642a,U+6431,U+6432,U+6434-6437,U+643d-6442,U+6445,U+6448,U+6450-6452,U+645b-645f,U+6462,U+6465,U+6468,U+646d,U+646f-6471,U+6473,U+6477,U+6479-647d,U+6482-6485,U+6487,U+6488,U+648c,U+6490,U+6493,U+6496-649a,U+649d,U+64a0,U+64a5,U+64ab,U+64ac,U+64b1-64b7,U+64b9-64bb,U+64be-64c1,U+64c4,U+64c7,U+64c9-64cb,U+64d0,U+64d4,U+64d7,U+64d8,U+64da,U+64de,U+64e0-64e2,U+64e4,U+64e9,U+64ec,U+64f0-64f2,U+64f4,U+64f7; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.50.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+623b,U+623d,U+623e,U+6243,U+6246,U+6248,U+6249,U+624c,U+6255,U+6259,U+625e,U+6260,U+6261,U+6265,U+6266,U+626a,U+6271,U+627a,U+627c,U+627d,U+6283,U+6286,U+6289,U+628e,U+6294,U+629c,U+629e,U+629f,U+62a1,U+62a8,U+62ba,U+62bb,U+62bf,U+62c2,U+62c4,U+62c8,U+62ca,U+62cb,U+62ce,U+62cf,U+62d1,U+62d7,U+62d9,U+62da,U+62dd,U+62e0,U+62e1,U+62e3,U+62e4,U+62e7,U+62eb,U+62ee,U+62f0,U+62f4-62f6,U+6308,U+630a-630e,U+6310,U+6312,U+6313,U+6317,U+6319,U+631b,U+631d-631f,U+6322,U+6326,U+6329,U+6331,U+6332,U+6334-6337,U+6339,U+633b,U+633c,U+633e-6340,U+6343,U+6347,U+634b-634e,U+6354,U+635c,U+635d,U+6368,U+6369,U+636d,U+636f-6372,U+6376,U+637a,U+637b,U+637d,U+6382,U+6383,U+6387,U+638a,U+638b,U+638d,U+638e,U+6391,U+6393-6397,U+6399,U+639b,U+639e,U+639f,U+63a1,U+63a3,U+63a4,U+63ac-63ae,U+63b1-63b5,U+63b7-63bb; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.51.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+60fa,U+6100,U+6106,U+610d,U+610e,U+6112,U+6114,U+6115,U+6119,U+611c,U+6120,U+6122,U+6123,U+6126,U+6128-6130,U+6136,U+6137,U+613a,U+613d,U+613e,U+6144,U+6146,U+6147,U+614a,U+614b,U+6151,U+6153,U+6158,U+615a,U+615c,U+615d,U+615f,U+6161,U+6163-6165,U+616b,U+616c,U+616e,U+6171,U+6173-6177,U+617e,U+6182,U+6187,U+618a,U+618d,U+618e,U+6190,U+6191,U+6194,U+6199,U+619a,U+619c,U+619f,U+61a1,U+61a3,U+61a4,U+61a7-61a9,U+61ab-61ad,U+61b2,U+61b3,U+61b5-61b7,U+61ba,U+61bb,U+61bf,U+61c3,U+61c4,U+61c6,U+61c7,U+61c9-61cb,U+61d0,U+61d1,U+61d3,U+61d4,U+61d7,U+61da,U+61df-61e1,U+61e6,U+61ee,U+61f0,U+61f2,U+61f6-61f8,U+61fa,U+61fc-61fe,U+6200,U+6206,U+6207,U+6209,U+620b,U+620d,U+620e,U+6213-6215,U+6217,U+6219,U+621b-6223,U+6225,U+6226,U+622c,U+622e-6230,U+6232,U+6238; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.52.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+5fd1-5fd6,U+5fda-5fde,U+5fe1,U+5fe2,U+5fe4,U+5fe5,U+5fea,U+5fed,U+5fee,U+5ff1-5ff3,U+5ff6,U+5ff8,U+5ffb,U+5ffe,U+5fff,U+6002-6006,U+600a,U+600d,U+600f,U+6014,U+6019,U+601b,U+6020,U+6023,U+6026,U+6029,U+602b,U+602e,U+602f,U+6031,U+6033,U+6035,U+6039,U+603f,U+6041-6043,U+6046,U+604f,U+6053,U+6054,U+6058-605b,U+605d,U+605e,U+6060,U+6063,U+6065,U+6067,U+606a-606c,U+6075,U+6078,U+6079,U+607b,U+607d,U+607f,U+6083,U+6085-6087,U+608a,U+608c,U+608e,U+608f,U+6092,U+6093,U+6095-6097,U+609b-609d,U+60a2,U+60a7,U+60a9-60ab,U+60ad,U+60af-60b1,U+60b3-60b6,U+60b8,U+60bb,U+60bd,U+60be,U+60c0-60c3,U+60c6-60c9,U+60cb,U+60ce,U+60d3,U+60d4,U+60d7-60db,U+60dd,U+60e1-60e4,U+60e6,U+60ea,U+60ec-60ee,U+60f0,U+60f1,U+60f4,U+60f6; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.53.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+5ea3-5ea5,U+5ea8,U+5eab,U+5eaf,U+5eb3,U+5eb5,U+5eb6,U+5eb9,U+5ebe,U+5ec1-5ec3,U+5ec6,U+5ec8,U+5ecb,U+5ecc,U+5ed1,U+5ed2,U+5ed4,U+5ed9-5edb,U+5edd,U+5edf,U+5ee0,U+5ee2,U+5ee3,U+5ee8,U+5eea,U+5eec,U+5eef,U+5ef0,U+5ef3,U+5ef4,U+5ef8,U+5efb,U+5efc,U+5efe,U+5eff,U+5f01,U+5f07,U+5f0b-5f0e,U+5f10-5f12,U+5f14,U+5f1a,U+5f22,U+5f28,U+5f29,U+5f2c,U+5f2d,U+5f35,U+5f36,U+5f38,U+5f3b-5f43,U+5f45-5f4a,U+5f4c-5f4e,U+5f50,U+5f54,U+5f56-5f59,U+5f5b-5f5f,U+5f61,U+5f63,U+5f65,U+5f67,U+5f68,U+5f6b,U+5f6e,U+5f6f,U+5f72-5f78,U+5f7a,U+5f7e,U+5f7f,U+5f82,U+5f83,U+5f87,U+5f89,U+5f8a,U+5f8d,U+5f91,U+5f93,U+5f95,U+5f98,U+5f99,U+5f9c,U+5f9e,U+5fa0,U+5fa6-5fa9,U+5fac,U+5fad,U+5faf,U+5fb3-5fb5,U+5fb9,U+5fbc,U+5fc4,U+5fc9,U+5fcb,U+5fce-5fd0; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.54.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+5d32-5d34,U+5d3c-5d3e,U+5d41-5d44,U+5d46-5d48,U+5d4a,U+5d4b,U+5d4e,U+5d50,U+5d52,U+5d55-5d58,U+5d5a-5d5d,U+5d68,U+5d69,U+5d6b,U+5d6c,U+5d6f,U+5d74,U+5d7f,U+5d82-5d89,U+5d8b,U+5d8c,U+5d8f,U+5d92,U+5d93,U+5d99,U+5d9d,U+5db2,U+5db6,U+5db7,U+5dba,U+5dbc,U+5dbd,U+5dc2,U+5dc3,U+5dc6,U+5dc7,U+5dc9,U+5dcc,U+5dd2,U+5dd4,U+5dd6-5dd8,U+5ddb,U+5ddc,U+5de3,U+5ded,U+5def,U+5df3,U+5df6,U+5dfa-5dfd,U+5dff,U+5e00,U+5e07,U+5e0f,U+5e11,U+5e13,U+5e14,U+5e19-5e1b,U+5e22,U+5e25,U+5e28,U+5e2a,U+5e2f-5e31,U+5e33,U+5e34,U+5e36,U+5e39-5e3c,U+5e3e,U+5e40,U+5e44,U+5e46-5e48,U+5e4c,U+5e4f,U+5e53,U+5e54,U+5e57,U+5e59,U+5e5b,U+5e5e,U+5e5f,U+5e61,U+5e63,U+5e6a,U+5e6b,U+5e75,U+5e77,U+5e79,U+5e7a,U+5e7e,U+5e80,U+5e81,U+5e83,U+5e85,U+5e87,U+5e8b,U+5e91,U+5e92,U+5e96,U+5e98,U+5e9b,U+5e9d,U+5ea0-5ea2; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.55.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+5bf5,U+5bf6,U+5bfe,U+5c02,U+5c03,U+5c05,U+5c07-5c09,U+5c0b,U+5c0c,U+5c0e,U+5c10,U+5c12,U+5c13,U+5c15,U+5c17,U+5c19,U+5c1b,U+5c1c,U+5c1e,U+5c1f,U+5c22,U+5c25,U+5c28,U+5c2a,U+5c2b,U+5c2f,U+5c30,U+5c37,U+5c3b,U+5c43,U+5c44,U+5c46,U+5c47,U+5c4d,U+5c50,U+5c59,U+5c5b,U+5c5c,U+5c62-5c64,U+5c66,U+5c6c,U+5c6e,U+5c74,U+5c78-5c7e,U+5c80,U+5c83,U+5c84,U+5c88,U+5c8b-5c8d,U+5c91,U+5c94-5c96,U+5c98,U+5c99,U+5c9c,U+5c9e,U+5ca1-5ca3,U+5cab,U+5cac,U+5cb1,U+5cb5,U+5cb7,U+5cba,U+5cbd-5cbf,U+5cc1,U+5cc3,U+5cc4,U+5cc7,U+5ccb,U+5cd2,U+5cd8,U+5cd9,U+5cdf,U+5ce0,U+5ce3-5ce6,U+5ce8-5cea,U+5ced,U+5cef,U+5cf3,U+5cf4,U+5cf6,U+5cf8,U+5cfd,U+5d00-5d04,U+5d06,U+5d08,U+5d0b-5d0d,U+5d0f-5d13,U+5d15,U+5d17-5d1a,U+5d1d-5d22,U+5d24-5d27,U+5d2e-5d31; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.56.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+5ab2,U+5ab4,U+5ab5,U+5ab7-5aba,U+5abd-5abf,U+5ac3,U+5ac4,U+5ac6-5ac8,U+5aca,U+5acb,U+5acd,U+5acf-5ad2,U+5ad4,U+5ad8-5ada,U+5adc,U+5adf-5ae2,U+5ae4,U+5ae6,U+5ae8,U+5aea-5aed,U+5af0-5af3,U+5af5,U+5af9-5afb,U+5afd,U+5b01,U+5b05,U+5b08,U+5b0b,U+5b0c,U+5b11,U+5b16,U+5b17,U+5b1b,U+5b21,U+5b22,U+5b24,U+5b27-5b2e,U+5b30,U+5b32,U+5b34,U+5b36-5b38,U+5b3e-5b40,U+5b43,U+5b45,U+5b4a,U+5b4b,U+5b51-5b53,U+5b56,U+5b5a,U+5b5b,U+5b62,U+5b65,U+5b67,U+5b6a-5b6e,U+5b70,U+5b71,U+5b73,U+5b7a,U+5b7b,U+5b7f,U+5b80,U+5b84,U+5b8d,U+5b91,U+5b93-5b95,U+5b9f,U+5ba5,U+5ba6,U+5bac,U+5bae,U+5bb8,U+5bc0,U+5bc3,U+5bcb,U+5bd0,U+5bd1,U+5bd4-5bd8,U+5bda-5bdc,U+5be2,U+5be4-5be7,U+5be9,U+5beb,U+5bec,U+5bee-5bf0,U+5bf2,U+5bf3; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.57.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+5981,U+598f,U+5997,U+5998,U+599a,U+599c,U+599d,U+59a0,U+59a1,U+59a3,U+59a4,U+59a7,U+59aa-59ad,U+59af,U+59b2,U+59b3,U+59b5,U+59b6,U+59b8,U+59ba,U+59bd,U+59be,U+59c0,U+59c1,U+59c3,U+59c4,U+59c7-59ca,U+59cc,U+59cd,U+59cf,U+59d2,U+59d5,U+59d6,U+59d8,U+59d9,U+59db,U+59dd-59e0,U+59e2-59e7,U+59e9-59eb,U+59ee,U+59f1,U+59f3,U+59f5,U+59f7-59f9,U+59fd,U+5a06,U+5a08-5a0a,U+5a0c,U+5a0d,U+5a11-5a13,U+5a15,U+5a16,U+5a1a,U+5a1b,U+5a21-5a23,U+5a2d-5a2f,U+5a32,U+5a38,U+5a3c,U+5a3e-5a45,U+5a47,U+5a4a,U+5a4c,U+5a4d,U+5a4f-5a51,U+5a53,U+5a55-5a57,U+5a5e,U+5a60,U+5a62,U+5a65-5a67,U+5a6a,U+5a6c,U+5a6d,U+5a72,U+5a73,U+5a75,U+5a76,U+5a79-5a7c,U+5a81-5a84,U+5a8c,U+5a8e,U+5a93,U+5a96,U+5a97,U+5a9c,U+5a9e,U+5aa0,U+5aa3,U+5aa4,U+5aaa,U+5aae,U+5aaf,U+5ab1; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.58.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+5831,U+583a,U+583d,U+583f-5842,U+5844-5846,U+5848,U+584a,U+584d,U+5852,U+5857,U+5859,U+585a,U+585c,U+585d,U+5862,U+5868,U+5869,U+586c,U+586d,U+586f-5873,U+5875,U+5879,U+587d,U+587e,U+5880,U+5881,U+5888-588a,U+588d,U+5892,U+5896-5898,U+589a,U+589c,U+589d,U+58a0,U+58a1,U+58a3,U+58a6,U+58a9,U+58ab-58ae,U+58b0,U+58b3,U+58bb-58bf,U+58c2,U+58c3,U+58c5-58c8,U+58ca,U+58cc,U+58ce,U+58d1-58d3,U+58d5,U+58d8,U+58d9,U+58de,U+58df,U+58e2,U+58e9,U+58ec,U+58ef,U+58f1,U+58f2,U+58f5,U+58f7,U+58f8,U+58fa,U+58fd,U+5900,U+5902,U+5906,U+5908-590c,U+590e,U+5910,U+5914,U+5919,U+591b,U+591d,U+591e,U+5920,U+5922-5925,U+5928,U+592c,U+592d,U+592f,U+5932,U+5936,U+593c,U+593e,U+5940-5942,U+5944,U+594c,U+594d,U+5950,U+5953,U+5958,U+595a,U+5961,U+5966-5968,U+596a,U+596c-596e,U+5977,U+597b,U+597c; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.59.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+570a,U+570c,U+570d,U+570f,U+5712,U+5713,U+5718,U+5719,U+571c,U+571e,U+5725,U+5727,U+5729,U+572a,U+572c,U+572e,U+572f,U+5734,U+5735,U+5739,U+573b,U+5741,U+5743,U+5745,U+5749,U+574c,U+574d,U+575c,U+5763,U+5768,U+5769,U+576b,U+576d,U+576e,U+5770,U+5773,U+5775,U+5777,U+577b,U+577c,U+5785,U+5786,U+5788,U+578c,U+578e,U+578f,U+5793-5795,U+5799-57a1,U+57a3,U+57a4,U+57a6-57aa,U+57ac,U+57ad,U+57af-57b2,U+57b4-57b6,U+57b8,U+57b9,U+57bd-57bf,U+57c2,U+57c4-57c8,U+57cc,U+57cd,U+57cf,U+57d2,U+57d5-57de,U+57e1,U+57e2,U+57e4,U+57e5,U+57e7,U+57eb,U+57ed,U+57ef,U+57f4-57f8,U+57fc,U+57fd,U+5800,U+5801,U+5803,U+5805,U+5807,U+5809,U+580b-580e,U+5811,U+5814,U+5819,U+581b-5820,U+5822,U+5823,U+5825,U+5826,U+582c,U+582f; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.60.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+5605,U+5606,U+5608,U+560c,U+560d,U+560f,U+5614,U+5616,U+5617,U+561a,U+561c,U+561e,U+5621-5625,U+5627,U+5629,U+562b-5630,U+5636,U+5638-563a,U+563c,U+5640-5642,U+5649,U+564c-5650,U+5653-5655,U+5657-565b,U+5660,U+5663,U+5664,U+5666,U+566b,U+566f-5671,U+5673-567c,U+567e,U+5684-5687,U+568c,U+568e-5693,U+5695,U+5697,U+569b,U+569c,U+569e,U+569f,U+56a1,U+56a2,U+56a4-56a9,U+56ac-56af,U+56b1,U+56b4,U+56b6-56b8,U+56bf,U+56c1-56c3,U+56c9,U+56cd,U+56d1,U+56d4,U+56d6-56d9,U+56dd,U+56df,U+56e1,U+56e3-56e6,U+56e8-56ec,U+56ee,U+56ef,U+56f1-56f3,U+56f5,U+56f7-56f9,U+56fc,U+56ff,U+5700,U+5703,U+5704,U+5709; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.61.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+5519,U+551b,U+551d,U+551e,U+5520,U+5522,U+5523,U+5526,U+5527,U+552a-552c,U+5530,U+5532-5535,U+5537,U+5538,U+553b-5541,U+5543,U+5544,U+5547-5549,U+554b,U+554d,U+5550,U+5553,U+5555-5558,U+555b-555f,U+5567-5569,U+556b-5572,U+5574-5577,U+557b,U+557c,U+557e,U+557f,U+5581,U+5583,U+5585,U+5586,U+5588,U+558b,U+558c,U+558e-5591,U+5593,U+5599,U+559a,U+559f,U+55a5,U+55a6,U+55a8-55ac,U+55ae,U+55b0-55b3,U+55b6,U+55b9,U+55ba,U+55bc-55be,U+55c4,U+55c6,U+55c7,U+55c9,U+55cc-55d2,U+55d4-55db,U+55dd-55df,U+55e1,U+55e3-55e6,U+55ea-55ee,U+55f0-55f3,U+55f5-55f7,U+55fb,U+55fe,U+5600,U+5601; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.62.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+53fb-5400,U+5402,U+5405-5407,U+540b,U+540f,U+5412,U+5414,U+5416,U+5418-541a,U+541d,U+5420-5423,U+5425,U+5429,U+542a,U+542d,U+542e,U+5431-5433,U+5436,U+543d,U+543f,U+5442,U+5443,U+5449,U+544b,U+544c,U+544e,U+5451-5454,U+5456,U+5459,U+545b,U+545c,U+5461,U+5463,U+5464,U+546a-5472,U+5474,U+5476-5478,U+547a,U+547e-5484,U+5486,U+548a,U+548d,U+548e,U+5490,U+5491,U+5494,U+5497-5499,U+549b,U+549d,U+54a1-54a7,U+54a9,U+54ab,U+54ad,U+54b4,U+54b5,U+54b9,U+54bb,U+54be,U+54bf,U+54c2,U+54c3,U+54c9-54cc,U+54cf,U+54d0,U+54d3,U+54d5,U+54d6,U+54d9,U+54da,U+54dc-54de,U+54e2,U+54e7,U+54f3,U+54f4,U+54f8,U+54f9,U+54fd-54ff,U+5501,U+5504-5506,U+550c-550f,U+5511-5514,U+5516,U+5517; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.63.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+52a2,U+52a6,U+52a7,U+52ac,U+52ad,U+52af,U+52b4,U+52b5,U+52b9,U+52bb,U+52bc,U+52be,U+52c1,U+52c5,U+52ca,U+52cd,U+52d0,U+52d6,U+52d7,U+52d9,U+52db,U+52dd,U+52de,U+52e0,U+52e2,U+52e3,U+52e5,U+52e7-52f0,U+52f2,U+52f3,U+52f5-52f9,U+52fb,U+52fc,U+5302,U+5304,U+530b,U+530d,U+530f,U+5310,U+5315,U+531a,U+531c,U+531d,U+5321,U+5323,U+5326,U+532e-5331,U+5338,U+533c-533e,U+5340,U+5344,U+5345,U+534b-534d,U+5350,U+5354,U+5358,U+535d-535f,U+5363,U+5368,U+5369,U+536c,U+536e,U+536f,U+5372,U+5379-537b,U+537d,U+538d,U+538e,U+5390,U+5393,U+5394,U+5396,U+539b-539d,U+53a0,U+53a1,U+53a3-53a5,U+53a9,U+53ad,U+53ae,U+53b0,U+53b2,U+53b3,U+53b5-53b8,U+53bc,U+53be,U+53c1,U+53c3-53c7,U+53ce,U+53cf,U+53d2,U+53d3,U+53d5,U+53da,U+53de,U+53df,U+53e1,U+53e2,U+53e7-53e9,U+53f1,U+53f4,U+53f5,U+53fa; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.64.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+5110,U+5113,U+5115,U+5117,U+5118,U+511a-511c,U+511e,U+511f,U+5121,U+5128,U+512b-512d,U+5131-5135,U+5137-5139,U+513c,U+5140,U+5142,U+5147,U+514c,U+514e-5150,U+5155-5158,U+5162,U+5169,U+5172,U+517f,U+5181-5184,U+5186,U+5187,U+518b,U+518f,U+5191,U+5195-5197,U+519a,U+51a2,U+51a3,U+51a6-51ab,U+51ad,U+51ae,U+51b1,U+51b4,U+51bc,U+51bd,U+51bf,U+51c3,U+51c7,U+51c8,U+51ca,U+51cb,U+51cd,U+51ce,U+51d4,U+51d6,U+51db,U+51dc,U+51e6,U+51e8-51eb,U+51f1,U+51f5,U+51fc,U+51ff,U+5202,U+5205,U+5208,U+520b,U+520d,U+520e,U+5215,U+5216,U+5228,U+522a,U+522c,U+522d,U+5233,U+523c,U+523d,U+523f,U+5240,U+5245,U+5247,U+5249,U+524b,U+524c,U+524e,U+5250,U+525b-525f,U+5261,U+5263,U+5264,U+5270,U+5273,U+5275,U+5277,U+527d,U+527f,U+5281-5285,U+5287,U+5289,U+528b,U+528d,U+528f,U+5291-5293,U+529a; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.65.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+4fe3,U+4fe4,U+4fe6,U+4fe8,U+4feb-4fed,U+4ff3,U+4ff5,U+4ff6,U+4ff8,U+4ffe,U+5001,U+5005,U+5006,U+5009,U+500c,U+500f,U+5013-5018,U+501b-501e,U+5022-5025,U+5027,U+5028,U+502b-502e,U+5030,U+5033,U+5034,U+5036-5039,U+503b,U+5041-5043,U+5045,U+5046,U+5048-504a,U+504c-504e,U+5051,U+5053,U+5055-5057,U+505b,U+505e,U+5060,U+5062,U+5063,U+5067,U+506a,U+506c,U+5070-5072,U+5074,U+5075,U+5078,U+507b,U+507d,U+507e,U+5080,U+5088,U+5089,U+5091,U+5092,U+5095,U+5097-509e,U+50a2,U+50a3,U+50a5-50a7,U+50a9,U+50ad,U+50b3,U+50b5,U+50b7,U+50ba,U+50be,U+50c4,U+50c5,U+50c7,U+50ca,U+50cd,U+50d1,U+50d5,U+50d6,U+50da,U+50de,U+50e5,U+50e6,U+50ec-50ee,U+50f0,U+50f1,U+50f3,U+50f9-50fb,U+50fe-5102,U+5104,U+5106,U+5107,U+5109-510b,U+510d,U+510f; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.66.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+4eb8,U+4eb9,U+4ebb-4ebe,U+4ec2-4ec4,U+4ec8,U+4ec9,U+4ecc,U+4ecf,U+4ed0,U+4ed2,U+4eda,U+4edb,U+4edd-4ee1,U+4ee6-4ee9,U+4eeb,U+4eee,U+4eef,U+4ef3-4ef5,U+4ef8-4efa,U+4efc,U+4f00,U+4f03-4f05,U+4f08,U+4f09,U+4f0b,U+4f0e,U+4f12,U+4f13,U+4f15,U+4f1b,U+4f1d,U+4f21,U+4f22,U+4f25,U+4f27-4f29,U+4f2b-4f2e,U+4f31-4f33,U+4f36,U+4f37,U+4f39,U+4f3e,U+4f40,U+4f41,U+4f43,U+4f47-4f49,U+4f54,U+4f57,U+4f58,U+4f5d,U+4f5e,U+4f61,U+4f62,U+4f64,U+4f65,U+4f67,U+4f6a,U+4f6e,U+4f6f,U+4f72,U+4f74-4f7e,U+4f80-4f82,U+4f84,U+4f89,U+4f8a,U+4f8e-4f98,U+4f9e,U+4fa1,U+4fa5,U+4fa9,U+4faa,U+4fac,U+4fb3,U+4fb6-4fb8,U+4fbd,U+4fc2,U+4fc5,U+4fc6,U+4fcd,U+4fce,U+4fd0,U+4fd1,U+4fd3,U+4fda-4fdc,U+4fdf,U+4fe0,U+4fe2; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.67.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+3127-3129,U+3220-3229,U+3231,U+32a3,U+338e,U+338f,U+339c-339e,U+33c4,U+33d1,U+33d2,U+33d5,U+3434,U+34dc,U+34ee,U+353e,U+355d,U+3566,U+3575,U+3592,U+35a0,U+35a1,U+35ad,U+35ce,U+36a2,U+36ab,U+38a8,U+3dab,U+3de7,U+3deb,U+3e1a,U+3f1b,U+3f6d,U+4495,U+4723,U+48fa,U+4ca3,U+4e02,U+4e04-4e06,U+4e0c,U+4e0f,U+4e15,U+4e17,U+4e1f-4e21,U+4e26,U+4e29,U+4e2c,U+4e2f,U+4e31,U+4e35,U+4e37,U+4e3c,U+4e3f-4e42,U+4e44,U+4e46,U+4e47,U+4e57,U+4e5a-4e5c,U+4e64,U+4e65,U+4e67,U+4e69,U+4e6d,U+4e78,U+4e7f-4e82,U+4e85,U+4e87,U+4e8a,U+4e8d,U+4e93,U+4e96,U+4e98,U+4e99,U+4e9c,U+4e9e-4ea0,U+4ea2,U+4ea3,U+4ea5,U+4eb0,U+4eb1,U+4eb3-4eb6; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.68.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+27e8,U+27e9,U+2ebb,U+3003,U+3005-3007,U+3012,U+3013,U+301d,U+301e,U+3021,U+3023,U+3024,U+3041,U+3043,U+3045,U+3047,U+3049,U+3056,U+3058,U+305c,U+305e,U+3062,U+306c,U+3074,U+3077,U+307a,U+307c,U+307d,U+3080,U+308e,U+3090,U+3091,U+309b,U+309d,U+309e,U+30a5,U+30bc,U+30be,U+30c2,U+30c5,U+30cc,U+30d8,U+30e2,U+30e8,U+30ee,U+30f0-30f2,U+30f4-30f6,U+30fd,U+30fe,U+3105-3126; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.69.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+254b,U+2550,U+2551,U+2554,U+2557,U+255a,U+255b,U+255d,U+255f,U+2560,U+2562,U+2563,U+2565-2567,U+2569,U+256a,U+256c-2572,U+2581-258f,U+2593-2595,U+25a1,U+25b3,U+25bd,U+25ca,U+25cb,U+25e2-25e5,U+2609,U+2640,U+2642; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.70.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+2465-2469,U+2474-249b,U+2500-2509,U+250b-2526,U+2528-2534,U+2536,U+2537,U+253b-2548,U+254a; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.71.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+207f-2083,U+20a6,U+20a8-20ac,U+20b1,U+20b9,U+20ba,U+20bd,U+2105,U+2109,U+2113,U+2116,U+2121,U+2126,U+2196-2199,U+2202,U+2206,U+2208,U+220f,U+2211,U+2212,U+2215,U+221d-2220,U+2223,U+2225,U+2227-222b,U+222e,U+2234-2237,U+223d,U+2248,U+224c,U+2252,U+2260,U+2261,U+2266,U+2267,U+226e,U+226f,U+2295,U+2299,U+22a5,U+22bf,U+2312; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.72.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+1ea0-1ea9,U+1eab-1ead,U+1eaf,U+1eb1,U+1eb3,U+1eb5,U+1eb7,U+1eb9,U+1ebb,U+1ebd,U+1ebe,U+1ec0-1ec3,U+1ec5,U+1ec6,U+1ec9-1ecd,U+1ecf-1ed3,U+1ed5,U+1ed7-1edf,U+1ee1,U+1ee3,U+1ee5-1eeb,U+1eed,U+1eef-1ef1,U+1ef3,U+1ef7,U+1ef9,U+2004-2006,U+2009,U+200a,U+2010,U+2011,U+2015,U+2016,U+201a,U+201e,U+2020,U+2021,U+2025,U+2027,U+2028,U+2030,U+2032,U+2033,U+2035,U+203c,U+2044,U+2060,U+2061,U+2070,U+2074-2078; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.73.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+2bb,U+2bc,U+2c6,U+2c7,U+2c9-2cb,U+2d8-2da,U+2dc,U+2f3,U+302-304,U+306-30a,U+30c,U+323,U+327,U+335,U+338; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.74.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+176-17f,U+192,U+1a0,U+1a1,U+1af,U+1b0,U+1d2,U+1d4,U+1d6,U+1d8,U+1da,U+1dc,U+1e7,U+1e9,U+1f0,U+1f9-1ff,U+219-21b,U+237,U+251,U+259,U+261,U+292; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.75.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+a1-a4,U+a6-a8,U+aa,U+ac,U+af,U+b1,U+b3-b6,U+b8-ba,U+bc-d6,U+d8-de,U+e6,U+eb,U+ee-f0,U+f5,U+f7,U+f8,U+fb,U+fd-100,U+102,U+104-107,U+10d,U+10f-112,U+115,U+117,U+119,U+11b,U+11e,U+11f,U+121,U+123,U+125-127,U+129,U+12a,U+12d,U+12f-13f,U+141,U+142,U+144,U+146,U+14b,U+14c,U+14f-153,U+158-15b,U+15e-160,U+163-165,U+168-16a,U+16d-175; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.76.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+221a,U+2264,U+2464,U+25a0,U+3008,U+4e10,U+512a,U+5152,U+5201,U+5241,U+5352,U+549a,U+54b2,U+54c6,U+54d7,U+54e1,U+5509,U+55c5,U+560e,U+5618,U+565c,U+56bc,U+5716,U+576f,U+5784,U+57a2,U+589f,U+5a20,U+5a25,U+5a29,U+5a34,U+5a7f,U+5ac9,U+5ad6,U+5b09,U+5b5c,U+5bc7,U+5c27,U+5d2d,U+5dcd,U+5f1b,U+5f37,U+604d,U+6055,U+6073,U+60eb,U+61ff,U+620c,U+62c7,U+62ed,U+6320,U+6345,U+6390,U+63b0,U+64ae,U+64c2,U+64d2,U+6556,U+663c,U+667e,U+66d9,U+66f8,U+6756,U+6789,U+689d,U+68f1,U+695e,U+6975,U+6a1f,U+6b0a,U+6b61,U+6b87,U+6c5d,U+6c7e,U+6c92,U+6d31,U+6df9,U+6e0d,U+6e2d,U+6f3e,U+70b3,U+70bd,U+70ca,U+70e8,U+725f,U+72e9,U+733f,U+7396,U+739f,U+7459,U+745a,U+74a7,U+75a1,U+75f0,U+76cf,U+76d4,U+7729,U+77aa,U+77b0,U+77e3,U+780c,U+78d5,U+7941,U+7977,U+797a,U+79c3,U+7a20,U+7a92,U+7b71,U+7bf1,U+7c9f,U+7eb6,U+7eca,U+7ef7,U+7f07,U+7f09,U+7f15,U+7f81,U+7fb9,U+8038,U+8098,U+80b4,U+8110,U+814b,U+814c,U+816e,U+818a,U+8205,U+8235,U+828b,U+82a5,U+82b7,U+82d4,U+82db,U+82df,U+8317,U+8338,U+8385,U+8386,U+83c1,U+83cf,U+8537,U+853b,U+854a,U+8715,U+8783,U+892a,U+8a71,U+8aaa,U+8d58,U+8dbe,U+8f67,U+8fab,U+8fc4,U+8fe6,U+9023,U+9084,U+9091,U+916a,U+91c9,U+91dc,U+94b3,U+9502,U+9523,U+9551,U+956f,U+960e,U+962a,U+962e,U+9647,U+96f3,U+9739,U+97a0,U+97ed,U+983b,U+985e,U+988a,U+9a6f,U+9a8b,U+9ab7,U+9ac5,U+9e25,U+ff06,U+ff14-ff16; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.77.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+161,U+2463,U+25c7,U+25ce,U+3009,U+3016,U+3017,U+4e4d,U+4e53,U+4f5a,U+4f70,U+4fae,U+4fd8,U+4ffa,U+5011,U+501a,U+516e,U+51c4,U+5225,U+5364,U+547b,U+5495,U+54e8,U+54ee,U+5594,U+55d3,U+55dc,U+55fd,U+5662,U+5669,U+566c,U+5742,U+5824,U+5834,U+598a,U+5992,U+59a9,U+5a04,U+5b75,U+5b7d,U+5bc5,U+5c49,U+5c90,U+5e1c,U+5e27,U+5e2b,U+5e37,U+5e90,U+618b,U+61f5,U+620a,U+6273,U+62f7,U+6342,U+6401,U+6402,U+6413,U+6512,U+655b,U+65a7,U+65f1,U+65f7,U+665f,U+6687,U+66a7,U+673d,U+67b8,U+6854,U+68d8,U+68fa,U+696d,U+6a02,U+6a0a,U+6a80,U+6b7c,U+6bd9,U+6c2e,U+6c76,U+6cf8,U+6d4a,U+6d85,U+6e24,U+6e32,U+6ec7,U+6ed5,U+6f88,U+700f,U+701a,U+7078,U+707c,U+70ac,U+70c1,U+7409,U+7422,U+7480,U+74a8,U+752b,U+7574,U+7656,U+7699,U+7737,U+785d,U+78be,U+79b9,U+7a3d,U+7a91,U+7a9f,U+7ae3,U+7b77,U+7c3f,U+7d1a,U+7d50,U+7d93,U+803f,U+8042,U+808b,U+8236,U+82b8,U+82b9,U+82ef,U+8309,U+836b,U+83ef,U+8431,U+85c9,U+865e,U+868c,U+8759,U+8760,U+8845,U+89ba,U+8a2a,U+8c41,U+8cec,U+8d2c,U+8d4e,U+8e66,U+8e6d,U+8eaf,U+902e,U+914b,U+916e,U+919b,U+949b,U+94a0,U+94b0,U+9541,U+9542,U+9556,U+95eb,U+95f5,U+964b,U+968b,U+96cc,U+96cd,U+96cf,U+9704,U+9713,U+9890,U+98a8,U+9985,U+9992,U+9a6d,U+9a81,U+9a86,U+9ab8,U+9ca4,U+9f9a,U+ff02,U+ff1e,U+ff3d; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.78.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+10c,U+203b,U+2265,U+2573,U+25b2,U+3448,U+3449,U+4e1e,U+4e5e,U+4f3a,U+4f5f,U+4fea,U+5026,U+508d,U+5189,U+5254,U+5288,U+52d8,U+52fa,U+5306,U+5308,U+5384,U+53ed,U+543c,U+5450,U+5455,U+5466,U+54c4,U+5578,U+55a7,U+561f,U+5631,U+572d,U+575f,U+57ae,U+57e0,U+5830,U+594e,U+5984,U+5993,U+5bdd,U+5c0d,U+5c7f,U+5c82,U+5e62,U+5ed3,U+5f08,U+607a,U+60bc,U+60df,U+625b,U+6292,U+62e2,U+6363,U+6467,U+6714,U+675e,U+6771,U+67a2,U+67ff,U+6805,U+6813,U+6869,U+68a7,U+68e0,U+6930,U+6986,U+69a8,U+69df,U+6a44,U+6a5f,U+6c13,U+6c1f,U+6c22,U+6c2f,U+6c40,U+6c81,U+6c9b,U+6ca5,U+6da4,U+6df3,U+6e85,U+6eba,U+6f13,U+6f33,U+6f62,U+715e,U+72c4,U+73d1,U+73fe,U+7405,U+7455,U+7487,U+7578,U+75a4,U+75eb,U+7693,U+7738,U+7741,U+776b,U+7792,U+77a7,U+77a9,U+77b3,U+788c,U+7984,U+79a7,U+79e4,U+7a1a,U+7a57,U+7aa6,U+7b0b,U+7b5d,U+7c27,U+7c7d,U+7caa,U+7cd9,U+7cef,U+7eda,U+7ede,U+7f24,U+8046,U+80fa,U+81b3,U+81fb,U+8207,U+8258,U+8335,U+8339,U+8354,U+840e,U+85b0,U+85fb,U+8695,U+86aa,U+8717,U+8749,U+874c,U+8996,U+89bd,U+89c5,U+8bdb,U+8bf5,U+8c5a,U+8d3f,U+8d9f,U+8e44,U+8fed,U+9005,U+9019,U+904e,U+9082,U+90af,U+90dd,U+90e1,U+90f8,U+9119,U+916f,U+9176,U+949e,U+94a7,U+94c2,U+9525,U+9580,U+95dc,U+96e2,U+96fb,U+9a7c,U+9a7f,U+9b41,U+9ca8,U+9cc4,U+9cde,U+9e92,U+9ede,U+ff10,U+ff13,U+ff3b; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.79.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+60,U+2606,U+3014,U+3015,U+309c,U+33a1,U+4e52,U+4ec6,U+4f86,U+4f8d,U+4fde,U+4fef,U+500b,U+502a,U+515c,U+518a,U+51a5,U+51f3,U+5243,U+52c9,U+52d5,U+53a2,U+53ee,U+54ce,U+54fa,U+54fc,U+5580,U+5587,U+563f,U+56da,U+5792,U+5815,U+5960,U+59d7,U+5a1f,U+5b78,U+5b9b,U+5be1,U+5c4e,U+5c51,U+5c6f,U+5c9a,U+5cfb,U+5d16,U+5ed6,U+5f27,U+5f6a,U+5f6c,U+603c,U+609a,U+6168,U+61c8,U+6236,U+62d0,U+62f1,U+62fd,U+631a,U+6328,U+632b,U+6346,U+638f,U+63a0,U+63c9,U+655e,U+6590,U+6615,U+6627,U+66ae,U+66e6,U+66f0,U+6703,U+67da,U+67ec,U+6816,U+6893,U+68ad,U+68f5,U+6977,U+6984,U+69db,U+6b72,U+6bb7,U+6ce3,U+6cfb,U+6d47,U+6da1,U+6dc4,U+6e43,U+6eaf,U+6eff,U+6f8e,U+7011,U+7063,U+7076,U+7096,U+70ba,U+70db,U+70ef,U+7119,U+711a,U+7172,U+718f,U+7194,U+727a,U+72d9,U+72ed,U+7325,U+73ae,U+73ba,U+73c0,U+7410,U+7426,U+7554,U+7576,U+75ae,U+75b9,U+762b,U+766b,U+7682,U+7750,U+7779,U+7784,U+77eb,U+77ee,U+78f7,U+79e9,U+7a79,U+7b1b,U+7b28,U+7bf7,U+7db2,U+7ec5,U+7eee,U+7f14,U+7f1a,U+7fe1,U+8087,U+809b,U+8231,U+830e,U+835f,U+83e9,U+849c,U+851a,U+868a,U+8718,U+874e,U+8822,U+8910,U+8944,U+8a3b,U+8bb6,U+8bbc,U+8d50,U+8e72,U+8f9c,U+900d,U+904b,U+9063,U+90a2,U+90b9,U+94f2,U+952f,U+9576,U+9577,U+9593,U+95f8,U+961c,U+9631,U+969b,U+96a7,U+96c1,U+9716,U+9761,U+97ad,U+97e7,U+98a4,U+997a,U+9a73,U+9b44,U+9e3d,U+9ecf,U+9ed4,U+ff11,U+ff12; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.80.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+2193,U+2462,U+4e19,U+4e2b,U+4e36,U+4ea8,U+4ed1,U+4ed7,U+4f51,U+4f63,U+4f83,U+50e7,U+5112,U+5167,U+51a4,U+51b6,U+5239,U+5265,U+532a,U+5351,U+537f,U+5401,U+548f,U+5492,U+54af,U+54b3,U+54bd,U+54d1,U+54df,U+554f,U+5564,U+5598,U+5632,U+56a3,U+56e7,U+574e,U+575d,U+575e,U+57d4,U+584c,U+58e4,U+5937,U+5955,U+5a05,U+5a49,U+5ac2,U+5bb0,U+5c39,U+5c61,U+5d0e,U+5de9,U+5e9a,U+5eb8,U+5f0a,U+5f13,U+5f8c,U+608d,U+611b,U+6127,U+62a0,U+634f,U+635e,U+63fd,U+6577,U+658b,U+65bc,U+660a,U+6643,U+6656,U+6760,U+67af,U+67c4,U+67e0,U+6817,U+68cd,U+690e,U+6960,U+69b4,U+6a71,U+6aac,U+6b67,U+6bb4,U+6c55,U+6c70,U+6c82,U+6ca6,U+6cb8,U+6cbe,U+6e9c,U+6ede,U+6ee5,U+6f4d,U+6f84,U+6f9c,U+7115,U+7121,U+722a,U+7261,U+7272,U+7280,U+72f8,U+7504,U+754f,U+75d8,U+767c,U+76ef,U+778e,U+77bb,U+77f6,U+786b,U+78b1,U+7948,U+7985,U+79be,U+7a83,U+7a8d,U+7eac,U+7eef,U+7ef8,U+7efd,U+7f00,U+803d,U+8086,U+810a,U+8165,U+819d,U+81a8,U+8214,U+829c,U+831c,U+8328,U+832b,U+8367,U+83e0,U+83f1,U+8403,U+846b,U+8475,U+84b2,U+8513,U+8574,U+85af,U+86d9,U+86db,U+8acb,U+8bbd,U+8be0,U+8be1,U+8c0e,U+8d29,U+8d63,U+8e81,U+8f7f,U+9032,U+9042,U+90b1,U+90b5,U+9165,U+9175,U+94a6,U+94c5,U+950c,U+9540,U+9610,U+9699,U+96c7,U+973e,U+978d,U+97ec,U+97f6,U+984c,U+987d,U+9882,U+9965,U+996a,U+9972,U+9a8f,U+9ad3,U+9ae6,U+9cb8,U+9edb,U+ff05,U+ff0b; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.81.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+5e,U+2190,U+250a,U+25bc,U+25cf,U+300f,U+4e56,U+4ea9,U+4f3d,U+4f6c,U+4f88,U+4fa8,U+4fcf,U+5029,U+5188,U+51f9,U+5203,U+524a,U+5256,U+529d,U+5375,U+53db,U+541f,U+5435,U+5457,U+548b,U+54b1,U+54c7,U+54d4,U+54e9,U+556a,U+5589,U+55bb,U+55e8,U+55ef,U+563b,U+566a,U+576a,U+58f9,U+598d,U+599e,U+59a8,U+5a9b,U+5ae3,U+5bde,U+5c4c,U+5c60,U+5d1b,U+5deb,U+5df7,U+5e18,U+5f26,U+5f64,U+601c,U+6084,U+60e9,U+614c,U+61be,U+6208,U+621a,U+6233,U+6254,U+62d8,U+62e6,U+62ef,U+6323,U+632a,U+633d,U+6361,U+6380,U+6405,U+640f,U+6614,U+6642,U+6657,U+67a3,U+6808,U+683d,U+6850,U+6897,U+68b3,U+68b5,U+68d5,U+6a58,U+6b47,U+6b6a,U+6c28,U+6c90,U+6ca7,U+6cf5,U+6d51,U+6da9,U+6dc7,U+6dd1,U+6e0a,U+6e5b,U+6f47,U+6f6d,U+70ad,U+70f9,U+710a,U+7130,U+71ac,U+745f,U+7476,U+7490,U+7529,U+7538,U+75d2,U+7696,U+76b1,U+76fc,U+777f,U+77dc,U+789f,U+795b,U+79bd,U+79c9,U+7a3b,U+7a46,U+7aa5,U+7ad6,U+7ca5,U+7cb9,U+7cdf,U+7d6e,U+7f06,U+7f38,U+7fa1,U+7fc1,U+8015,U+803b,U+80a2,U+80aa,U+8116,U+813e,U+82ad,U+82bd,U+8305,U+8346,U+846c,U+8549,U+859b,U+8611,U+8680,U+87f9,U+884d,U+8877,U+888d,U+88d4,U+898b,U+8a79,U+8a93,U+8c05,U+8c0d,U+8c26,U+8d1e,U+8d31,U+8d81,U+8e22,U+8f90,U+8f96,U+90ca,U+916c,U+917f,U+9187,U+918b,U+9499,U+94a9,U+9524,U+958b,U+9600,U+9640,U+96b6,U+96ef,U+98d9,U+9976,U+997f,U+9a74,U+9a84,U+9c8d,U+9e26,U+9e9f,U+ff0f; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.82.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+b0,U+2191,U+2460,U+2461,U+25c6,U+300e,U+4e1b,U+4e7e,U+4ed5,U+4ef2,U+4f10,U+4f1e,U+4f50,U+4fa6,U+4faf,U+5021,U+50f5,U+5179,U+5180,U+51d1,U+522e,U+52a3,U+52c3,U+52cb,U+5300,U+5319,U+5320,U+5349,U+5395,U+53d9,U+541e,U+5428,U+543e,U+54c0,U+54d2,U+570b,U+5858,U+58f6,U+5974,U+59a5,U+59e8,U+59ec,U+5a36,U+5a9a,U+5ab3,U+5b99,U+5baa,U+5ce1,U+5d14,U+5d4c,U+5dc5,U+5de2,U+5e99,U+5e9e,U+5f18,U+5f66,U+5f70,U+6070,U+60d5,U+60e7,U+6101,U+611a,U+6241,U+6252,U+626f,U+6296,U+62bc,U+62cc,U+63a9,U+644a,U+6454,U+64a9,U+64b8,U+6500,U+6572,U+65a5,U+65a9,U+65ec,U+660f,U+6749,U+6795,U+67ab,U+68da,U+6912,U+6bbf,U+6bef,U+6cab,U+6cca,U+6ccc,U+6cfc,U+6d3d,U+6d78,U+6dee,U+6e17,U+6e34,U+6e83,U+6ea2,U+6eb6,U+6f20,U+6fa1,U+707f,U+70d8,U+70eb,U+714c,U+714e,U+7235,U+7239,U+73ca,U+743c,U+745c,U+7624,U+763e,U+76f2,U+77db,U+77e9,U+780d,U+7838,U+7845,U+78ca,U+796d,U+7a84,U+7aed,U+7b3c,U+7eb2,U+7f05,U+7f20,U+7f34,U+7f62,U+7fc5,U+7fd8,U+7ff0,U+800d,U+8036,U+80ba,U+80be,U+80c0,U+80c1,U+8155,U+817a,U+8180,U+81e3,U+8206,U+8247,U+8270,U+8299,U+8304,U+8393,U+83b9,U+83ca,U+840d,U+8427,U+8469,U+8471,U+84c4,U+84ec,U+853d,U+8681,U+8682,U+8721,U+8854,U+88d5,U+88f9,U+8bc0,U+8c0a,U+8c29,U+8c2d,U+8d41,U+8dea,U+8eb2,U+8f9f,U+903b,U+903e,U+9102,U+9493,U+94a5,U+94f8,U+95ef,U+95f7,U+9706,U+9709,U+9774,U+9887,U+98a0,U+9e64,U+9f9f; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.83.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+2103,U+4e18,U+4e27,U+4e28,U+4e38,U+4e59,U+4e8f,U+4ead,U+4ec7,U+4fe9,U+503a,U+5085,U+5146,U+51af,U+51f8,U+52ab,U+5339,U+535c,U+5378,U+538c,U+5398,U+53f9,U+5415,U+5475,U+54aa,U+54ac,U+54b8,U+5582,U+5760,U+5764,U+57cb,U+5835,U+5885,U+5951,U+5983,U+59da,U+5a77,U+5b5d,U+5b5f,U+5bb5,U+5bc2,U+5be8,U+5bfa,U+5c2c,U+5c34,U+5c41,U+5c48,U+5c65,U+5cad,U+5e06,U+5e42,U+5ef7,U+5f17,U+5f25,U+5f6d,U+5f79,U+6028,U+6064,U+6068,U+606d,U+607c,U+6094,U+6109,U+6124,U+6247,U+626d,U+6291,U+629a,U+62ac,U+62b9,U+62fe,U+6324,U+6349,U+6367,U+6398,U+6495,U+64a4,U+64b0,U+64bc,U+64ce,U+658c,U+65ed,U+6602,U+6674,U+6691,U+66a8,U+674f,U+679a,U+67ef,U+67f4,U+680b,U+6876,U+68a8,U+6a59,U+6a61,U+6b20,U+6bc5,U+6d12,U+6d46,U+6d8c,U+6dc0,U+6e14,U+6e23,U+6f06,U+7164,U+716e,U+7199,U+71e5,U+72ac,U+742a,U+755c,U+75ab,U+75b2,U+75f4,U+7897,U+78b3,U+78c5,U+7978,U+79fd,U+7a74,U+7b4b,U+7b5b,U+7ece,U+7ed2,U+7ee3,U+7ef3,U+7f50,U+7f55,U+7f9e,U+7fe0,U+809d,U+8106,U+814a,U+8154,U+817b,U+818f,U+81c2,U+81ed,U+821f,U+82a6,U+82d1,U+8302,U+83c7,U+845b,U+848b,U+84c9,U+85e4,U+86ee,U+8700,U+8774,U+886c,U+8881,U+8c1c,U+8c79,U+8d2a,U+8d3c,U+8eba,U+8f70,U+8fa9,U+8fb1,U+900a,U+9017,U+901d,U+9022,U+906e,U+946b,U+94dd,U+94ed,U+953b,U+95fa,U+95fd,U+964c,U+96c0,U+971c,U+971e,U+9753,U+9756,U+97e6,U+9881,U+9b4f,U+9e2d,U+9f0e,U+ff5c; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.84.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+24,U+4e08,U+4e43,U+4e4f,U+4ef0,U+4f2a,U+507f,U+50ac,U+50bb,U+5151,U+51bb,U+51f6,U+51fd,U+5272,U+52fe,U+5362,U+53c9,U+53d4,U+53e0,U+543b,U+54f2,U+5507,U+5524,U+558a,U+55b5,U+561b,U+56ca,U+5782,U+57c3,U+5893,U+5915,U+5949,U+5962,U+59ae,U+59dc,U+59fb,U+5bd3,U+5c38,U+5cb3,U+5d07,U+5d29,U+5de1,U+5dfe,U+5e15,U+5eca,U+5f2f,U+5f7c,U+5fcc,U+6021,U+609f,U+60f9,U+6108,U+6148,U+6155,U+6170,U+61d2,U+6251,U+629b,U+62ab,U+62e8,U+62f3,U+6321,U+6350,U+6566,U+659c,U+65e8,U+6635,U+6655,U+6670,U+66f9,U+6734,U+679d,U+6851,U+6905,U+6b49,U+6b96,U+6c1b,U+6c41,U+6c6a,U+6c83,U+6cf3,U+6d9b,U+6dcb,U+6e1d,U+6e20,U+6e21,U+6eaa,U+6ee4,U+6ee9,U+6f58,U+70e4,U+722c,U+7262,U+7267,U+72b9,U+72e0,U+72ee,U+72f1,U+7334,U+73ab,U+7433,U+7470,U+758f,U+75d5,U+764c,U+7686,U+76c6,U+76fe,U+7720,U+77e2,U+7802,U+7816,U+788d,U+7891,U+7a00,U+7a9d,U+7b52,U+7bad,U+7c98,U+7cca,U+7eba,U+7eea,U+7ef5,U+7f1d,U+7f69,U+806a,U+809a,U+80bf,U+80c3,U+81c0,U+820c,U+82ac,U+82af,U+82cd,U+82d7,U+838e,U+839e,U+8404,U+84b8,U+852c,U+8587,U+85aa,U+8650,U+8679,U+86c7,U+8702,U+87ba,U+886b,U+8870,U+8c10,U+8c23,U+8c6b,U+8d3e,U+8d4b,U+8d4c,U+8d64,U+8d6b,U+8d74,U+8e29,U+8f69,U+8f74,U+8fb0,U+8fdf,U+901b,U+9038,U+9093,U+90aa,U+9171,U+9489,U+94ae,U+94c3,U+9508,U+9510,U+9601,U+9614,U+9675,U+97f5,U+9888,U+98d8,U+9971,U+9aa4,U+9e3f,U+9e45,U+9e4f,U+9e70,U+9f7f; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.85.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+a5,U+2022,U+2192,U+2605,U+4e11,U+4e22,U+4e32,U+4f0d,U+4f0f,U+4f69,U+4ff1,U+50b2,U+5154,U+51dd,U+51f0,U+5211,U+5269,U+533f,U+5366,U+5367,U+5389,U+5413,U+5440,U+5446,U+5561,U+574a,U+5751,U+57ab,U+5806,U+5821,U+582a,U+58f3,U+5938,U+5948,U+5978,U+59d1,U+5a03,U+5a07,U+5ac1,U+5acc,U+5ae9,U+5bb4,U+5bc4,U+5c3f,U+5e3d,U+5e7d,U+5f92,U+5faa,U+5fe0,U+5ffd,U+6016,U+60a0,U+60dc,U+60e8,U+614e,U+6212,U+6284,U+62c6,U+62d3,U+62d4,U+63f4,U+642c,U+6478,U+6491,U+6492,U+64e6,U+6591,U+65a4,U+664b,U+6735,U+6746,U+67f1,U+67f3,U+6842,U+68af,U+68c9,U+68cb,U+6a31,U+6b3a,U+6bc1,U+6c0f,U+6c27,U+6c57,U+6cc4,U+6ce5,U+6d2a,U+6d66,U+6d69,U+6daf,U+6e58,U+6ecb,U+6ef4,U+707e,U+7092,U+70ab,U+71d5,U+7275,U+7384,U+73b2,U+7434,U+74e6,U+74f7,U+75bc,U+76c8,U+76d0,U+7709,U+77ac,U+7855,U+78a7,U+78c1,U+7a77,U+7b79,U+7c92,U+7cae,U+7cd5,U+7ea4,U+7eb5,U+7ebd,U+7f5a,U+7fd4,U+7ffc,U+8083,U+8096,U+80a0,U+80d6,U+80de,U+8102,U+8109,U+810f,U+8179,U+8292,U+82b3,U+8352,U+8361,U+83cc,U+841d,U+8461,U+8482,U+8521,U+857e,U+866b,U+8776,U+8896,U+889c,U+88f8,U+8a9e,U+8bc8,U+8bf8,U+8c0b,U+8c28,U+8d2b,U+8d2f,U+8d37,U+8d3a,U+8d54,U+8dc3,U+8dcc,U+8df5,U+8e0f,U+8e48,U+8f86,U+8f88,U+8f9e,U+8fc1,U+8fc8,U+8feb,U+9065,U+90a6,U+90bb,U+90c1,U+94dc,U+9521,U+9676,U+96d5,U+970d,U+9897,U+997c,U+9a70,U+9a76,U+9a9a,U+9ad4,U+9e23,U+9e7f,U+9f3b,U+ffe5; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.86.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+300c,U+300d,U+4e54,U+4e58,U+4e95,U+4ec1,U+4f2f,U+4f38,U+4fa3,U+4fca,U+503e,U+5141,U+5144,U+517c,U+51cc,U+51ed,U+5242,U+52b2,U+52d2,U+52e4,U+540a,U+5439,U+5448,U+5496,U+54ed,U+5565,U+5761,U+5766,U+58ee,U+593a,U+594b,U+594f,U+5954,U+5996,U+59c6,U+59ff,U+5b64,U+5bff,U+5c18,U+5c1d,U+5c97,U+5ca9,U+5cb8,U+5e9f,U+5ec9,U+5f04,U+5f7b,U+5fa1,U+5fcd,U+6012,U+60a6,U+60ac,U+60b2,U+60ef,U+626e,U+6270,U+6276,U+62d6,U+62dc,U+6316,U+632f,U+633a,U+6355,U+63aa,U+6447,U+649e,U+64c5,U+654c,U+65c1,U+65cb,U+65e6,U+6606,U+6731,U+675c,U+67cf,U+67dc,U+6846,U+6b8b,U+6beb,U+6c61,U+6c88,U+6cbf,U+6cdb,U+6cea,U+6d45,U+6d53,U+6d74,U+6d82,U+6da8,U+6db5,U+6deb,U+6eda,U+6ee8,U+6f0f,U+706d,U+708e,U+70ae,U+70bc,U+70c2,U+70e6,U+7237,U+7238,U+72fc,U+730e,U+731b,U+739b,U+73bb,U+7483,U+74dc,U+74f6,U+7586,U+7626,U+775b,U+77ff,U+788e,U+78b0,U+7956,U+7965,U+79e6,U+7af9,U+7bee,U+7c97,U+7eb1,U+7eb7,U+7ed1,U+7ed5,U+7f6a,U+7f72,U+7fbd,U+8017,U+808c,U+80a9,U+80c6,U+80ce,U+8150,U+8170,U+819c,U+820d,U+8230,U+8239,U+827e,U+8377,U+8389,U+83b2,U+8428,U+8463,U+867e,U+88c2,U+88d9,U+8986,U+8bca,U+8bde,U+8c13,U+8c8c,U+8d21,U+8d24,U+8d56,U+8d60,U+8d8b,U+8db4,U+8e2a,U+8f68,U+8f89,U+8f9b,U+8fa8,U+8fbd,U+9003,U+90ce,U+90ed,U+9189,U+94bb,U+9505,U+95f9,U+963b,U+9655,U+966a,U+9677,U+96fe,U+9896,U+99a8,U+9a71,U+9a82,U+9a91,U+9b45,U+9ece,U+9f20,U+ff0d; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.87.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+4e4c,U+4e88,U+4ea1,U+4ea6,U+4ed3,U+4ed4,U+4eff,U+4f30,U+4fa7,U+4fc4,U+4fd7,U+500d,U+504f,U+5076,U+5077,U+517d,U+5192,U+51c9,U+51ef,U+5238,U+5251,U+526a,U+52c7,U+52df,U+52ff,U+53a6,U+53a8,U+53ec,U+5410,U+559d,U+55b7,U+5634,U+573e,U+5783,U+585e,U+586b,U+58a8,U+5999,U+59d3,U+5a1c,U+5a46,U+5b54,U+5b55,U+5b85,U+5b8b,U+5b8f,U+5bbf,U+5bd2,U+5c16,U+5c24,U+5e05,U+5e45,U+5e7c,U+5e84,U+5f03,U+5f1f,U+5f31,U+5f84,U+5f90,U+5fbd,U+5fc6,U+5fd9,U+5fe7,U+6052,U+6062,U+6089,U+60a3,U+60d1,U+6167,U+622a,U+6234,U+624e,U+6269,U+626c,U+62b5,U+62d2,U+6325,U+63e1,U+643a,U+6446,U+6562,U+656c,U+65e2,U+65fa,U+660c,U+6628,U+6652,U+6668,U+6676,U+66fc,U+66ff,U+6717,U+676d,U+67aa,U+67d4,U+6843,U+6881,U+68d2,U+695a,U+69fd,U+6a2a,U+6b8a,U+6c60,U+6c64,U+6c9f,U+6caa,U+6cc9,U+6ce1,U+6cfd,U+6d1b,U+6d1e,U+6d6e,U+6de1,U+6e10,U+6e7f,U+6f5c,U+704c,U+7070,U+7089,U+70b8,U+718a,U+71c3,U+723d,U+732a,U+73cd,U+7518,U+756a,U+75af,U+75be,U+75c7,U+76d2,U+76d7,U+7763,U+78e8,U+795d,U+79df,U+7c4d,U+7d2f,U+7ee9,U+7f13,U+7f8a,U+8000,U+8010,U+80af,U+80f6,U+80f8,U+8212,U+8273,U+82f9,U+83ab,U+83b1,U+83f2,U+8584,U+871c,U+8861,U+888b,U+88c1,U+88e4,U+8bd1,U+8bf1,U+8c31,U+8d5a,U+8d75,U+8d76,U+8de8,U+8f85,U+8fa3,U+8fc5,U+9006,U+903c,U+904d,U+9075,U+9178,U+9274,U+950b,U+9526,U+95ea,U+9636,U+9686,U+978b,U+987f,U+9a7e,U+9b42,U+9e1f,U+9ea6,U+9f13,U+9f84,U+ff5e; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.88.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+23,U+3d,U+4e01,U+4e39,U+4e73,U+4ecd,U+4ed9,U+4eea,U+4f0a,U+4f1f,U+4f5b,U+4fa0,U+4fc3,U+501f,U+50a8,U+515a,U+5175,U+51a0,U+51c0,U+51e1,U+51e4,U+5200,U+520a,U+5224,U+523a,U+52aa,U+52b1,U+52b3,U+5348,U+5353,U+5360,U+5371,U+5377,U+539a,U+541b,U+5434,U+547c,U+54e6,U+5510,U+5531,U+5609,U+56f0,U+56fa,U+5733,U+574f,U+5851,U+5854,U+5899,U+58c1,U+592e,U+5939,U+5976,U+5986,U+59bb,U+5a18,U+5a74,U+5b59,U+5b87,U+5b97,U+5ba0,U+5bab,U+5bbd,U+5bbe,U+5bf8,U+5c0a,U+5c3a,U+5c4a,U+5e16,U+5e1d,U+5e2d,U+5e8a,U+6015,U+602a,U+6050,U+6069,U+6162,U+61c2,U+6293,U+6297,U+62b1,U+62bd,U+62df,U+62fc,U+6302,U+635f,U+638c,U+63ed,U+6458,U+6469,U+6563,U+6620,U+6653,U+6696,U+6697,U+66dd,U+675f,U+676f,U+6770,U+67d0,U+67d3,U+684c,U+6865,U+6885,U+68b0,U+68ee,U+690d,U+6b23,U+6b32,U+6bd5,U+6c89,U+6d01,U+6d25,U+6d89,U+6da6,U+6db2,U+6df7,U+6ed1,U+6f02,U+70c8,U+70df,U+70e7,U+7126,U+7236,U+7259,U+731c,U+745e,U+74e3,U+751a,U+751c,U+7532,U+7545,U+75db,U+7761,U+7a0d,U+7b51,U+7ca4,U+7cd6,U+7d2b,U+7ea0,U+7eb9,U+7ed8,U+7f18,U+7f29,U+8033,U+804a,U+80a4,U+80a5,U+80e1,U+817f,U+829d,U+82e6,U+8336,U+840c,U+8499,U+864e,U+8651,U+865a,U+88ad,U+89e6,U+8bd7,U+8bfa,U+8c37,U+8d25,U+8d38,U+8ddd,U+8fea,U+9010,U+9012,U+906d,U+907f,U+9080,U+90d1,U+9177,U+91ca,U+94fa,U+9501,U+9634,U+9635,U+9694,U+9707,U+9738,U+9769,U+9a7b,U+9a97,U+9aa8,U+9b3c,U+9c81,U+9ed8; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.89.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+26,U+3c,U+d7,U+4e4e,U+4e61,U+4e71,U+4ebf,U+4ee4,U+4f26,U+5012,U+51ac,U+51b0,U+51b2,U+51b7,U+5218,U+521a,U+5220,U+5237,U+523b,U+526f,U+5385,U+53bf,U+53e5,U+53eb,U+53f3,U+53f6,U+5409,U+5438,U+54c8,U+54e5,U+552f,U+5584,U+5706,U+5723,U+5750,U+575a,U+5987,U+5988,U+59b9,U+59d0,U+59d4,U+5b88,U+5b9c,U+5bdf,U+5bfb,U+5c01,U+5c04,U+5c3e,U+5c4b,U+5c4f,U+5c9b,U+5cf0,U+5ddd,U+5de6,U+5de8,U+5e01,U+5e78,U+5e7b,U+5e9c,U+5ead,U+5ef6,U+5f39,U+5fd8,U+6000,U+6025,U+604b,U+6076,U+613f,U+6258,U+6263,U+6267,U+6298,U+62a2,U+62e5,U+62ec,U+6311,U+6377,U+6388,U+6389,U+63a2,U+63d2,U+641e,U+642d,U+654f,U+6551,U+6597,U+65cf,U+65d7,U+65e7,U+6682,U+66f2,U+671d,U+672b,U+6751,U+6768,U+6811,U+6863,U+6982,U+6bd2,U+6cf0,U+6d0b,U+6d17,U+6d59,U+6dd8,U+6dfb,U+6e7e,U+6f6e,U+6fb3,U+706f,U+719f,U+72af,U+72d0,U+72d7,U+732b,U+732e,U+7389,U+73e0,U+7530,U+7687,U+76d6,U+76db,U+7840,U+786c,U+79cb,U+79d2,U+7a0e,U+7a33,U+7a3f,U+7a97,U+7ade,U+7adf,U+7b26,U+7e41,U+7ec3,U+7f3a,U+8089,U+80dc,U+811a,U+8131,U+8138,U+821e,U+8349,U+83dc,U+8457,U+867d,U+86cb,U+8a89,U+8ba8,U+8bad,U+8bef,U+8bfe,U+8c6a,U+8d1d,U+8d4f,U+8d62,U+8dd1,U+8df3,U+8f6e,U+8ff9,U+900f,U+9014,U+9057,U+9192,U+91ce,U+9488,U+94a2,U+9547,U+955c,U+95f2,U+9644,U+964d,U+96c4,U+96c5,U+96e8,U+96f6,U+96f7,U+9732,U+9759,U+9760,U+987a,U+989c,U+9910,U+996d,U+996e,U+9b54,U+9e21,U+9ebb,U+9f50; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.90.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+7e,U+2026,U+4e03,U+4e25,U+4e30,U+4e34,U+4e45,U+4e5d,U+4e89,U+4eae,U+4ed8,U+4f11,U+4f19,U+4f24,U+4f34,U+4f59,U+4f73,U+4f9d,U+4fb5,U+5047,U+505c,U+5170,U+519c,U+51cf,U+5267,U+5356,U+5374,U+5382,U+538b,U+53e6,U+5426,U+542b,U+542f,U+5462,U+5473,U+554a,U+5566,U+5708,U+571f,U+5757,U+57df,U+57f9,U+5802,U+590f,U+591c,U+591f,U+592b,U+5965,U+5979,U+5a01,U+5a5a,U+5b69,U+5b81,U+5ba1,U+5ba3,U+5c3c,U+5c42,U+5c81,U+5de7,U+5dee,U+5e0c,U+5e10,U+5e55,U+5e86,U+5e8f,U+5ea7,U+5f02,U+5f52,U+5f81,U+5ff5,U+60ca,U+60e0,U+6279,U+62c5,U+62ff,U+63cf,U+6444,U+64cd,U+653b,U+65bd,U+65e9,U+665a,U+66b4,U+66fe,U+6728,U+6740,U+6742,U+677e,U+67b6,U+680f,U+68a6,U+68c0,U+699c,U+6b4c,U+6b66,U+6b7b,U+6bcd,U+6bdb,U+6c38,U+6c47,U+6c49,U+6cb3,U+6cb9,U+6ce2,U+6d32,U+6d3e,U+6d4f,U+6e56,U+6fc0,U+7075,U+7206,U+725b,U+72c2,U+73ed,U+7565,U+7591,U+7597,U+75c5,U+76ae,U+76d1,U+76df,U+7834,U+7968,U+7981,U+79c0,U+7a7f,U+7a81,U+7ae5,U+7b14,U+7c89,U+7d27,U+7eaf,U+7eb3,U+7eb8,U+7ec7,U+7ee7,U+7eff,U+7f57,U+7ffb,U+805a,U+80a1,U+822c,U+82cf,U+82e5,U+8363,U+836f,U+84dd,U+878d,U+8840,U+8857,U+8863,U+8865,U+8b66,U+8bb2,U+8bda,U+8c01,U+8c08,U+8c46,U+8d1f,U+8d35,U+8d5b,U+8d5e,U+8da3,U+8ddf,U+8f93,U+8fdd,U+8ff0,U+8ff7,U+8ffd,U+9000,U+9047,U+9152,U+949f,U+94c1,U+94f6,U+9646,U+9648,U+9669,U+969c,U+96ea,U+97e9,U+987b,U+987e,U+989d,U+9970,U+9986,U+9c7c,U+9c9c; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.91.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+25,U+4e14,U+4e1d,U+4e3d,U+4e49,U+4e60,U+4e9a,U+4eb2,U+4ec5,U+4efd,U+4f3c,U+4f4f,U+4f8b,U+4fbf,U+5019,U+5145,U+514b,U+516b,U+516d,U+5174,U+5178,U+517b,U+5199,U+519b,U+51b3,U+51b5,U+5207,U+5212,U+5219,U+521d,U+52bf,U+533b,U+5343,U+5347,U+534a,U+536b,U+5370,U+53e4,U+53f2,U+5403,U+542c,U+547d,U+54a8,U+54cd,U+54ea,U+552e,U+56f4,U+5747,U+575b,U+5883,U+589e,U+5931,U+5947,U+5956,U+5957,U+5a92,U+5b63,U+5b83,U+5ba4,U+5bb3,U+5bcc,U+5c14,U+5c1a,U+5c3d,U+5c40,U+5c45,U+5c5e,U+5df4,U+5e72,U+5e95,U+5f80,U+5f85,U+5fb7,U+5fd7,U+601d,U+626b,U+627f,U+62c9,U+62cd,U+6309,U+63a7,U+6545,U+65ad,U+65af,U+65c5,U+666e,U+667a,U+670b,U+671b,U+674e,U+677f,U+6781,U+6790,U+6797,U+6821,U+6838,U+6839,U+697c,U+6b27,U+6b62,U+6bb5,U+6c7d,U+6c99,U+6d4e,U+6d6a,U+6e29,U+6e2f,U+6ee1,U+6f14,U+6f2b,U+72b6,U+72ec,U+7387,U+7533,U+753b,U+76ca,U+76d8,U+7701,U+773c,U+77ed,U+77f3,U+7814,U+793c,U+79bb,U+79c1,U+79d8,U+79ef,U+79fb,U+7a76,U+7b11,U+7b54,U+7b56,U+7b97,U+7bc7,U+7c73,U+7d20,U+7eaa,U+7ec8,U+7edd,U+7eed,U+7efc,U+7fa4,U+804c,U+8058,U+80cc,U+8111,U+817e,U+826f,U+8303,U+843d,U+89c9,U+89d2,U+8ba2,U+8bbf,U+8bc9,U+8bcd,U+8be6,U+8c22,U+8c61,U+8d22,U+8d26,U+8d27,U+8d8a,U+8f6f,U+8f7b,U+8f83,U+8f91,U+8fb9,U+8fd4,U+8fdc,U+9002,U+94b1,U+9519,U+95ed,U+961f,U+9632,U+9633,U+963f,U+968f,U+9690,U+96be,U+9876,U+9884,U+98de,U+9988,U+9999,U+9ec4,U+ff1b; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.92.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+2b,U+40,U+3000,U+300a,U+300b,U+4e16,U+4e66,U+4e70,U+4e91,U+4e92,U+4e94,U+4e9b,U+4ec0,U+4eca,U+4f01,U+4f17,U+4f18,U+4f46,U+4f4e,U+4f9b,U+4fee,U+503c,U+5065,U+50cf,U+513f,U+5148,U+518d,U+51c6,U+51e0,U+5217,U+529e,U+529f,U+5341,U+534f,U+5361,U+5386,U+53c2,U+53c8,U+53cc,U+53d7,U+53d8,U+5404,U+5411,U+5417,U+5427,U+5468,U+559c,U+5668,U+56e0,U+56e2,U+56ed,U+5740,U+57fa,U+58eb,U+5904,U+592a,U+59cb,U+5a31,U+5b58,U+5b9d,U+5bc6,U+5c71,U+5dde,U+5df1,U+5e08,U+5e26,U+5e2e,U+5e93,U+5e97,U+5eb7,U+5f15,U+5f20,U+5f3a,U+5f62,U+5f69,U+5f88,U+5f8b,U+5fc5,U+600e,U+620f,U+6218,U+623f,U+627e,U+628a,U+62a4,U+62db,U+62e9,U+6307,U+6362,U+636e,U+64ad,U+6539,U+653f,U+6548,U+6574,U+6613,U+6625,U+663e,U+666f,U+672a,U+6750,U+6784,U+6a21,U+6b3e,U+6b65,U+6bcf,U+6c11,U+6c5f,U+6d4b,U+6df1,U+706b,U+7167,U+724c,U+738b,U+73a9,U+73af,U+7403,U+7537,U+754c,U+7559,U+767d,U+7740,U+786e,U+795e,U+798f,U+79f0,U+7aef,U+7b7e,U+7bb1,U+7ea2,U+7ea6,U+7ec4,U+7ec6,U+7ecd,U+7edc,U+7ef4,U+8003,U+80b2,U+81f3,U+81f4,U+822a,U+827a,U+82f1,U+83b7,U+8425,U+89c2,U+89c8,U+8ba9,U+8bb8,U+8bc6,U+8bd5,U+8be2,U+8be5,U+8bed,U+8c03,U+8d23,U+8d2d,U+8d34,U+8d70,U+8db3,U+8fbe,U+8fce,U+8fd1,U+8fde,U+9001,U+901f,U+9020,U+90a3,U+914d,U+91c7,U+94fe,U+9500,U+952e,U+9605,U+9645,U+9662,U+9664,U+9700,U+9752,U+975e,U+97f3,U+9879,U+9886,U+98df,U+9a6c,U+9a8c,U+9ed1,U+9f99; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.93.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+4e,U+201c,U+201d,U+3010,U+3011,U+4e07,U+4e1c,U+4e24,U+4e3e,U+4e48,U+4e50,U+4e5f,U+4e8b,U+4e8c,U+4ea4,U+4eab,U+4eac,U+4ecb,U+4ece,U+4ed6,U+4ee3,U+4ef6,U+4ef7,U+4efb,U+4f20,U+4f55,U+4f7f,U+4fdd,U+505a,U+5143,U+5149,U+514d,U+5171,U+5177,U+518c,U+51fb,U+521b,U+5229,U+522b,U+52a9,U+5305,U+5317,U+534e,U+5355,U+5357,U+535a,U+5373,U+539f,U+53bb,U+53ca,U+53cd,U+53d6,U+53e3,U+53ea,U+53f0,U+5458,U+5546,U+56db,U+573a,U+578b,U+57ce,U+58f0,U+590d,U+5934,U+5973,U+5b57,U+5b8c,U+5b98,U+5bb9,U+5bfc,U+5c06,U+5c11,U+5c31,U+5c55,U+5df2,U+5e03,U+5e76,U+5e94,U+5efa,U+5f71,U+5f97,U+5feb,U+6001,U+603b,U+60f3,U+611f,U+6216,U+624d,U+6253,U+6295,U+6301,U+6392,U+641c,U+652f,U+653e,U+6559,U+6599,U+661f,U+671f,U+672f,U+6761,U+67e5,U+6807,U+6837,U+683c,U+6848,U+6b22,U+6b64,U+6bd4,U+6c14,U+6c34,U+6c42,U+6ca1,U+6d41,U+6d77,U+6d88,U+6e05,U+6e38,U+6e90,U+7136,U+7231,U+7531,U+767e,U+76ee,U+76f4,U+771f,U+7801,U+793a,U+79cd,U+7a0b,U+7a7a,U+7acb,U+7ae0,U+7b2c,U+7b80,U+7ba1,U+7cbe,U+7d22,U+7ea7,U+7ed3,U+7ed9,U+7edf,U+7f16,U+7f6e,U+8001,U+800c,U+8272,U+8282,U+82b1,U+8350,U+88ab,U+88c5,U+897f,U+89c1,U+89c4,U+89e3,U+8a00,U+8ba1,U+8ba4,U+8bae-8bb0,U+8bbe,U+8bc1,U+8bc4,U+8bfb,U+8d28,U+8d39,U+8d77,U+8d85,U+8def,U+8eab,U+8f66,U+8f6c,U+8f7d,U+8fd0,U+9009,U+90ae,U+90fd,U+91cc,U+91cd,U+91cf,U+95fb,U+9650,U+96c6,U+9891,U+98ce,U+ff1f; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.94.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+3e,U+5f,U+7c,U+a0,U+a9,U+4e09-4e0b,U+4e0d,U+4e0e,U+4e13,U+4e1a,U+4e2a,U+4e3a,U+4e3b,U+4e4b,U+4e86,U+4e8e,U+4ea7,U+4eba,U+4ee5,U+4eec,U+4f1a,U+4f4d,U+4f53,U+4f5c,U+4f60,U+4fe1,U+5165,U+5168,U+516c,U+5173,U+5176,U+5185,U+51fa,U+5206,U+5230,U+5236,U+524d,U+529b,U+52a0,U+52a1,U+52a8,U+5316,U+533a,U+53cb,U+53d1,U+53ef,U+53f7,U+53f8,U+5408,U+540c-540e,U+544a,U+548c,U+54c1,U+56de,U+56fd,U+56fe,U+5728,U+5730,U+5907,U+5916,U+591a,U+5927,U+5929,U+597d,U+5982,U+5b50,U+5b66,U+5b89,U+5b9a,U+5b9e,U+5ba2,U+5bb6,U+5bf9,U+5c0f,U+5de5,U+5e02,U+5e38,U+5e73,U+5e74,U+5e7f,U+5ea6,U+5f00,U+5f0f,U+5f53,U+5f55,U+5fae,U+5fc3,U+6027,U+606f,U+60a8,U+60c5,U+610f,U+6210,U+6211,U+6237,U+6240,U+624b,U+6280,U+62a5,U+63a5,U+63a8,U+63d0,U+6536,U+6570,U+6587,U+65b9,U+65e0,U+65f6,U+660e,U+662d,U+662f,U+66f4,U+6700,U+670d,U+672c,U+673a,U+6743,U+6765,U+679c,U+682a,U+6b21,U+6b63,U+6cbb,U+6cd5,U+6ce8,U+6d3b,U+70ed,U+7247,U+7248,U+7269,U+7279,U+73b0,U+7406,U+751f,U+7528,U+7535,U+767b,U+76f8,U+770b,U+77e5,U+793e,U+79d1,U+7ad9,U+7b49,U+7c7b,U+7cfb,U+7ebf,U+7ecf,U+7f8e,U+8005,U+8054,U+80fd,U+81ea,U+85cf,U+884c,U+8868,U+8981,U+89c6,U+8bba,U+8bdd,U+8bf4,U+8bf7,U+8d44,U+8fc7,U+8fd8,U+8fd9,U+8fdb,U+901a,U+9053,U+90e8,U+91d1,U+957f,U+95e8,U+95ee,U+95f4,U+9762,U+9875,U+9898,U+9996,U+9ad8,U+ff01,U+ff08,U+ff09; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.95.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+20-22,U+27-2a,U+2c-3b,U+3f,U+41-4d,U+4f-5d,U+61-7b,U+7d,U+ab,U+ae,U+b2,U+b7,U+bb,U+2013,U+2014,U+2039,U+203a,U+2122,U+3001,U+3002,U+30fb,U+30fc,U+4e00,U+4e2d,U+65b0,U+65e5,U+6708,U+6709,U+70b9,U+7684,U+7f51,U+ff0c,U+ff0e,U+ff1a; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Medium.96.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; + unicode-range: U+df-e5,U+e7-ea,U+ec,U+ed,U+f1-f4,U+f6,U+f9,U+fa,U+fc,U+101,U+103,U+113,U+12b,U+148,U+14d,U+16b,U+1ce,U+1d0,U+300,U+301,U+1ebf,U+1ec7,U+3042,U+3044,U+3046,U+3048,U+304a-3055,U+3057,U+3059-305b,U+305d,U+305f-3061,U+3063-306b,U+306d-3073,U+3075,U+3076,U+3078,U+3079,U+307b,U+307e,U+307f,U+3081-308d,U+308f,U+3092,U+3093,U+30a1-30a4,U+30a6-30bb,U+30bd,U+30bf-30c1,U+30c3,U+30c4,U+30c6-30cb,U+30cd-30d7,U+30d9-30e1,U+30e3-30e7,U+30e9-30ed,U+30ef,U+30f3; +} diff --git a/resources/font/HarmonyOS_Sans_SC_Medium/index.html b/resources/font/HarmonyOS_Sans_SC_Medium/index.html new file mode 100644 index 0000000..281669b --- /dev/null +++ b/resources/font/HarmonyOS_Sans_SC_Medium/index.html @@ -0,0 +1,20 @@ + + + + + + Demo + + + + + +
+

Created by voderl ( https://github.com/voderl/font-slice )

+

如果遇到问题可以在 issue 中反馈

+ +
+ + \ No newline at end of file diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.1.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.1.woff2 new file mode 100644 index 0000000..7f70e3c Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.1.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.10.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.10.woff2 new file mode 100644 index 0000000..3f34138 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.10.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.11.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.11.woff2 new file mode 100644 index 0000000..0733382 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.11.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.12.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.12.woff2 new file mode 100644 index 0000000..14b03b9 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.12.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.13.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.13.woff2 new file mode 100644 index 0000000..59e375b Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.13.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.14.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.14.woff2 new file mode 100644 index 0000000..cfb0d13 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.14.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.15.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.15.woff2 new file mode 100644 index 0000000..d3ab972 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.15.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.16.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.16.woff2 new file mode 100644 index 0000000..b4216a2 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.16.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.17.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.17.woff2 new file mode 100644 index 0000000..4ea682b Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.17.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.18.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.18.woff2 new file mode 100644 index 0000000..3001066 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.18.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.19.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.19.woff2 new file mode 100644 index 0000000..ca0d136 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.19.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.2.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.2.woff2 new file mode 100644 index 0000000..8ff4b6d Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.2.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.20.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.20.woff2 new file mode 100644 index 0000000..5a4238c Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.20.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.21.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.21.woff2 new file mode 100644 index 0000000..32ab36a Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.21.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.22.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.22.woff2 new file mode 100644 index 0000000..a311cb2 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.22.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.23.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.23.woff2 new file mode 100644 index 0000000..d5292ed Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.23.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.24.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.24.woff2 new file mode 100644 index 0000000..6dd6ffc Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.24.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.25.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.25.woff2 new file mode 100644 index 0000000..09af6e5 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.25.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.26.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.26.woff2 new file mode 100644 index 0000000..0008d2f Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.26.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.27.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.27.woff2 new file mode 100644 index 0000000..68f6c31 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.27.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.28.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.28.woff2 new file mode 100644 index 0000000..f946854 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.28.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.29.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.29.woff2 new file mode 100644 index 0000000..081b008 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.29.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.3.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.3.woff2 new file mode 100644 index 0000000..c35e474 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.3.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.30.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.30.woff2 new file mode 100644 index 0000000..d83f447 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.30.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.31.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.31.woff2 new file mode 100644 index 0000000..008e763 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.31.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.32.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.32.woff2 new file mode 100644 index 0000000..8778adf Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.32.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.33.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.33.woff2 new file mode 100644 index 0000000..dc72535 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.33.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.34.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.34.woff2 new file mode 100644 index 0000000..b3ed1a3 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.34.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.35.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.35.woff2 new file mode 100644 index 0000000..19b677e Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.35.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.36.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.36.woff2 new file mode 100644 index 0000000..2a716e0 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.36.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.37.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.37.woff2 new file mode 100644 index 0000000..a7a9d23 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.37.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.38.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.38.woff2 new file mode 100644 index 0000000..d4e986d Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.38.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.39.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.39.woff2 new file mode 100644 index 0000000..8332cd5 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.39.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.4.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.4.woff2 new file mode 100644 index 0000000..afd843f Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.4.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.40.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.40.woff2 new file mode 100644 index 0000000..850a03b Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.40.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.41.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.41.woff2 new file mode 100644 index 0000000..0614a7e Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.41.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.42.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.42.woff2 new file mode 100644 index 0000000..809f00c Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.42.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.43.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.43.woff2 new file mode 100644 index 0000000..9980c77 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.43.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.44.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.44.woff2 new file mode 100644 index 0000000..894d3b7 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.44.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.45.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.45.woff2 new file mode 100644 index 0000000..e02d2a5 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.45.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.46.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.46.woff2 new file mode 100644 index 0000000..eee0586 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.46.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.47.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.47.woff2 new file mode 100644 index 0000000..6a4d11a Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.47.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.48.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.48.woff2 new file mode 100644 index 0000000..931e863 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.48.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.49.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.49.woff2 new file mode 100644 index 0000000..360a8d0 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.49.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.5.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.5.woff2 new file mode 100644 index 0000000..22da13a Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.5.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.50.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.50.woff2 new file mode 100644 index 0000000..2c78949 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.50.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.51.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.51.woff2 new file mode 100644 index 0000000..a9d45f9 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.51.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.52.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.52.woff2 new file mode 100644 index 0000000..a4bee6d Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.52.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.53.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.53.woff2 new file mode 100644 index 0000000..10e7350 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.53.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.54.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.54.woff2 new file mode 100644 index 0000000..7765523 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.54.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.55.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.55.woff2 new file mode 100644 index 0000000..b6d065f Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.55.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.56.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.56.woff2 new file mode 100644 index 0000000..7a80315 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.56.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.57.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.57.woff2 new file mode 100644 index 0000000..f13d667 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.57.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.58.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.58.woff2 new file mode 100644 index 0000000..225c44c Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.58.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.59.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.59.woff2 new file mode 100644 index 0000000..c351be0 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.59.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.6.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.6.woff2 new file mode 100644 index 0000000..7100099 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.6.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.60.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.60.woff2 new file mode 100644 index 0000000..8d24a5d Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.60.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.61.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.61.woff2 new file mode 100644 index 0000000..5bc0547 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.61.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.62.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.62.woff2 new file mode 100644 index 0000000..e77c6cc Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.62.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.63.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.63.woff2 new file mode 100644 index 0000000..fca5162 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.63.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.64.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.64.woff2 new file mode 100644 index 0000000..614c1fb Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.64.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.65.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.65.woff2 new file mode 100644 index 0000000..9203b8a Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.65.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.66.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.66.woff2 new file mode 100644 index 0000000..89964a5 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.66.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.67.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.67.woff2 new file mode 100644 index 0000000..51f658d Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.67.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.68.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.68.woff2 new file mode 100644 index 0000000..5aca9c5 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.68.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.69.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.69.woff2 new file mode 100644 index 0000000..d81bf5f Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.69.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.7.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.7.woff2 new file mode 100644 index 0000000..0b70464 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.7.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.70.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.70.woff2 new file mode 100644 index 0000000..daeb50f Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.70.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.71.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.71.woff2 new file mode 100644 index 0000000..1e8b2cd Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.71.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.72.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.72.woff2 new file mode 100644 index 0000000..52ff915 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.72.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.73.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.73.woff2 new file mode 100644 index 0000000..93fd8b4 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.73.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.74.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.74.woff2 new file mode 100644 index 0000000..4528b55 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.74.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.75.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.75.woff2 new file mode 100644 index 0000000..7bfecf4 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.75.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.76.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.76.woff2 new file mode 100644 index 0000000..0877123 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.76.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.77.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.77.woff2 new file mode 100644 index 0000000..109ae96 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.77.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.78.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.78.woff2 new file mode 100644 index 0000000..524dba1 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.78.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.79.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.79.woff2 new file mode 100644 index 0000000..68a36e0 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.79.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.8.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.8.woff2 new file mode 100644 index 0000000..792bdad Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.8.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.80.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.80.woff2 new file mode 100644 index 0000000..512f22c Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.80.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.81.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.81.woff2 new file mode 100644 index 0000000..5ae70a5 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.81.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.82.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.82.woff2 new file mode 100644 index 0000000..680681d Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.82.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.83.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.83.woff2 new file mode 100644 index 0000000..874d724 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.83.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.84.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.84.woff2 new file mode 100644 index 0000000..788d31a Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.84.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.85.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.85.woff2 new file mode 100644 index 0000000..a12591e Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.85.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.86.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.86.woff2 new file mode 100644 index 0000000..8737fa1 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.86.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.87.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.87.woff2 new file mode 100644 index 0000000..b3c648a Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.87.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.88.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.88.woff2 new file mode 100644 index 0000000..520ed33 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.88.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.89.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.89.woff2 new file mode 100644 index 0000000..31107b2 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.89.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.9.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.9.woff2 new file mode 100644 index 0000000..1cc6854 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.9.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.90.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.90.woff2 new file mode 100644 index 0000000..3131319 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.90.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.91.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.91.woff2 new file mode 100644 index 0000000..bb2dd58 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.91.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.92.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.92.woff2 new file mode 100644 index 0000000..e4fbab4 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.92.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.93.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.93.woff2 new file mode 100644 index 0000000..1487151 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.93.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.94.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.94.woff2 new file mode 100644 index 0000000..8bb635a Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.94.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.95.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.95.woff2 new file mode 100644 index 0000000..1953de7 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.95.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.96.woff2 b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.96.woff2 new file mode 100644 index 0000000..03c0464 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Regular/HarmonyOS_Sans_SC_Regular.96.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/font.css b/resources/font/HarmonyOS_Sans_SC_Regular/font.css new file mode 100644 index 0000000..69ef5bd --- /dev/null +++ b/resources/font/HarmonyOS_Sans_SC_Regular/font.css @@ -0,0 +1,769 @@ +/** generated by https://github.com/voderl/font-slice */ +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.1.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+ff03,U+ff04,U+ff07,U+ff0a,U+ff17-ff19,U+ff1c,U+ff1d,U+ff20-ff3a,U+ff3c,U+ff3e-ff5b,U+ff5d,U+ffe0-ffe4; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.2.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+f92c,U+f979,U+fa11,U+fe30,U+fe31,U+fe33-fe44,U+fe49-fe52,U+fe54-fe57,U+fe59-fe66,U+fe68-fe6b; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.3.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+9f3d,U+9f3e,U+9f41,U+9f4a,U+9f4b,U+9f51,U+9f52,U+9f61-9f63,U+9f66,U+9f67,U+9f80,U+9f81,U+9f83,U+9f85-9f8d,U+9f90,U+9f91,U+9f94-9f96,U+9f98,U+9f9b,U+9f9c,U+9f9e,U+9fa0,U+9fa2; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.4.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+9dfa,U+9e0a,U+9e11,U+9e1a,U+9e1e,U+9e20,U+9e22,U+9e28-9e2c,U+9e2e-9e33,U+9e35-9e3b,U+9e3e,U+9e40-9e44,U+9e46-9e4e,U+9e51,U+9e53,U+9e55-9e58,U+9e5a-9e5c,U+9e5e-9e63,U+9e66-9e6e,U+9e71,U+9e73,U+9e75,U+9e78,U+9e79,U+9e7c-9e7e,U+9e82,U+9e86-9e88,U+9e8b,U+9e8c,U+9e90,U+9e91,U+9e93,U+9e95,U+9e97,U+9e9d,U+9ea4,U+9ea5,U+9ea9,U+9eaa,U+9eb4,U+9eb5,U+9eb8-9eba,U+9ebc-9ebf,U+9ec3,U+9ec9,U+9ecd,U+9ed0,U+9ed2,U+9ed3,U+9ed5,U+9ed6,U+9ed9,U+9edc,U+9edd,U+9edf,U+9ee0,U+9ee2,U+9ee5,U+9ee7-9eea,U+9eef,U+9ef1,U+9ef3,U+9ef4,U+9ef6,U+9ef9,U+9efb,U+9efc,U+9efe,U+9f0b,U+9f0d,U+9f10,U+9f14,U+9f17,U+9f19,U+9f22,U+9f29,U+9f2c,U+9f2f,U+9f31,U+9f37,U+9f39; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.5.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+9c3b,U+9c40,U+9c47-9c49,U+9c53,U+9c57,U+9c64,U+9c72,U+9c77,U+9c78,U+9c7b,U+9c7f,U+9c80,U+9c82,U+9c83,U+9c85-9c8c,U+9c8e-9c92,U+9c94-9c9b,U+9c9e-9ca3,U+9ca5-9ca7,U+9ca9,U+9cab,U+9cad,U+9cae,U+9cb1-9cb7,U+9cb9-9cbd,U+9cbf,U+9cc0,U+9cc3,U+9cc5-9cc7,U+9cc9-9cd1,U+9cd3-9cda,U+9cdc,U+9cdd,U+9cdf,U+9ce1-9ce3,U+9ce5,U+9ce9,U+9cee,U+9cef,U+9cf3,U+9cf4,U+9cf6,U+9cfc,U+9cfd,U+9d02,U+9d08,U+9d09,U+9d12,U+9d1b,U+9d1e,U+9d26,U+9d28,U+9d37,U+9d3b,U+9d3f,U+9d51,U+9d59,U+9d5c,U+9d5d,U+9d5f-9d61,U+9d6c,U+9d70,U+9d72,U+9d7a,U+9d7e,U+9d84,U+9d89,U+9d8f,U+9d92,U+9daf,U+9db4,U+9db8,U+9dbc,U+9dc4,U+9dc7,U+9dc9,U+9dd7,U+9ddf,U+9df2,U+9df9; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.6.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+9a5f,U+9a62,U+9a65,U+9a69,U+9a6b,U+9a6e,U+9a75,U+9a77-9a7a,U+9a7d,U+9a80,U+9a83,U+9a85,U+9a87-9a8a,U+9a8d,U+9a8e,U+9a90,U+9a92,U+9a93,U+9a95,U+9a96,U+9a98,U+9a99,U+9a9b-9aa2,U+9aa5,U+9aa7,U+9aaf-9ab1,U+9ab5,U+9ab6,U+9ab9,U+9aba,U+9abc,U+9ac0-9ac4,U+9ac8,U+9acb,U+9acc,U+9ace,U+9acf,U+9ad1,U+9ad2,U+9ad9,U+9adf,U+9ae1,U+9ae3,U+9aea,U+9aeb,U+9aed-9aef,U+9af4,U+9af9,U+9afb,U+9b03,U+9b04,U+9b06,U+9b08,U+9b0d,U+9b0f,U+9b10,U+9b13,U+9b18,U+9b1a,U+9b1f,U+9b22,U+9b23,U+9b25,U+9b27,U+9b28,U+9b2a,U+9b2f,U+9b31,U+9b32,U+9b3b,U+9b43,U+9b46-9b49,U+9b4d,U+9b4e,U+9b51,U+9b56,U+9b58,U+9b5a,U+9b5c,U+9b5f,U+9b61,U+9b62,U+9b6f,U+9b77,U+9b80,U+9b88,U+9b8b,U+9b8e,U+9b91,U+9b9f,U+9ba0,U+9ba8,U+9baa,U+9bab,U+9bad,U+9bae,U+9bb0,U+9bb1,U+9bb8,U+9bc9,U+9bca,U+9bd3,U+9bd6,U+9bdb,U+9be8,U+9bf0,U+9bf1,U+9c02,U+9c10,U+9c15,U+9c24,U+9c2d,U+9c32,U+9c39; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.7.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+98c8,U+98cf-98d6,U+98da,U+98db,U+98dd,U+98e1,U+98e2,U+98e7-98ea,U+98ec,U+98ee,U+98ef,U+98f2,U+98f4,U+98fc-98fe,U+9903,U+9905,U+9908,U+990a,U+990c,U+990d,U+9913,U+9914,U+9918,U+991a,U+991b,U+991e,U+9921,U+9928,U+992c,U+992e,U+9935,U+9938,U+9939,U+993d,U+993e,U+9945,U+994b,U+994c,U+9951,U+9952,U+9954,U+9955,U+9957,U+995e,U+9963,U+9966-9969,U+996b,U+996c,U+996f,U+9974,U+9975,U+9977-9979,U+997d,U+997e,U+9980,U+9981,U+9983,U+9984,U+9987,U+998a,U+998b,U+998d-9991,U+9993-9995,U+9997,U+9998,U+99a5,U+99ab-99ae,U+99b1,U+99b3,U+99b4,U+99bc,U+99bf,U+99c1,U+99c3-99c6,U+99cc,U+99d0,U+99d2,U+99d5,U+99db,U+99dd,U+99e1,U+99ed,U+99f1,U+99ff,U+9a01,U+9a03,U+9a04,U+9a0e,U+9a0f,U+9a11-9a13,U+9a19,U+9a1b,U+9a28,U+9a2b,U+9a30,U+9a32,U+9a37,U+9a40,U+9a45,U+9a4a,U+9a4d,U+9a4e,U+9a52,U+9a55,U+9a57,U+9a5a,U+9a5b; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.8.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+972a,U+972d,U+9730,U+973d,U+9742,U+9744,U+9748,U+9749,U+9750,U+9751,U+975a-975c,U+9763,U+9765,U+9766,U+976c,U+976d,U+9773,U+9776,U+977a,U+977c,U+9784,U+9785,U+978e,U+978f,U+9791,U+9792,U+9794,U+9795,U+9798,U+979a,U+979e,U+97a3,U+97a5,U+97a6,U+97a8,U+97ab,U+97ac,U+97ae,U+97af,U+97b2,U+97b4,U+97c6,U+97cb,U+97cc,U+97d3,U+97d8,U+97dc,U+97e1,U+97ea,U+97eb,U+97ee,U+97fb,U+97fe,U+97ff,U+9801-9803,U+9805,U+9806,U+9808,U+980c,U+9810-9814,U+9817,U+9818,U+981e,U+9820,U+9821,U+9824,U+9828,U+982b-982d,U+9830,U+9834,U+9838,U+9839,U+983c,U+9846,U+984d-984f,U+9851,U+9852,U+9854,U+9855,U+9857,U+9858,U+985a,U+985b,U+9862,U+9863,U+9865,U+9867,U+986b,U+986f-9871,U+9877,U+9878,U+987c,U+9880,U+9883,U+9885,U+9889,U+988b-988f,U+9893-9895,U+9899-989b,U+989e,U+989f,U+98a1,U+98a2,U+98a5-98a7,U+98a9,U+98af,U+98b1,U+98b6,U+98ba,U+98be,U+98c3,U+98c4,U+98c6,U+98c7; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.9.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+95b9-95ca,U+95cc,U+95cd,U+95d4-95d6,U+95d8,U+95e1,U+95e2,U+95e9,U+95f0,U+95f1,U+95f3,U+95f6,U+95fc,U+95fe,U+95ff,U+9602-9604,U+9606-960d,U+960f,U+9611-9613,U+9615-9617,U+9619-961b,U+961d,U+9621,U+9628,U+962f,U+963c-963e,U+9641,U+9642,U+9649,U+9654,U+965b-965f,U+9661,U+9663,U+9665,U+9667,U+9668,U+966c,U+9670,U+9672-9674,U+9678,U+967a,U+967d,U+9682,U+9685,U+9688,U+968a,U+968d,U+968e,U+9695,U+9697,U+9698,U+969e,U+96a0,U+96a3,U+96a4,U+96a8,U+96aa,U+96b0,U+96b1,U+96b3,U+96b4,U+96b7-96b9,U+96bb-96bd,U+96c9,U+96cb,U+96ce,U+96d1,U+96d2,U+96d6,U+96d9,U+96db,U+96dc,U+96de,U+96e0,U+96e3,U+96e9,U+96eb,U+96f0-96f2,U+96f9,U+96ff,U+9701,U+9702,U+9705,U+9708,U+970a,U+970e,U+970f,U+9711,U+9719,U+9727; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.10.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+94e7-94ec,U+94ee-94f1,U+94f3,U+94f5,U+94f7,U+94f9,U+94fb-94fd,U+94ff,U+9503,U+9504,U+9506,U+9507,U+9509,U+950a,U+950d-950f,U+9511-9518,U+951a-9520,U+9522,U+9528-952d,U+9530-953a,U+953c-953f,U+9543-9546,U+9548-9550,U+9552-9555,U+9557-955b,U+955d-9568,U+956a-956d,U+9570-9574,U+9583,U+9586,U+9589,U+958e,U+958f,U+9591,U+9592,U+9594,U+9598,U+9599,U+959e-95a0,U+95a2-95a6,U+95a8-95b2,U+95b4,U+95b8; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.11.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+9410-941a,U+941c-942b,U+942d,U+942e,U+9432,U+9433,U+9435,U+9438,U+943a,U+943e,U+9444,U+944a,U+9451,U+9452,U+945a,U+9462,U+9463,U+9465,U+9470-9487,U+948a-9492,U+9494-9498,U+949a,U+949c,U+949d,U+94a1,U+94a3,U+94a4,U+94a8,U+94aa-94ad,U+94af,U+94b2,U+94b4-94ba,U+94bc-94c0,U+94c4,U+94c6-94db,U+94de-94e6; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.12.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+92b7,U+92b9,U+92c1,U+92c5,U+92c6,U+92c8,U+92cc,U+92d0,U+92d2,U+92e4,U+92ea,U+92ec,U+92ed,U+92f0,U+92f3,U+92f8,U+92fc,U+9304,U+9306,U+9310,U+9312,U+9315,U+9318,U+931a,U+931e,U+9320-9322,U+9324,U+9326-9329,U+932b,U+932c,U+932f,U+9331,U+9332,U+9335,U+9336,U+933e,U+9340,U+9341,U+934a-9360,U+9362,U+9363,U+9365-936b,U+936e,U+9375,U+937e,U+9382,U+938a,U+938c,U+938f,U+9393,U+9394,U+9396,U+9397,U+939a,U+93a2,U+93a7,U+93ac-93cd,U+93d0,U+93d1,U+93d6-93d8,U+93de,U+93df,U+93e1,U+93e2,U+93e4,U+93f8,U+93fb,U+93fd,U+940e,U+940f; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.13.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+914c,U+914e-9150,U+9154,U+9157,U+915a,U+915d,U+915e,U+9161-9164,U+9169,U+9170,U+9172,U+9174,U+9179,U+917a,U+917d,U+917e,U+9182,U+9183,U+9185,U+918c,U+918d,U+9190,U+9191,U+919a,U+919c,U+91a1-91a4,U+91a8,U+91aa-91af,U+91b4,U+91b5,U+91b8,U+91ba,U+91be,U+91c0,U+91c1,U+91c6,U+91c8,U+91cb,U+91d0,U+91d2,U+91d7,U+91d8,U+91dd,U+91e3,U+91e6,U+91e7,U+91ed,U+91f0,U+91f5,U+91f9,U+9200,U+9205,U+9207-920a,U+920d,U+920e,U+9210,U+9214,U+9215,U+921c,U+921e,U+9221,U+9223-9227,U+9229,U+922a,U+922d,U+9234,U+9235,U+9237,U+9239,U+923a,U+923c-9240,U+9244-9246,U+9249,U+924e,U+924f,U+9251,U+9253,U+9257,U+925b,U+925e,U+9262,U+9264-9266,U+9268,U+926c,U+926f,U+9271,U+927b,U+927e,U+9280,U+9283,U+9285-928a,U+928e,U+9291,U+9293,U+9296,U+9298,U+929c,U+929d,U+92a8,U+92ab-92ae,U+92b3,U+92b6; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.14.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+8fe2-8fe5,U+8fe8,U+8fe9,U+8fee,U+8ff3,U+8ff4,U+8ff8,U+8ffa,U+9004,U+900b,U+9011,U+9015,U+9016,U+901e,U+9021,U+9026,U+902d,U+902f,U+9031,U+9035,U+9036,U+9039,U+903a,U+9041,U+9044-9046,U+904a,U+904f-9052,U+9054,U+9055,U+9058,U+9059,U+905b-905e,U+9060-9062,U+9068,U+9069,U+906f,U+9072,U+9074,U+9076-907a,U+907c,U+907d,U+9081,U+9083,U+9085,U+9087-908b,U+908f,U+9095,U+9097,U+9099-909b,U+909d,U+90a0,U+90a1,U+90a8,U+90a9,U+90ac,U+90b0,U+90b2-90b4,U+90b6,U+90b8,U+90ba,U+90bd,U+90be,U+90c3-90c5,U+90c7,U+90c8,U+90cf,U+90d0,U+90d3,U+90d5,U+90d7,U+90da-90dc,U+90de,U+90e2,U+90e4,U+90e6,U+90e7,U+90ea,U+90eb,U+90ef,U+90f4,U+90f5,U+90f7,U+90fe-9100,U+9104,U+9109,U+910c,U+9112,U+9114,U+9115,U+9118,U+911c,U+911e,U+9120,U+9122,U+9123,U+9127,U+912d,U+912f-9132,U+9139,U+913a,U+9143,U+9146,U+9149,U+914a; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.15.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+8e2d-8e31,U+8e34,U+8e35,U+8e39,U+8e3a,U+8e3d,U+8e40-8e42,U+8e47,U+8e49-8e4b,U+8e50-8e53,U+8e59,U+8e5a,U+8e5f,U+8e60,U+8e64,U+8e69,U+8e6c,U+8e70,U+8e74,U+8e76,U+8e7a-8e7c,U+8e7f,U+8e84,U+8e85,U+8e87,U+8e89,U+8e8b,U+8e8d,U+8e8f,U+8e90,U+8e94,U+8e99,U+8e9c,U+8e9e,U+8eaa,U+8eac,U+8eb0,U+8eb6,U+8ec0,U+8ec6,U+8eca-8ece,U+8ed2,U+8eda,U+8edf,U+8ee2,U+8eeb,U+8ef8,U+8efb-8efe,U+8f03,U+8f09,U+8f0b,U+8f12-8f15,U+8f1b,U+8f1d,U+8f1f,U+8f29,U+8f2a,U+8f2f,U+8f36,U+8f38,U+8f3b,U+8f3e,U+8f3f,U+8f44,U+8f45,U+8f49,U+8f4d,U+8f4e,U+8f5f,U+8f6b,U+8f6d,U+8f71-8f73,U+8f75,U+8f76,U+8f78-8f7a,U+8f7c,U+8f7e,U+8f81,U+8f82,U+8f84,U+8f87,U+8f8a,U+8f8b,U+8f8d-8f8f,U+8f94,U+8f95,U+8f97-8f9a,U+8fa6,U+8fad-8faf,U+8fb2,U+8fb5-8fb7,U+8fba-8fbc,U+8fbf,U+8fc2,U+8fcb,U+8fcd,U+8fd3,U+8fd5,U+8fd7,U+8fda; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.16.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+8caf,U+8cb0,U+8cb3,U+8cb4,U+8cb6-8cb9,U+8cbb-8cbd,U+8cbf-8cc4,U+8cc7,U+8cc8,U+8cca,U+8ccd,U+8cd1,U+8cd3,U+8cdb,U+8cdc,U+8cde,U+8ce0,U+8ce2-8ce4,U+8ce6-8ce8,U+8cea,U+8ced,U+8cf4,U+8cf8,U+8cfa,U+8cfc,U+8cfd,U+8d04,U+8d05,U+8d07,U+8d08,U+8d0a,U+8d0d,U+8d0f,U+8d13,U+8d14,U+8d16,U+8d1b,U+8d20,U+8d2e,U+8d30,U+8d32,U+8d33,U+8d36,U+8d3b,U+8d3d,U+8d40,U+8d42,U+8d43,U+8d45,U+8d46,U+8d48-8d4a,U+8d4d,U+8d51,U+8d53,U+8d55,U+8d59,U+8d5c,U+8d5d,U+8d5f,U+8d61,U+8d66,U+8d67,U+8d6a,U+8d6d,U+8d71,U+8d73,U+8d84,U+8d90,U+8d91,U+8d94,U+8d95,U+8d99,U+8da8,U+8daf,U+8db1,U+8db5,U+8db8,U+8dba,U+8dbc,U+8dbf,U+8dc2,U+8dc4,U+8dc6,U+8dcb,U+8dce,U+8dcf,U+8dd6,U+8dd7,U+8dda,U+8ddb,U+8dde,U+8de1,U+8de3,U+8de4,U+8de9,U+8deb,U+8dec,U+8df0,U+8df1,U+8df6-8dfd,U+8e05,U+8e07,U+8e09,U+8e0a,U+8e0c,U+8e0e,U+8e10,U+8e14,U+8e1d-8e1f,U+8e23,U+8e26,U+8e2b,U+8e2c; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.17.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+8b5e,U+8b60,U+8b6c,U+8b6f,U+8b70,U+8b72,U+8b74,U+8b77,U+8b7d,U+8b80,U+8b83,U+8b8a,U+8b8c,U+8b90,U+8b93,U+8b99,U+8b9a,U+8ba0,U+8ba3,U+8ba5-8ba7,U+8baa-8bac,U+8bb3-8bb5,U+8bb7,U+8bb9,U+8bc2,U+8bc3,U+8bc5,U+8bcb,U+8bcc,U+8bce-8bd0,U+8bd2-8bd4,U+8bd6,U+8bd8,U+8bd9,U+8bdc,U+8bdf,U+8be3,U+8be4,U+8be7-8be9,U+8beb,U+8bec,U+8bee,U+8bf0,U+8bf2,U+8bf3,U+8bf6,U+8bf9,U+8bfc,U+8bfd,U+8bff,U+8c00,U+8c02,U+8c04,U+8c06,U+8c07,U+8c0c,U+8c0f,U+8c11,U+8c12,U+8c14-8c1b,U+8c1d-8c21,U+8c24,U+8c25,U+8c27,U+8c2a-8c2c,U+8c2e-8c30,U+8c32-8c36,U+8c3f,U+8c47-8c4c,U+8c4e-8c50,U+8c54-8c56,U+8c62,U+8c68,U+8c6c,U+8c73,U+8c78,U+8c7a,U+8c82,U+8c85,U+8c89,U+8c8a,U+8c8d,U+8c8e,U+8c90,U+8c93,U+8c94,U+8c98,U+8c9d,U+8c9e,U+8ca0-8ca2,U+8ca7-8cac; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.18.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+8a02,U+8a03,U+8a07-8a0a,U+8a0e,U+8a0f,U+8a13,U+8a15-8a18,U+8a1a,U+8a1b,U+8a1d,U+8a1f,U+8a22,U+8a23,U+8a25,U+8a2b,U+8a2d,U+8a31,U+8a33,U+8a34,U+8a36-8a38,U+8a3a,U+8a3c,U+8a3e,U+8a40,U+8a41,U+8a46,U+8a48,U+8a50,U+8a52,U+8a54,U+8a55,U+8a58,U+8a5b,U+8a5d-8a63,U+8a66,U+8a69-8a6b,U+8a6d,U+8a6e,U+8a70,U+8a72,U+8a73,U+8a7a,U+8a85,U+8a87,U+8a8a,U+8a8c,U+8a8d,U+8a90-8a92,U+8a95,U+8a98,U+8aa0,U+8aa1,U+8aa3-8aa6,U+8aa8,U+8aa9,U+8aac-8aae,U+8ab0,U+8ab2,U+8ab8,U+8ab9,U+8abc,U+8abe,U+8abf,U+8ac7,U+8acf,U+8ad2,U+8ad6,U+8ad7,U+8adb,U+8adc,U+8adf,U+8ae1,U+8ae6-8ae8,U+8aeb,U+8aed,U+8aee,U+8af1,U+8af3,U+8af4,U+8af7,U+8af8,U+8afa,U+8afe,U+8b00-8b02,U+8b07,U+8b0a,U+8b0c,U+8b0e,U+8b10,U+8b17,U+8b19,U+8b1b,U+8b1d,U+8b20,U+8b21,U+8b26,U+8b28,U+8b2c,U+8b33,U+8b39,U+8b3e,U+8b3f,U+8b41,U+8b45,U+8b49,U+8b4c,U+8b4f,U+8b57,U+8b58,U+8b5a,U+8b5c; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.19.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+8869,U+886a,U+886e,U+886f,U+8872,U+8879,U+887d-887f,U+8882,U+8884-8886,U+8888,U+888f,U+8892,U+8893,U+889b,U+88a2,U+88a4,U+88a6,U+88a8,U+88aa,U+88ae,U+88b1,U+88b4,U+88b7,U+88bc,U+88c0,U+88c6-88c9,U+88ce,U+88cf,U+88d1-88d3,U+88d8,U+88db-88dd,U+88df,U+88e1-88e3,U+88e5,U+88e8,U+88ec,U+88f0,U+88f1,U+88f3,U+88f4,U+88fc-88fe,U+8900,U+8902,U+8906,U+8907,U+8909-890c,U+8912-8915,U+8918-891b,U+8921,U+8925,U+892b,U+8930,U+8932,U+8934,U+8936,U+893b,U+893d,U+8941,U+894c,U+8955,U+8956,U+8959,U+895c,U+895e-8960,U+8966,U+896a,U+896c,U+896f,U+8970,U+8972,U+897b,U+897e,U+8980,U+8983,U+8985,U+8987,U+8988,U+898c,U+898f,U+8993,U+8997,U+899a,U+89a1,U+89a7,U+89a9,U+89aa,U+89b2,U+89b3,U+89b7,U+89c0,U+89c7,U+89ca-89cc,U+89ce-89d1,U+89d6,U+89da,U+89dc,U+89de,U+89e5,U+89e7,U+89eb,U+89ef,U+89f1,U+89f3,U+89f4,U+89f8,U+89ff,U+8a01; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.20.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+86e4,U+86e6,U+86e9,U+86ed,U+86ef-86f4,U+86f8,U+86f9,U+86fb,U+86fe,U+8703,U+8706-870a,U+870d,U+8711-8713,U+871a,U+871e,U+8722,U+8723,U+8725,U+8729,U+872e,U+8731,U+8734,U+8737,U+873a,U+873b,U+873e-8740,U+8742,U+8747,U+8748,U+8753,U+8755,U+8757,U+8758,U+875d,U+875f,U+8762-8766,U+8768,U+876e,U+8770,U+8772,U+8775,U+8778,U+877b-877e,U+8782,U+8785,U+8788,U+878b,U+8793,U+8797,U+879a,U+879e-87a0,U+87a2,U+87a3,U+87a8,U+87ab-87ad,U+87af,U+87b3,U+87b5,U+87bd,U+87c0,U+87c4,U+87c6,U+87ca,U+87cb,U+87d1,U+87d2,U+87db,U+87dc,U+87de,U+87e0,U+87e5,U+87ea,U+87ec,U+87ee,U+87f2,U+87f3,U+87fb,U+87fd,U+87fe,U+8802,U+8803,U+8805,U+880a,U+880b,U+880d,U+8813-8816,U+8819,U+881b,U+881f,U+8821,U+8823,U+8831,U+8832,U+8835,U+8836,U+8839,U+883b,U+883c,U+8844,U+8846,U+884a,U+884e,U+8852,U+8853,U+8855,U+8859,U+885b,U+885d,U+885e,U+8862,U+8864; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.21.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+8532,U+8534,U+8535,U+8538-853a,U+853c,U+8543,U+8545,U+8548,U+854e,U+8553,U+8556,U+8557,U+8559,U+855e,U+8561,U+8564,U+8565,U+8568-856a,U+856d,U+856f,U+8570,U+8572,U+8576,U+8579-857b,U+8580,U+8585,U+8586,U+8588,U+858a,U+858f,U+8591,U+8594,U+8599,U+859c,U+85a2,U+85a4,U+85a6,U+85a8,U+85a9,U+85ab,U+85ac,U+85ae,U+85b7-85b9,U+85be,U+85c1,U+85c7,U+85cd,U+85d0,U+85d3,U+85d5,U+85dc,U+85dd,U+85df,U+85e0,U+85e5,U+85e6,U+85e8-85ea,U+85f4,U+85f9,U+85fe,U+85ff,U+8602,U+8605-8607,U+860a,U+860b,U+8616,U+8618,U+861a,U+8627,U+8629,U+862d,U+8638,U+863c,U+863f,U+864d,U+864f,U+8652-8655,U+865b,U+865c,U+865f,U+8662,U+8667,U+866c,U+866e,U+8671,U+8675,U+867a-867c,U+867f,U+868b,U+868d,U+8693,U+869c,U+869d,U+86a1,U+86a3,U+86a4,U+86a7-86a9,U+86ac,U+86af-86b1,U+86b4-86b6,U+86ba,U+86c0,U+86c4,U+86c6,U+86c9,U+86ca,U+86cd-86d1,U+86d4,U+86d8,U+86de,U+86df; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.22.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+83b4,U+83b6,U+83b8,U+83ba,U+83bc,U+83bd,U+83bf,U+83c0,U+83c2,U+83c5,U+83c8,U+83c9,U+83cb,U+83d1,U+83d3-83d6,U+83d8,U+83db,U+83dd,U+83df,U+83e1,U+83e5,U+83ea,U+83eb,U+83f0,U+83f4,U+83f8,U+83f9,U+83fb,U+83fd,U+83ff,U+8401,U+8406,U+840a,U+840b,U+840f,U+8411,U+8418,U+841c,U+8420,U+8422-8424,U+8426,U+8429,U+842c,U+8438,U+8439,U+843b,U+843c,U+843f,U+8446,U+8447,U+8449,U+844e,U+8451,U+8452,U+8456,U+8459,U+845a,U+845c,U+8462,U+8466,U+846d,U+846f,U+8470,U+8473,U+8476-8478,U+847a,U+847d,U+8484,U+8485,U+8487,U+8489,U+848c,U+848e,U+8490,U+8493,U+8494,U+8497,U+849b,U+849e,U+849f,U+84a1,U+84a5,U+84a8,U+84af,U+84b4,U+84b9-84bf,U+84c1,U+84c2,U+84c5-84c7,U+84ca,U+84cb,U+84cd,U+84d0,U+84d1,U+84d3,U+84d6,U+84df,U+84e0,U+84e2,U+84e3,U+84e5-84e7,U+84ee,U+84f3,U+84f6,U+84fa,U+84fc,U+84ff,U+8500,U+850c,U+8511,U+8514,U+8515,U+8517,U+8518,U+851f,U+8523,U+8525,U+8526,U+8529,U+852b,U+852d; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.23.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+82a9-82ab,U+82ae,U+82b0,U+82b2,U+82b4-82b6,U+82bc,U+82be,U+82c0-82c2,U+82c4-82c8,U+82ca-82cc,U+82ce,U+82d0,U+82d2,U+82d3,U+82d5,U+82d6,U+82d8,U+82d9,U+82dc-82de,U+82e0-82e4,U+82e7,U+82e9-82eb,U+82ed,U+82ee,U+82f3,U+82f4,U+82f7,U+82f8,U+82fa-8301,U+8306-8308,U+830c,U+830d,U+830f,U+8311,U+8313-8315,U+8318,U+831a,U+831b,U+831d,U+8324,U+8327,U+832a,U+832c,U+832d,U+832f,U+8331-8334,U+833a-833c,U+8340,U+8343-8345,U+8347,U+8348,U+834a,U+834c,U+834f,U+8351,U+8356,U+8358-835c,U+835e,U+8360,U+8364-8366,U+8368-836a,U+836c-836e,U+8373,U+8378,U+837b-837d,U+837f,U+8380,U+8382,U+8388,U+838a,U+838b,U+8392,U+8394,U+8396,U+8398,U+8399,U+839b,U+839c,U+83a0,U+83a2,U+83a3,U+83a8-83aa,U+83ae-83b0,U+83b3; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.24.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+814d,U+814e,U+8151,U+8153,U+8158-815a,U+815e,U+8160,U+8166-8169,U+816b,U+816d,U+8171,U+8173,U+8174,U+8178,U+817c,U+817d,U+8182,U+8188,U+8191,U+8198-819b,U+81a0,U+81a3,U+81a5,U+81a6,U+81a9,U+81b6,U+81ba,U+81bb,U+81bd,U+81bf,U+81c1,U+81c3,U+81c6,U+81c9,U+81ca,U+81cc,U+81cd,U+81d1,U+81d3,U+81d4,U+81d8,U+81db,U+81dc,U+81de,U+81df,U+81e5,U+81e7-81e9,U+81eb,U+81ec,U+81ee,U+81ef,U+81f5,U+81f8,U+81fa,U+81fc,U+81fe,U+8200-8202,U+8204,U+8208-820a,U+820e-8210,U+8216-8218,U+821b,U+821c,U+8221-8224,U+8226-8228,U+822b,U+822d,U+822f,U+8232-8234,U+8237,U+8238,U+823a,U+823b,U+823e,U+8244,U+8249,U+824b,U+824f,U+8259,U+825a,U+825f,U+8266,U+8268,U+826e,U+8271,U+8276-8279,U+827d,U+827f,U+8283,U+8284,U+8288-828a,U+828d-8291,U+8293,U+8294,U+8296-8298,U+829f-82a1,U+82a3,U+82a4,U+82a7,U+82a8; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.25.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+7ffa,U+7ffe,U+8004,U+8006,U+800b,U+800e,U+8011,U+8012,U+8014,U+8016,U+8018,U+8019,U+801c,U+801e,U+8026-802a,U+8031,U+8034,U+8035,U+8037,U+8043,U+804b,U+804d,U+8052,U+8056,U+8059,U+805e,U+8061,U+8068,U+8069,U+806e-8074,U+8076-8078,U+807c-8080,U+8082,U+8084,U+8085,U+8088,U+808f,U+8093,U+809c,U+809f,U+80ab,U+80ad,U+80ae,U+80b1,U+80b6-80b8,U+80bc,U+80bd,U+80c2,U+80c4,U+80ca,U+80cd,U+80d1,U+80d4,U+80d7,U+80d9-80db,U+80dd,U+80e0,U+80e4,U+80e5,U+80e7-80ed,U+80ef-80f1,U+80f3,U+80f4,U+80fc,U+8101,U+8104,U+8105,U+8107,U+8108,U+810c-810e,U+8112-8115,U+8117-8119,U+811b-811f,U+8121-8130,U+8132-8134,U+8137,U+8139,U+813f,U+8140,U+8142,U+8146,U+8148; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.26.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+7ed7,U+7edb,U+7ee0-7ee2,U+7ee5,U+7ee6,U+7ee8,U+7eeb,U+7ef0-7ef2,U+7ef6,U+7efa,U+7efb,U+7efe,U+7f01-7f04,U+7f08,U+7f0a-7f12,U+7f17,U+7f19,U+7f1b,U+7f1c,U+7f1f,U+7f21-7f23,U+7f25-7f28,U+7f2a-7f33,U+7f35-7f37,U+7f3d,U+7f42,U+7f44,U+7f45,U+7f4c,U+7f4d,U+7f52,U+7f54,U+7f58,U+7f59,U+7f5d,U+7f5f-7f61,U+7f63,U+7f65,U+7f68,U+7f70,U+7f71,U+7f73-7f75,U+7f77,U+7f79,U+7f7d,U+7f7e,U+7f85,U+7f86,U+7f88,U+7f89,U+7f8b,U+7f8c,U+7f90,U+7f91,U+7f94-7f96,U+7f98-7f9b,U+7f9d,U+7f9f,U+7fa3,U+7fa7-7fa9,U+7fac-7fb2,U+7fb4,U+7fb6,U+7fb8,U+7fbc,U+7fbf,U+7fc0,U+7fc3,U+7fca,U+7fcc,U+7fce,U+7fd2,U+7fd5,U+7fd9-7fdb,U+7fdf,U+7fe3,U+7fe5-7fe7,U+7fe9,U+7feb,U+7fec,U+7fee,U+7fef,U+7ff1,U+7ff3,U+7ff4,U+7ff9; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.27.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+7dc4,U+7dc7,U+7dc8,U+7dca-7dcd,U+7dcf,U+7dd1,U+7dd2,U+7dd4,U+7dd6-7dd8,U+7dda-7de0,U+7de2-7de6,U+7de8-7ded,U+7def,U+7df1-7df5,U+7df7,U+7df9,U+7dfb,U+7dfc,U+7dfe-7e02,U+7e04,U+7e08-7e0b,U+7e12,U+7e1b,U+7e1e,U+7e20,U+7e22,U+7e23,U+7e26,U+7e29,U+7e2b,U+7e2e,U+7e2f,U+7e31,U+7e37,U+7e39-7e3e,U+7e40,U+7e43,U+7e44,U+7e46,U+7e47,U+7e4a,U+7e4b,U+7e4d,U+7e4e,U+7e51,U+7e54-7e56,U+7e58-7e5b,U+7e5d,U+7e5e,U+7e61,U+7e66,U+7e67,U+7e69-7e6b,U+7e6d,U+7e70,U+7e73,U+7e77,U+7e79,U+7e7b-7e7d,U+7e81,U+7e82,U+7e8c,U+7e8d,U+7e8f,U+7e92-7e94,U+7e96,U+7e98,U+7e9a-7e9c,U+7e9e,U+7e9f,U+7ea1,U+7ea3,U+7ea5,U+7ea8,U+7ea9,U+7eab,U+7ead,U+7eae,U+7eb0,U+7ebb,U+7ebe,U+7ec0-7ec2,U+7ec9,U+7ecb,U+7ecc,U+7ed0,U+7ed4; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.28.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+7ccc,U+7ccd,U+7cd7,U+7cdc,U+7cde,U+7ce0,U+7ce4,U+7ce5,U+7ce7,U+7ce8,U+7cec,U+7cf0,U+7cf5-7cf9,U+7cfc,U+7cfe,U+7d00,U+7d04-7d0b,U+7d0d,U+7d10-7d14,U+7d17-7d19,U+7d1b-7d1f,U+7d21,U+7d24-7d26,U+7d28-7d2a,U+7d2c-7d2e,U+7d30,U+7d31,U+7d33,U+7d35,U+7d36,U+7d38-7d3a,U+7d40,U+7d42-7d44,U+7d46,U+7d4b,U+7d4c,U+7d4f,U+7d51,U+7d54-7d56,U+7d58,U+7d5b,U+7d5c,U+7d5e,U+7d61-7d63,U+7d66,U+7d68,U+7d6a-7d6c,U+7d6f,U+7d71-7d73,U+7d75-7d77,U+7d79,U+7d7a,U+7d7e,U+7d81,U+7d84-7d8b,U+7d8d,U+7d8f,U+7d91,U+7d94,U+7d96,U+7d98-7d9a,U+7d9c-7da0,U+7da2,U+7da6,U+7daa-7db1,U+7db4-7db8,U+7dba-7dbf,U+7dc1; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.29.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+7bc3,U+7bc4,U+7bc6,U+7bc8-7bcc,U+7bd1,U+7bd3,U+7bd4,U+7bd9,U+7bda,U+7bdd,U+7be0,U+7be1,U+7be4-7be6,U+7be9,U+7bea,U+7bef,U+7bf4,U+7bf6,U+7bfc,U+7bfe,U+7c01,U+7c03,U+7c07,U+7c08,U+7c0a-7c0d,U+7c0f,U+7c11,U+7c15,U+7c16,U+7c19,U+7c1e-7c21,U+7c23,U+7c24,U+7c26,U+7c28-7c33,U+7c35,U+7c37-7c3b,U+7c3d,U+7c3e,U+7c40,U+7c41,U+7c43,U+7c47,U+7c48,U+7c4c,U+7c50,U+7c53,U+7c54,U+7c59,U+7c5f,U+7c60,U+7c63-7c65,U+7c6c,U+7c6e,U+7c72,U+7c74,U+7c79,U+7c7a,U+7c7c,U+7c81,U+7c82,U+7c84,U+7c85,U+7c88,U+7c8a-7c91,U+7c93-7c96,U+7c99,U+7c9b-7c9e,U+7ca0-7ca2,U+7ca6-7ca9,U+7cac,U+7caf-7cb3,U+7cb5-7cb7,U+7cba-7cbd,U+7cbf-7cc2,U+7cc5,U+7cc7-7cc9; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.30.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+7aca,U+7ad1,U+7ad2,U+7ada-7add,U+7ae1,U+7ae4,U+7ae6,U+7af4-7af7,U+7afa,U+7afb,U+7afd-7b0a,U+7b0c,U+7b0e,U+7b0f,U+7b13,U+7b15,U+7b16,U+7b18,U+7b19,U+7b1e-7b20,U+7b22-7b25,U+7b29-7b2b,U+7b2d,U+7b2e,U+7b30-7b3b,U+7b3e,U+7b3f,U+7b41,U+7b42,U+7b44-7b47,U+7b4a,U+7b4c-7b50,U+7b58,U+7b5a,U+7b5c,U+7b60,U+7b66,U+7b67,U+7b69,U+7b6c-7b6f,U+7b72-7b76,U+7b7b-7b7d,U+7b7f,U+7b82,U+7b85,U+7b87,U+7b8b-7b96,U+7b98,U+7b99,U+7b9b-7b9f,U+7ba2-7ba4,U+7ba6-7bac,U+7bae-7bb0,U+7bb4,U+7bb7-7bb9,U+7bbb,U+7bc0,U+7bc1; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.31.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+797c,U+797e-7980,U+7982,U+7986,U+7987,U+7989-798e,U+7992,U+7994,U+7995,U+7997,U+7998,U+799a-799c,U+799f,U+79a3-79a6,U+79a8-79ac,U+79ae-79b1,U+79b3-79b5,U+79b8,U+79ba,U+79bf,U+79c2,U+79c6,U+79c8,U+79cf,U+79d5,U+79d6,U+79dd,U+79de,U+79e3,U+79e7,U+79e8,U+79eb,U+79ed,U+79f4,U+79f7,U+79f8,U+79fa,U+79fe,U+7a02,U+7a03,U+7a05,U+7a0a,U+7a14,U+7a17,U+7a19,U+7a1c,U+7a1e,U+7a1f,U+7a23,U+7a25,U+7a26,U+7a2c,U+7a2e,U+7a30-7a32,U+7a36,U+7a37,U+7a39,U+7a3c,U+7a40,U+7a42,U+7a47,U+7a49,U+7a4c-7a4f,U+7a51,U+7a55,U+7a5b,U+7a5d,U+7a5e,U+7a62,U+7a63,U+7a66,U+7a68,U+7a69,U+7a6b,U+7a70,U+7a78,U+7a80,U+7a85-7a88,U+7a8a,U+7a90,U+7a93-7a96,U+7a98,U+7a9b,U+7a9c,U+7a9e,U+7aa0,U+7aa1,U+7aa3,U+7aa8-7aaa,U+7aac-7ab0,U+7ab3,U+7ab8,U+7aba,U+7abd-7abf,U+7ac4,U+7ac5,U+7ac7,U+7ac8; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.32.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+783e,U+7841-7844,U+7847-7849,U+784b,U+784c,U+784e-7854,U+7856,U+7857,U+7859,U+785a,U+7865,U+7869,U+786a,U+786d,U+786f,U+7876,U+7877,U+787c,U+787e,U+787f,U+7881,U+7887-7889,U+7893,U+7894,U+7898-789e,U+78a1,U+78a3,U+78a5,U+78a9,U+78ad,U+78b2,U+78b4,U+78b6,U+78b9,U+78ba,U+78bc,U+78bf,U+78c3,U+78c9,U+78cb,U+78d0-78d2,U+78d4,U+78d9,U+78da,U+78dc,U+78de,U+78e1,U+78e5,U+78e6,U+78ea,U+78ec,U+78ef,U+78f1,U+78f2,U+78f4,U+78fa,U+78fb,U+78fe,U+7901,U+7902,U+7905,U+7907,U+7909,U+790b,U+790c,U+790e,U+7910,U+7913,U+7919-791b,U+791e,U+791f,U+7921,U+7924,U+7926,U+792a,U+792b,U+7934,U+7936,U+7939,U+793b,U+793d,U+7940,U+7942,U+7943,U+7945-7947,U+7949,U+794a,U+794c,U+794e-7951,U+7953-7955,U+7957-795a,U+795c,U+795f,U+7960,U+7962,U+7964,U+7966,U+7967,U+7969,U+796b,U+796f,U+7972,U+7974,U+7979,U+797b; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.33.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+770f,U+7712,U+7714,U+7716,U+7719-771b,U+771e,U+7721,U+7722,U+7726,U+7728,U+772b-7730,U+7732-7736,U+7739,U+773a,U+773d-773f,U+7743,U+7746,U+7747,U+774c-774f,U+7751,U+7752,U+7758-775a,U+775c-775e,U+7762,U+7765,U+7766,U+7768-776a,U+776c,U+776d,U+7771,U+7772,U+777a,U+777c-777e,U+7780,U+7785,U+7787,U+778b-778d,U+778f-7791,U+7793,U+779e-77a0,U+77a2,U+77a5,U+77ad,U+77af,U+77b4-77b7,U+77bd-77c0,U+77c2,U+77c5,U+77c7,U+77cd,U+77d6,U+77d7,U+77d9,U+77da,U+77dd,U+77de,U+77e7,U+77ea,U+77ec,U+77ef,U+77f8,U+77fb,U+77fd,U+77fe,U+7800,U+7803,U+7806,U+7809,U+780f-7812,U+7815,U+7817,U+7818,U+781a-781f,U+7821-7823,U+7825-7827,U+7829,U+782b-7830,U+7832,U+7833,U+7835,U+7837,U+7839-783c; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.34.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+760a-760e,U+7610-7619,U+761b-761d,U+761f-7622,U+7625,U+7627-762a,U+762e-7630,U+7632-7635,U+7638-763a,U+763c,U+763d,U+763f,U+7640,U+7642,U+7643,U+7647,U+7648,U+764d,U+764e,U+7652,U+7654,U+7658,U+765a,U+765c,U+765e,U+765f,U+7661-7663,U+7665,U+7669,U+766c,U+766e,U+766f,U+7671-7673,U+7675,U+7676,U+7678-767a,U+767f,U+7681,U+7683,U+7688,U+768a-768c,U+768e,U+7690-7692,U+7695,U+7698,U+769a,U+769b,U+769d-76a0,U+76a2,U+76a4-76a7,U+76ab,U+76ac,U+76af,U+76b0,U+76b2,U+76b4,U+76b5,U+76ba,U+76bb,U+76bf,U+76c2,U+76c3,U+76c5,U+76c9,U+76cc-76ce,U+76dc-76de,U+76e1-76ea,U+76f1,U+76f9-76fb,U+76fd,U+76ff,U+7700,U+7703,U+7704,U+7707,U+7708,U+770c-770e; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.35.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+74ef,U+74f4,U+74ff,U+7501,U+7503,U+7505,U+7508,U+750d,U+750f,U+7511,U+7513,U+7515,U+7517,U+7519,U+7521-7527,U+752a,U+752c,U+752d,U+752f,U+7534,U+7536,U+753a,U+753e,U+7540,U+7544,U+7547-754b,U+754d,U+754e,U+7550-7553,U+7556,U+7557,U+755a,U+755b,U+755d,U+755e,U+7560,U+7562,U+7564,U+7566-7568,U+756b,U+756c,U+756f-7573,U+7575,U+7579-757c,U+757e,U+757f,U+7581-7584,U+7587,U+7589-758e,U+7590,U+7592,U+7594,U+7596,U+7599,U+759a,U+759d,U+759f,U+75a0,U+75a3,U+75a5,U+75a8,U+75ac,U+75ad,U+75b0,U+75b1,U+75b3-75b5,U+75b8,U+75bd,U+75c1-75c4,U+75c8-75ca,U+75cc,U+75cd,U+75d4,U+75d6,U+75d9,U+75de,U+75e0,U+75e2-75e4,U+75e6-75ea,U+75f1-75f3,U+75f7,U+75f9,U+75fa,U+75fc,U+75fe-7601,U+7603,U+7605,U+7606,U+7608,U+7609; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.36.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+73e7-73ea,U+73ee-73f0,U+73f2,U+73f4,U+73f5,U+73f7,U+73f9,U+73fa,U+73fc,U+73fd,U+73ff-7402,U+7404,U+7407,U+7408,U+740a-740f,U+7418,U+741a-741c,U+741e,U+7424,U+7425,U+7428,U+7429,U+742c-7430,U+7432,U+7435,U+7436,U+7438-743b,U+743e-7441,U+7443-7446,U+7448,U+744a,U+744b,U+7452,U+7457,U+745b,U+745d,U+7460,U+7462-7465,U+7467-746a,U+746d,U+746f,U+7471,U+7473,U+7474,U+7477,U+747a,U+747e,U+7481,U+7482,U+7484,U+7486,U+7488-748b,U+748e,U+748f,U+7493,U+7498,U+749a,U+749c-74a0,U+74a3,U+74a6,U+74a9,U+74aa,U+74ae,U+74b0-74b2,U+74b6,U+74b8-74ba,U+74bd,U+74bf,U+74c1,U+74c3,U+74c5,U+74c8,U+74ca,U+74cc,U+74cf,U+74d1,U+74d2,U+74d4,U+74d5,U+74d8-74db,U+74de-74e0,U+74e2,U+74e4,U+74e5,U+74e7-74e9,U+74ee; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.37.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+72dd-72df,U+72e1,U+72e5,U+72e6,U+72e8,U+72ef,U+72f0,U+72f2-72f4,U+72f6,U+72f7,U+72f9-72fb,U+72fd,U+7300-7304,U+7307,U+730a-730c,U+7313-7317,U+731d-7322,U+7327,U+7329,U+732c,U+732d,U+7330,U+7331,U+7333,U+7335-7337,U+7339,U+733d,U+733e,U+7340,U+7342,U+7344,U+7345,U+734a,U+734d-7350,U+7352,U+7355,U+7357,U+7359,U+735f,U+7360,U+7362,U+7363,U+7365,U+7368,U+736c,U+736d,U+736f,U+7370,U+7372,U+7374-7376,U+7378,U+737a,U+737b,U+737d,U+737e,U+7382,U+7383,U+7386,U+7388,U+738a,U+738c-7393,U+7395,U+7397-739a,U+739c,U+739e,U+73a0-73a3,U+73a5-73a8,U+73aa,U+73ad,U+73b1,U+73b3,U+73b6,U+73b7,U+73b9,U+73c2,U+73c5-73c9,U+73cc,U+73ce-73d0,U+73d2,U+73d6,U+73d9,U+73db-73de,U+73e3,U+73e5,U+73e6; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.38.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+719c,U+71a0,U+71a4,U+71a5,U+71a8,U+71af,U+71b1-71bc,U+71be,U+71c1,U+71c2,U+71c4,U+71c8-71cb,U+71ce-71d0,U+71d2,U+71d4,U+71d9,U+71da,U+71dc,U+71df,U+71e0,U+71e6-71e8,U+71ea,U+71ed,U+71ee,U+71f4,U+71f6,U+71f9,U+71fb,U+71fc,U+71ff,U+7200,U+7207,U+720c,U+720d,U+7210,U+7216,U+721a-721e,U+7223,U+7228,U+722b,U+722d,U+722e,U+7230,U+7232,U+723a-723c,U+723e-7242,U+7246,U+724b,U+724d,U+724e,U+7252,U+7256,U+7258,U+725a,U+725c,U+725d,U+7260,U+7264-7266,U+726a,U+726c,U+726e,U+726f,U+7271,U+7273,U+7274,U+7278,U+727b,U+727d,U+727e,U+7281,U+7282,U+7284,U+7287,U+728a,U+728d,U+728f,U+7292,U+729b,U+729f,U+72a0,U+72a7,U+72ad,U+72ae,U+72b0-72b5,U+72b7,U+72b8,U+72ba-72be,U+72c0,U+72c1,U+72c3,U+72c5,U+72c6,U+72c8,U+72cc-72ce,U+72d2,U+72d6,U+72db; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.39.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+7005,U+7006,U+7009,U+700b,U+700d,U+7015,U+7018,U+701b,U+701d-701f,U+7023,U+7026-7028,U+702c,U+702e-7030,U+7035,U+7037,U+7039,U+703a,U+703c-703e,U+7044,U+7049-704b,U+704f,U+7051,U+7058,U+705a,U+705c-705e,U+7061,U+7064,U+7066,U+706c,U+707d,U+7080,U+7081,U+7085,U+7086,U+708a,U+708f,U+7091,U+7094,U+7095,U+7098,U+7099,U+709c,U+709d,U+709f,U+70a4,U+70a9,U+70aa,U+70af-70b2,U+70b4-70b7,U+70bb,U+70c0,U+70c3,U+70c7,U+70cb,U+70ce,U+70cf,U+70d4,U+70d9,U+70da,U+70dc,U+70dd,U+70e0,U+70e9,U+70ec,U+70f7,U+70fa,U+70fd,U+70ff,U+7104,U+7108,U+7109,U+710c,U+7110,U+7113,U+7114,U+7116-7118,U+711c,U+711e,U+7120,U+712e,U+712f,U+7131,U+713c,U+7142,U+7144-7147,U+7149-714b,U+7150,U+7152,U+7155,U+7156,U+7159,U+715a,U+715c,U+7161,U+7165,U+7166,U+7168,U+7169,U+716d,U+7173,U+7174,U+7176,U+7178,U+717a,U+717d,U+717f,U+7180,U+7184,U+7186-7188,U+7192,U+7198; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.40.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+6ed8,U+6ed9,U+6edb,U+6edd,U+6edf,U+6ee0,U+6ee2,U+6ee6,U+6eea,U+6eec,U+6eee,U+6eef,U+6ef2,U+6ef3,U+6ef7-6efa,U+6efe,U+6f01,U+6f03,U+6f08,U+6f09,U+6f15,U+6f16,U+6f19,U+6f22-6f25,U+6f28-6f2a,U+6f2c,U+6f2d,U+6f2f,U+6f31,U+6f32,U+6f36-6f38,U+6f3f,U+6f43-6f46,U+6f48,U+6f4b,U+6f4e,U+6f4f,U+6f51,U+6f54-6f57,U+6f59-6f5b,U+6f5e,U+6f5f,U+6f61,U+6f64-6f67,U+6f69-6f6c,U+6f6f-6f72,U+6f74-6f76,U+6f78-6f7e,U+6f80-6f83,U+6f86,U+6f89,U+6f8b-6f8d,U+6f90,U+6f92,U+6f94,U+6f97,U+6f98,U+6f9b,U+6fa3-6fa5,U+6fa7,U+6faa,U+6faf,U+6fb1,U+6fb4,U+6fb6,U+6fb9,U+6fc1-6fcb,U+6fd1-6fd3,U+6fd5,U+6fdb,U+6fde-6fe1,U+6fe4,U+6fe9,U+6feb,U+6fec,U+6fee-6ff1,U+6ffa,U+6ffe; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.41.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+6dc3,U+6dc5,U+6dc6,U+6dc9,U+6dcc,U+6dcf,U+6dd2,U+6dd3,U+6dd6,U+6dd9-6dde,U+6de0,U+6de4,U+6de6,U+6de8-6dea,U+6dec,U+6def,U+6df0,U+6df5,U+6df6,U+6df8,U+6dfa,U+6dfc,U+6e03,U+6e04,U+6e07-6e09,U+6e0b,U+6e0c,U+6e0e,U+6e11,U+6e13,U+6e15,U+6e16,U+6e19-6e1b,U+6e1e,U+6e1f,U+6e22,U+6e25-6e27,U+6e2b,U+6e2c,U+6e36,U+6e37,U+6e39,U+6e3a,U+6e3c-6e41,U+6e44,U+6e45,U+6e47,U+6e49-6e4b,U+6e4d,U+6e4e,U+6e51,U+6e53-6e55,U+6e5c-6e5f,U+6e61-6e63,U+6e65-6e67,U+6e6a,U+6e6b,U+6e6d-6e70,U+6e72-6e74,U+6e76-6e78,U+6e7c,U+6e80-6e82,U+6e86,U+6e87,U+6e89,U+6e8d,U+6e8f,U+6e96,U+6e98,U+6e9d-6e9f,U+6ea1,U+6ea5-6ea7,U+6eab,U+6eb1,U+6eb2,U+6eb4,U+6eb7,U+6ebb-6ebd,U+6ebf-6ec6,U+6ec8,U+6ec9,U+6ecc,U+6ecf,U+6ed0,U+6ed3,U+6ed4,U+6ed7; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.42.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+6cb2,U+6cb4,U+6cb5,U+6cb7,U+6cba,U+6cbc,U+6cbd,U+6cc1-6cc3,U+6cc5-6cc7,U+6cd0-6cd4,U+6cd6,U+6cd7,U+6cd9,U+6cda,U+6cde-6ce0,U+6ce4,U+6ce6,U+6ce9,U+6ceb-6cef,U+6cf1,U+6cf2,U+6cf6,U+6cf7,U+6cfa,U+6cfe,U+6d03-6d05,U+6d07,U+6d08,U+6d0a,U+6d0c,U+6d0e-6d11,U+6d13,U+6d14,U+6d16,U+6d18-6d1a,U+6d1c,U+6d1f,U+6d22,U+6d23,U+6d26-6d29,U+6d2b,U+6d2e-6d30,U+6d33,U+6d35,U+6d36,U+6d38-6d3a,U+6d3c,U+6d3f,U+6d42-6d44,U+6d48,U+6d49,U+6d4d,U+6d50,U+6d52,U+6d54,U+6d56-6d58,U+6d5a-6d5c,U+6d5e,U+6d60,U+6d61,U+6d63-6d65,U+6d67,U+6d6c,U+6d6d,U+6d6f,U+6d75,U+6d7b-6d7d,U+6d87,U+6d8a,U+6d8e,U+6d90-6d9a,U+6d9c-6da0,U+6da2,U+6da3,U+6da7,U+6daa-6dac,U+6dae,U+6db3,U+6db4,U+6db6,U+6db8,U+6dbc,U+6dbf,U+6dc2; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.43.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+6b85,U+6b86,U+6b89,U+6b8d,U+6b91-6b93,U+6b95,U+6b97,U+6b98,U+6b9a,U+6b9b,U+6b9e,U+6ba1-6ba4,U+6ba9,U+6baa,U+6bad,U+6baf,U+6bb0,U+6bb2,U+6bb3,U+6bba-6bbd,U+6bc0,U+6bc2,U+6bc6,U+6bca-6bcc,U+6bce,U+6bd0,U+6bd1,U+6bd3,U+6bd6-6bd8,U+6bda,U+6be1,U+6be6,U+6bec,U+6bf1,U+6bf3-6bf5,U+6bf9,U+6bfd,U+6c05-6c08,U+6c0d,U+6c10,U+6c15-6c1a,U+6c21,U+6c23-6c26,U+6c29-6c2d,U+6c30-6c33,U+6c35-6c37,U+6c39,U+6c3a,U+6c3c-6c3f,U+6c46,U+6c4a-6c4c,U+6c4e-6c50,U+6c54,U+6c56,U+6c59-6c5c,U+6c5e,U+6c63,U+6c67-6c69,U+6c6b,U+6c6d,U+6c6f,U+6c72-6c74,U+6c78-6c7a,U+6c7c,U+6c84-6c87,U+6c8b,U+6c8c,U+6c8f,U+6c91,U+6c93-6c96,U+6c98,U+6c9a,U+6c9d,U+6ca2-6ca4,U+6ca8,U+6ca9,U+6cac-6cae,U+6cb1; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.44.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+6a01,U+6a06,U+6a09,U+6a0b,U+6a11,U+6a13,U+6a17-6a19,U+6a1b,U+6a1e,U+6a23,U+6a28,U+6a29,U+6a2b,U+6a2f,U+6a30,U+6a35,U+6a38-6a40,U+6a46-6a48,U+6a4a,U+6a4b,U+6a4e,U+6a50,U+6a52,U+6a5b,U+6a5e,U+6a62,U+6a65-6a67,U+6a6b,U+6a79,U+6a7c,U+6a7e,U+6a7f,U+6a84,U+6a86,U+6a8e,U+6a90,U+6a91,U+6a94,U+6a97,U+6a9c,U+6a9e,U+6aa0,U+6aa2,U+6aa4,U+6aa9,U+6aab,U+6aae-6ab0,U+6ab2,U+6ab3,U+6ab5,U+6ab7,U+6ab8,U+6aba,U+6abb,U+6abd,U+6abf,U+6ac2-6ac4,U+6ac6,U+6ac8,U+6acc,U+6ace,U+6ad2,U+6ad3,U+6ad8-6adc,U+6adf,U+6ae0,U+6ae4,U+6ae5,U+6ae7,U+6ae8,U+6afb,U+6b04,U+6b05,U+6b0d-6b13,U+6b16,U+6b17,U+6b19,U+6b24,U+6b25,U+6b2c,U+6b37-6b39,U+6b3b,U+6b3d,U+6b43,U+6b46,U+6b4e,U+6b50,U+6b53,U+6b54,U+6b58,U+6b59,U+6b5b,U+6b60,U+6b69,U+6b6d,U+6b6f,U+6b70,U+6b73,U+6b74,U+6b77-6b7a,U+6b80-6b84; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.45.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+68e1,U+68e3,U+68e4,U+68e6-68ed,U+68ef,U+68f0,U+68f2,U+68f4,U+68f6,U+68f7,U+68f9,U+68fb-68fd,U+68ff-6902,U+6906-6908,U+690b,U+6910,U+691a-691c,U+691f,U+6920,U+6924,U+6925,U+692a,U+692d,U+6934,U+6939,U+693c-6945,U+694a,U+694b,U+6952-6954,U+6957,U+6959,U+695b,U+695d,U+695f,U+6962-6964,U+6966,U+6968-696c,U+696e,U+696f,U+6971,U+6973,U+6974,U+6978,U+6979,U+697d,U+697f,U+6980,U+6985,U+6987-698a,U+698d,U+698e,U+6994-6999,U+699b,U+69a3,U+69a4,U+69a6,U+69a7,U+69ab,U+69ad,U+69ae,U+69b1,U+69b7,U+69bb,U+69bc,U+69c1,U+69c3-69c5,U+69c7,U+69ca-69ce,U+69d0,U+69d1,U+69d3,U+69d4,U+69d7-69da,U+69e0,U+69e4,U+69e6,U+69ec,U+69ed,U+69f1-69f3,U+69f8,U+69fa-69fc,U+69fe-6a00; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.46.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+6792,U+6793,U+6796,U+6798,U+679e-67a1,U+67a5,U+67a7-67a9,U+67ac,U+67ad,U+67b0,U+67b1,U+67b3,U+67b5,U+67b7,U+67b9,U+67bb,U+67bc,U+67c0,U+67c1,U+67c3,U+67c5-67ca,U+67d1,U+67d2,U+67d7-67d9,U+67dd-67df,U+67e2-67e4,U+67e6-67e9,U+67f0,U+67f5,U+67f7,U+67f8,U+67fa,U+67fb,U+67fd,U+67fe,U+6800,U+6801,U+6803,U+6804,U+6806,U+6809,U+680a,U+680c,U+680e,U+6812,U+681d-681f,U+6822,U+6824-6829,U+682b-682d,U+6831-6835,U+683b,U+683e,U+6840,U+6841,U+6844,U+6845,U+6849,U+684e,U+6853,U+6855,U+6856,U+685c,U+685d,U+685f-6862,U+6864,U+6866-6868,U+686b,U+686f,U+6872,U+6874,U+6877,U+687f,U+6883,U+6886,U+688f,U+689b,U+689f,U+68a0,U+68a2,U+68a3,U+68b1,U+68b6,U+68b9,U+68ba,U+68bc-68bf,U+68c1-68c4,U+68c6,U+68c8,U+68ca,U+68cc,U+68d0,U+68d1,U+68d3,U+68d7,U+68dd,U+68df; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.47.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+663a,U+663b,U+663d,U+6641,U+6644,U+6645,U+6649,U+664c,U+664f,U+6654,U+6659,U+665b,U+665d,U+665e,U+6660-6667,U+6669,U+666b,U+666c,U+6671,U+6673,U+6677-6679,U+667c,U+6680,U+6681,U+6684,U+6685,U+6688,U+6689,U+668b-668e,U+6690,U+6692,U+6695,U+6698,U+669a,U+669d,U+669f,U+66a0,U+66a2,U+66a3,U+66a6,U+66aa,U+66ab,U+66b1,U+66b2,U+66b5,U+66b8,U+66b9,U+66bb,U+66be,U+66c1,U+66c6-66c9,U+66cc,U+66d5-66d8,U+66da-66dc,U+66de-66e2,U+66e8-66ea,U+66ec,U+66f1,U+66f3,U+66f7,U+66fa,U+66fd,U+6702,U+6705,U+670a,U+670f,U+6710,U+6713,U+6715,U+6719,U+6722,U+6723,U+6725-6727,U+6729,U+672d,U+672e,U+6732,U+6733,U+6736,U+6739,U+673b,U+673f,U+6744,U+6748,U+674c,U+674d,U+6753,U+6755,U+6762,U+6767,U+6769-676c,U+676e,U+6772,U+6773,U+6775,U+6777,U+677a-677d,U+6782,U+6783,U+6787,U+678a-678d,U+678f; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.48.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+64f8,U+64fa,U+64fc,U+64fe,U+64ff,U+6503,U+6509,U+650f,U+6514,U+6518,U+651c-651e,U+6522-6525,U+652a-652c,U+652e,U+6530-6532,U+6534,U+6535,U+6537,U+6538,U+653a,U+653c,U+653d,U+6542,U+6549-654b,U+654d,U+654e,U+6553-6555,U+6557,U+6558,U+655d,U+6564,U+6569,U+656b,U+656d-656f,U+6571,U+6573,U+6575,U+6576,U+6578-657e,U+6581-6583,U+6585,U+6586,U+6589,U+658e,U+658f,U+6592,U+6593,U+6595,U+6596,U+659b,U+659d,U+659f-65a1,U+65a3,U+65ab,U+65ac,U+65b2,U+65b6,U+65b7,U+65ba,U+65bb,U+65be-65c0,U+65c2-65c4,U+65c6-65c8,U+65cc,U+65ce,U+65d0,U+65d2,U+65d3,U+65d6,U+65db,U+65dd,U+65e1,U+65e3,U+65ee-65f0,U+65f3-65f5,U+65f8,U+65fb,U+65fc,U+65fe-6600,U+6603,U+6607,U+6609,U+660b,U+6610,U+6611,U+6619,U+661a,U+661c-661e,U+6621,U+6624,U+6626,U+662a-662c,U+662e,U+6630,U+6631,U+6633,U+6634,U+6636; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.49.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+63bc,U+63be,U+63c0,U+63c3,U+63c4,U+63c6,U+63c8,U+63cd,U+63ce,U+63d1,U+63d6,U+63da,U+63db,U+63de,U+63e0,U+63e3,U+63e9,U+63ea,U+63ee,U+63f2,U+63f5-63fa,U+63fc,U+63fe-6400,U+6406,U+640b-640d,U+6410,U+6414,U+6416,U+6417,U+641b,U+6420-6423,U+6425-6428,U+642a,U+6431,U+6432,U+6434-6437,U+643d-6442,U+6445,U+6448,U+6450-6452,U+645b-645f,U+6462,U+6465,U+6468,U+646d,U+646f-6471,U+6473,U+6477,U+6479-647d,U+6482-6485,U+6487,U+6488,U+648c,U+6490,U+6493,U+6496-649a,U+649d,U+64a0,U+64a5,U+64ab,U+64ac,U+64b1-64b7,U+64b9-64bb,U+64be-64c1,U+64c4,U+64c7,U+64c9-64cb,U+64d0,U+64d4,U+64d7,U+64d8,U+64da,U+64de,U+64e0-64e2,U+64e4,U+64e9,U+64ec,U+64f0-64f2,U+64f4,U+64f7; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.50.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+623b,U+623d,U+623e,U+6243,U+6246,U+6248,U+6249,U+624c,U+6255,U+6259,U+625e,U+6260,U+6261,U+6265,U+6266,U+626a,U+6271,U+627a,U+627c,U+627d,U+6283,U+6286,U+6289,U+628e,U+6294,U+629c,U+629e,U+629f,U+62a1,U+62a8,U+62ba,U+62bb,U+62bf,U+62c2,U+62c4,U+62c8,U+62ca,U+62cb,U+62ce,U+62cf,U+62d1,U+62d7,U+62d9,U+62da,U+62dd,U+62e0,U+62e1,U+62e3,U+62e4,U+62e7,U+62eb,U+62ee,U+62f0,U+62f4-62f6,U+6308,U+630a-630e,U+6310,U+6312,U+6313,U+6317,U+6319,U+631b,U+631d-631f,U+6322,U+6326,U+6329,U+6331,U+6332,U+6334-6337,U+6339,U+633b,U+633c,U+633e-6340,U+6343,U+6347,U+634b-634e,U+6354,U+635c,U+635d,U+6368,U+6369,U+636d,U+636f-6372,U+6376,U+637a,U+637b,U+637d,U+6382,U+6383,U+6387,U+638a,U+638b,U+638d,U+638e,U+6391,U+6393-6397,U+6399,U+639b,U+639e,U+639f,U+63a1,U+63a3,U+63a4,U+63ac-63ae,U+63b1-63b5,U+63b7-63bb; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.51.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+60fa,U+6100,U+6106,U+610d,U+610e,U+6112,U+6114,U+6115,U+6119,U+611c,U+6120,U+6122,U+6123,U+6126,U+6128-6130,U+6136,U+6137,U+613a,U+613d,U+613e,U+6144,U+6146,U+6147,U+614a,U+614b,U+6151,U+6153,U+6158,U+615a,U+615c,U+615d,U+615f,U+6161,U+6163-6165,U+616b,U+616c,U+616e,U+6171,U+6173-6177,U+617e,U+6182,U+6187,U+618a,U+618d,U+618e,U+6190,U+6191,U+6194,U+6199,U+619a,U+619c,U+619f,U+61a1,U+61a3,U+61a4,U+61a7-61a9,U+61ab-61ad,U+61b2,U+61b3,U+61b5-61b7,U+61ba,U+61bb,U+61bf,U+61c3,U+61c4,U+61c6,U+61c7,U+61c9-61cb,U+61d0,U+61d1,U+61d3,U+61d4,U+61d7,U+61da,U+61df-61e1,U+61e6,U+61ee,U+61f0,U+61f2,U+61f6-61f8,U+61fa,U+61fc-61fe,U+6200,U+6206,U+6207,U+6209,U+620b,U+620d,U+620e,U+6213-6215,U+6217,U+6219,U+621b-6223,U+6225,U+6226,U+622c,U+622e-6230,U+6232,U+6238; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.52.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+5fd1-5fd6,U+5fda-5fde,U+5fe1,U+5fe2,U+5fe4,U+5fe5,U+5fea,U+5fed,U+5fee,U+5ff1-5ff3,U+5ff6,U+5ff8,U+5ffb,U+5ffe,U+5fff,U+6002-6006,U+600a,U+600d,U+600f,U+6014,U+6019,U+601b,U+6020,U+6023,U+6026,U+6029,U+602b,U+602e,U+602f,U+6031,U+6033,U+6035,U+6039,U+603f,U+6041-6043,U+6046,U+604f,U+6053,U+6054,U+6058-605b,U+605d,U+605e,U+6060,U+6063,U+6065,U+6067,U+606a-606c,U+6075,U+6078,U+6079,U+607b,U+607d,U+607f,U+6083,U+6085-6087,U+608a,U+608c,U+608e,U+608f,U+6092,U+6093,U+6095-6097,U+609b-609d,U+60a2,U+60a7,U+60a9-60ab,U+60ad,U+60af-60b1,U+60b3-60b6,U+60b8,U+60bb,U+60bd,U+60be,U+60c0-60c3,U+60c6-60c9,U+60cb,U+60ce,U+60d3,U+60d4,U+60d7-60db,U+60dd,U+60e1-60e4,U+60e6,U+60ea,U+60ec-60ee,U+60f0,U+60f1,U+60f4,U+60f6; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.53.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+5ea3-5ea5,U+5ea8,U+5eab,U+5eaf,U+5eb3,U+5eb5,U+5eb6,U+5eb9,U+5ebe,U+5ec1-5ec3,U+5ec6,U+5ec8,U+5ecb,U+5ecc,U+5ed1,U+5ed2,U+5ed4,U+5ed9-5edb,U+5edd,U+5edf,U+5ee0,U+5ee2,U+5ee3,U+5ee8,U+5eea,U+5eec,U+5eef,U+5ef0,U+5ef3,U+5ef4,U+5ef8,U+5efb,U+5efc,U+5efe,U+5eff,U+5f01,U+5f07,U+5f0b-5f0e,U+5f10-5f12,U+5f14,U+5f1a,U+5f22,U+5f28,U+5f29,U+5f2c,U+5f2d,U+5f35,U+5f36,U+5f38,U+5f3b-5f43,U+5f45-5f4a,U+5f4c-5f4e,U+5f50,U+5f54,U+5f56-5f59,U+5f5b-5f5f,U+5f61,U+5f63,U+5f65,U+5f67,U+5f68,U+5f6b,U+5f6e,U+5f6f,U+5f72-5f78,U+5f7a,U+5f7e,U+5f7f,U+5f82,U+5f83,U+5f87,U+5f89,U+5f8a,U+5f8d,U+5f91,U+5f93,U+5f95,U+5f98,U+5f99,U+5f9c,U+5f9e,U+5fa0,U+5fa6-5fa9,U+5fac,U+5fad,U+5faf,U+5fb3-5fb5,U+5fb9,U+5fbc,U+5fc4,U+5fc9,U+5fcb,U+5fce-5fd0; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.54.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+5d32-5d34,U+5d3c-5d3e,U+5d41-5d44,U+5d46-5d48,U+5d4a,U+5d4b,U+5d4e,U+5d50,U+5d52,U+5d55-5d58,U+5d5a-5d5d,U+5d68,U+5d69,U+5d6b,U+5d6c,U+5d6f,U+5d74,U+5d7f,U+5d82-5d89,U+5d8b,U+5d8c,U+5d8f,U+5d92,U+5d93,U+5d99,U+5d9d,U+5db2,U+5db6,U+5db7,U+5dba,U+5dbc,U+5dbd,U+5dc2,U+5dc3,U+5dc6,U+5dc7,U+5dc9,U+5dcc,U+5dd2,U+5dd4,U+5dd6-5dd8,U+5ddb,U+5ddc,U+5de3,U+5ded,U+5def,U+5df3,U+5df6,U+5dfa-5dfd,U+5dff,U+5e00,U+5e07,U+5e0f,U+5e11,U+5e13,U+5e14,U+5e19-5e1b,U+5e22,U+5e25,U+5e28,U+5e2a,U+5e2f-5e31,U+5e33,U+5e34,U+5e36,U+5e39-5e3c,U+5e3e,U+5e40,U+5e44,U+5e46-5e48,U+5e4c,U+5e4f,U+5e53,U+5e54,U+5e57,U+5e59,U+5e5b,U+5e5e,U+5e5f,U+5e61,U+5e63,U+5e6a,U+5e6b,U+5e75,U+5e77,U+5e79,U+5e7a,U+5e7e,U+5e80,U+5e81,U+5e83,U+5e85,U+5e87,U+5e8b,U+5e91,U+5e92,U+5e96,U+5e98,U+5e9b,U+5e9d,U+5ea0-5ea2; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.55.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+5bf5,U+5bf6,U+5bfe,U+5c02,U+5c03,U+5c05,U+5c07-5c09,U+5c0b,U+5c0c,U+5c0e,U+5c10,U+5c12,U+5c13,U+5c15,U+5c17,U+5c19,U+5c1b,U+5c1c,U+5c1e,U+5c1f,U+5c22,U+5c25,U+5c28,U+5c2a,U+5c2b,U+5c2f,U+5c30,U+5c37,U+5c3b,U+5c43,U+5c44,U+5c46,U+5c47,U+5c4d,U+5c50,U+5c59,U+5c5b,U+5c5c,U+5c62-5c64,U+5c66,U+5c6c,U+5c6e,U+5c74,U+5c78-5c7e,U+5c80,U+5c83,U+5c84,U+5c88,U+5c8b-5c8d,U+5c91,U+5c94-5c96,U+5c98,U+5c99,U+5c9c,U+5c9e,U+5ca1-5ca3,U+5cab,U+5cac,U+5cb1,U+5cb5,U+5cb7,U+5cba,U+5cbd-5cbf,U+5cc1,U+5cc3,U+5cc4,U+5cc7,U+5ccb,U+5cd2,U+5cd8,U+5cd9,U+5cdf,U+5ce0,U+5ce3-5ce6,U+5ce8-5cea,U+5ced,U+5cef,U+5cf3,U+5cf4,U+5cf6,U+5cf8,U+5cfd,U+5d00-5d04,U+5d06,U+5d08,U+5d0b-5d0d,U+5d0f-5d13,U+5d15,U+5d17-5d1a,U+5d1d-5d22,U+5d24-5d27,U+5d2e-5d31; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.56.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+5ab2,U+5ab4,U+5ab5,U+5ab7-5aba,U+5abd-5abf,U+5ac3,U+5ac4,U+5ac6-5ac8,U+5aca,U+5acb,U+5acd,U+5acf-5ad2,U+5ad4,U+5ad8-5ada,U+5adc,U+5adf-5ae2,U+5ae4,U+5ae6,U+5ae8,U+5aea-5aed,U+5af0-5af3,U+5af5,U+5af9-5afb,U+5afd,U+5b01,U+5b05,U+5b08,U+5b0b,U+5b0c,U+5b11,U+5b16,U+5b17,U+5b1b,U+5b21,U+5b22,U+5b24,U+5b27-5b2e,U+5b30,U+5b32,U+5b34,U+5b36-5b38,U+5b3e-5b40,U+5b43,U+5b45,U+5b4a,U+5b4b,U+5b51-5b53,U+5b56,U+5b5a,U+5b5b,U+5b62,U+5b65,U+5b67,U+5b6a-5b6e,U+5b70,U+5b71,U+5b73,U+5b7a,U+5b7b,U+5b7f,U+5b80,U+5b84,U+5b8d,U+5b91,U+5b93-5b95,U+5b9f,U+5ba5,U+5ba6,U+5bac,U+5bae,U+5bb8,U+5bc0,U+5bc3,U+5bcb,U+5bd0,U+5bd1,U+5bd4-5bd8,U+5bda-5bdc,U+5be2,U+5be4-5be7,U+5be9,U+5beb,U+5bec,U+5bee-5bf0,U+5bf2,U+5bf3; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.57.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+5981,U+598f,U+5997,U+5998,U+599a,U+599c,U+599d,U+59a0,U+59a1,U+59a3,U+59a4,U+59a7,U+59aa-59ad,U+59af,U+59b2,U+59b3,U+59b5,U+59b6,U+59b8,U+59ba,U+59bd,U+59be,U+59c0,U+59c1,U+59c3,U+59c4,U+59c7-59ca,U+59cc,U+59cd,U+59cf,U+59d2,U+59d5,U+59d6,U+59d8,U+59d9,U+59db,U+59dd-59e0,U+59e2-59e7,U+59e9-59eb,U+59ee,U+59f1,U+59f3,U+59f5,U+59f7-59f9,U+59fd,U+5a06,U+5a08-5a0a,U+5a0c,U+5a0d,U+5a11-5a13,U+5a15,U+5a16,U+5a1a,U+5a1b,U+5a21-5a23,U+5a2d-5a2f,U+5a32,U+5a38,U+5a3c,U+5a3e-5a45,U+5a47,U+5a4a,U+5a4c,U+5a4d,U+5a4f-5a51,U+5a53,U+5a55-5a57,U+5a5e,U+5a60,U+5a62,U+5a65-5a67,U+5a6a,U+5a6c,U+5a6d,U+5a72,U+5a73,U+5a75,U+5a76,U+5a79-5a7c,U+5a81-5a84,U+5a8c,U+5a8e,U+5a93,U+5a96,U+5a97,U+5a9c,U+5a9e,U+5aa0,U+5aa3,U+5aa4,U+5aaa,U+5aae,U+5aaf,U+5ab1; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.58.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+5831,U+583a,U+583d,U+583f-5842,U+5844-5846,U+5848,U+584a,U+584d,U+5852,U+5857,U+5859,U+585a,U+585c,U+585d,U+5862,U+5868,U+5869,U+586c,U+586d,U+586f-5873,U+5875,U+5879,U+587d,U+587e,U+5880,U+5881,U+5888-588a,U+588d,U+5892,U+5896-5898,U+589a,U+589c,U+589d,U+58a0,U+58a1,U+58a3,U+58a6,U+58a9,U+58ab-58ae,U+58b0,U+58b3,U+58bb-58bf,U+58c2,U+58c3,U+58c5-58c8,U+58ca,U+58cc,U+58ce,U+58d1-58d3,U+58d5,U+58d8,U+58d9,U+58de,U+58df,U+58e2,U+58e9,U+58ec,U+58ef,U+58f1,U+58f2,U+58f5,U+58f7,U+58f8,U+58fa,U+58fd,U+5900,U+5902,U+5906,U+5908-590c,U+590e,U+5910,U+5914,U+5919,U+591b,U+591d,U+591e,U+5920,U+5922-5925,U+5928,U+592c,U+592d,U+592f,U+5932,U+5936,U+593c,U+593e,U+5940-5942,U+5944,U+594c,U+594d,U+5950,U+5953,U+5958,U+595a,U+5961,U+5966-5968,U+596a,U+596c-596e,U+5977,U+597b,U+597c; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.59.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+570a,U+570c,U+570d,U+570f,U+5712,U+5713,U+5718,U+5719,U+571c,U+571e,U+5725,U+5727,U+5729,U+572a,U+572c,U+572e,U+572f,U+5734,U+5735,U+5739,U+573b,U+5741,U+5743,U+5745,U+5749,U+574c,U+574d,U+575c,U+5763,U+5768,U+5769,U+576b,U+576d,U+576e,U+5770,U+5773,U+5775,U+5777,U+577b,U+577c,U+5785,U+5786,U+5788,U+578c,U+578e,U+578f,U+5793-5795,U+5799-57a1,U+57a3,U+57a4,U+57a6-57aa,U+57ac,U+57ad,U+57af-57b2,U+57b4-57b6,U+57b8,U+57b9,U+57bd-57bf,U+57c2,U+57c4-57c8,U+57cc,U+57cd,U+57cf,U+57d2,U+57d5-57de,U+57e1,U+57e2,U+57e4,U+57e5,U+57e7,U+57eb,U+57ed,U+57ef,U+57f4-57f8,U+57fc,U+57fd,U+5800,U+5801,U+5803,U+5805,U+5807,U+5809,U+580b-580e,U+5811,U+5814,U+5819,U+581b-5820,U+5822,U+5823,U+5825,U+5826,U+582c,U+582f; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.60.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+5605,U+5606,U+5608,U+560c,U+560d,U+560f,U+5614,U+5616,U+5617,U+561a,U+561c,U+561e,U+5621-5625,U+5627,U+5629,U+562b-5630,U+5636,U+5638-563a,U+563c,U+5640-5642,U+5649,U+564c-5650,U+5653-5655,U+5657-565b,U+5660,U+5663,U+5664,U+5666,U+566b,U+566f-5671,U+5673-567c,U+567e,U+5684-5687,U+568c,U+568e-5693,U+5695,U+5697,U+569b,U+569c,U+569e,U+569f,U+56a1,U+56a2,U+56a4-56a9,U+56ac-56af,U+56b1,U+56b4,U+56b6-56b8,U+56bf,U+56c1-56c3,U+56c9,U+56cd,U+56d1,U+56d4,U+56d6-56d9,U+56dd,U+56df,U+56e1,U+56e3-56e6,U+56e8-56ec,U+56ee,U+56ef,U+56f1-56f3,U+56f5,U+56f7-56f9,U+56fc,U+56ff,U+5700,U+5703,U+5704,U+5709; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.61.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+5519,U+551b,U+551d,U+551e,U+5520,U+5522,U+5523,U+5526,U+5527,U+552a-552c,U+5530,U+5532-5535,U+5537,U+5538,U+553b-5541,U+5543,U+5544,U+5547-5549,U+554b,U+554d,U+5550,U+5553,U+5555-5558,U+555b-555f,U+5567-5569,U+556b-5572,U+5574-5577,U+557b,U+557c,U+557e,U+557f,U+5581,U+5583,U+5585,U+5586,U+5588,U+558b,U+558c,U+558e-5591,U+5593,U+5599,U+559a,U+559f,U+55a5,U+55a6,U+55a8-55ac,U+55ae,U+55b0-55b3,U+55b6,U+55b9,U+55ba,U+55bc-55be,U+55c4,U+55c6,U+55c7,U+55c9,U+55cc-55d2,U+55d4-55db,U+55dd-55df,U+55e1,U+55e3-55e6,U+55ea-55ee,U+55f0-55f3,U+55f5-55f7,U+55fb,U+55fe,U+5600,U+5601; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.62.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+53fb-5400,U+5402,U+5405-5407,U+540b,U+540f,U+5412,U+5414,U+5416,U+5418-541a,U+541d,U+5420-5423,U+5425,U+5429,U+542a,U+542d,U+542e,U+5431-5433,U+5436,U+543d,U+543f,U+5442,U+5443,U+5449,U+544b,U+544c,U+544e,U+5451-5454,U+5456,U+5459,U+545b,U+545c,U+5461,U+5463,U+5464,U+546a-5472,U+5474,U+5476-5478,U+547a,U+547e-5484,U+5486,U+548a,U+548d,U+548e,U+5490,U+5491,U+5494,U+5497-5499,U+549b,U+549d,U+54a1-54a7,U+54a9,U+54ab,U+54ad,U+54b4,U+54b5,U+54b9,U+54bb,U+54be,U+54bf,U+54c2,U+54c3,U+54c9-54cc,U+54cf,U+54d0,U+54d3,U+54d5,U+54d6,U+54d9,U+54da,U+54dc-54de,U+54e2,U+54e7,U+54f3,U+54f4,U+54f8,U+54f9,U+54fd-54ff,U+5501,U+5504-5506,U+550c-550f,U+5511-5514,U+5516,U+5517; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.63.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+52a2,U+52a6,U+52a7,U+52ac,U+52ad,U+52af,U+52b4,U+52b5,U+52b9,U+52bb,U+52bc,U+52be,U+52c1,U+52c5,U+52ca,U+52cd,U+52d0,U+52d6,U+52d7,U+52d9,U+52db,U+52dd,U+52de,U+52e0,U+52e2,U+52e3,U+52e5,U+52e7-52f0,U+52f2,U+52f3,U+52f5-52f9,U+52fb,U+52fc,U+5302,U+5304,U+530b,U+530d,U+530f,U+5310,U+5315,U+531a,U+531c,U+531d,U+5321,U+5323,U+5326,U+532e-5331,U+5338,U+533c-533e,U+5340,U+5344,U+5345,U+534b-534d,U+5350,U+5354,U+5358,U+535d-535f,U+5363,U+5368,U+5369,U+536c,U+536e,U+536f,U+5372,U+5379-537b,U+537d,U+538d,U+538e,U+5390,U+5393,U+5394,U+5396,U+539b-539d,U+53a0,U+53a1,U+53a3-53a5,U+53a9,U+53ad,U+53ae,U+53b0,U+53b2,U+53b3,U+53b5-53b8,U+53bc,U+53be,U+53c1,U+53c3-53c7,U+53ce,U+53cf,U+53d2,U+53d3,U+53d5,U+53da,U+53de,U+53df,U+53e1,U+53e2,U+53e7-53e9,U+53f1,U+53f4,U+53f5,U+53fa; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.64.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+5110,U+5113,U+5115,U+5117,U+5118,U+511a-511c,U+511e,U+511f,U+5121,U+5128,U+512b-512d,U+5131-5135,U+5137-5139,U+513c,U+5140,U+5142,U+5147,U+514c,U+514e-5150,U+5155-5158,U+5162,U+5169,U+5172,U+517f,U+5181-5184,U+5186,U+5187,U+518b,U+518f,U+5191,U+5195-5197,U+519a,U+51a2,U+51a3,U+51a6-51ab,U+51ad,U+51ae,U+51b1,U+51b4,U+51bc,U+51bd,U+51bf,U+51c3,U+51c7,U+51c8,U+51ca,U+51cb,U+51cd,U+51ce,U+51d4,U+51d6,U+51db,U+51dc,U+51e6,U+51e8-51eb,U+51f1,U+51f5,U+51fc,U+51ff,U+5202,U+5205,U+5208,U+520b,U+520d,U+520e,U+5215,U+5216,U+5228,U+522a,U+522c,U+522d,U+5233,U+523c,U+523d,U+523f,U+5240,U+5245,U+5247,U+5249,U+524b,U+524c,U+524e,U+5250,U+525b-525f,U+5261,U+5263,U+5264,U+5270,U+5273,U+5275,U+5277,U+527d,U+527f,U+5281-5285,U+5287,U+5289,U+528b,U+528d,U+528f,U+5291-5293,U+529a; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.65.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+4fe3,U+4fe4,U+4fe6,U+4fe8,U+4feb-4fed,U+4ff3,U+4ff5,U+4ff6,U+4ff8,U+4ffe,U+5001,U+5005,U+5006,U+5009,U+500c,U+500f,U+5013-5018,U+501b-501e,U+5022-5025,U+5027,U+5028,U+502b-502e,U+5030,U+5033,U+5034,U+5036-5039,U+503b,U+5041-5043,U+5045,U+5046,U+5048-504a,U+504c-504e,U+5051,U+5053,U+5055-5057,U+505b,U+505e,U+5060,U+5062,U+5063,U+5067,U+506a,U+506c,U+5070-5072,U+5074,U+5075,U+5078,U+507b,U+507d,U+507e,U+5080,U+5088,U+5089,U+5091,U+5092,U+5095,U+5097-509e,U+50a2,U+50a3,U+50a5-50a7,U+50a9,U+50ad,U+50b3,U+50b5,U+50b7,U+50ba,U+50be,U+50c4,U+50c5,U+50c7,U+50ca,U+50cd,U+50d1,U+50d5,U+50d6,U+50da,U+50de,U+50e5,U+50e6,U+50ec-50ee,U+50f0,U+50f1,U+50f3,U+50f9-50fb,U+50fe-5102,U+5104,U+5106,U+5107,U+5109-510b,U+510d,U+510f; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.66.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+4eb8,U+4eb9,U+4ebb-4ebe,U+4ec2-4ec4,U+4ec8,U+4ec9,U+4ecc,U+4ecf,U+4ed0,U+4ed2,U+4eda,U+4edb,U+4edd-4ee1,U+4ee6-4ee9,U+4eeb,U+4eee,U+4eef,U+4ef3-4ef5,U+4ef8-4efa,U+4efc,U+4f00,U+4f03-4f05,U+4f08,U+4f09,U+4f0b,U+4f0e,U+4f12,U+4f13,U+4f15,U+4f1b,U+4f1d,U+4f21,U+4f22,U+4f25,U+4f27-4f29,U+4f2b-4f2e,U+4f31-4f33,U+4f36,U+4f37,U+4f39,U+4f3e,U+4f40,U+4f41,U+4f43,U+4f47-4f49,U+4f54,U+4f57,U+4f58,U+4f5d,U+4f5e,U+4f61,U+4f62,U+4f64,U+4f65,U+4f67,U+4f6a,U+4f6e,U+4f6f,U+4f72,U+4f74-4f7e,U+4f80-4f82,U+4f84,U+4f89,U+4f8a,U+4f8e-4f98,U+4f9e,U+4fa1,U+4fa5,U+4fa9,U+4faa,U+4fac,U+4fb3,U+4fb6-4fb8,U+4fbd,U+4fc2,U+4fc5,U+4fc6,U+4fcd,U+4fce,U+4fd0,U+4fd1,U+4fd3,U+4fda-4fdc,U+4fdf,U+4fe0,U+4fe2; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.67.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+3127-3129,U+3220-3229,U+3231,U+32a3,U+338e,U+338f,U+339c-339e,U+33c4,U+33d1,U+33d2,U+33d5,U+3434,U+34dc,U+34ee,U+353e,U+355d,U+3566,U+3575,U+3592,U+35a0,U+35a1,U+35ad,U+35ce,U+36a2,U+36ab,U+38a8,U+3dab,U+3de7,U+3deb,U+3e1a,U+3f1b,U+3f6d,U+4495,U+4723,U+48fa,U+4ca3,U+4e02,U+4e04-4e06,U+4e0c,U+4e0f,U+4e15,U+4e17,U+4e1f-4e21,U+4e26,U+4e29,U+4e2c,U+4e2f,U+4e31,U+4e35,U+4e37,U+4e3c,U+4e3f-4e42,U+4e44,U+4e46,U+4e47,U+4e57,U+4e5a-4e5c,U+4e64,U+4e65,U+4e67,U+4e69,U+4e6d,U+4e78,U+4e7f-4e82,U+4e85,U+4e87,U+4e8a,U+4e8d,U+4e93,U+4e96,U+4e98,U+4e99,U+4e9c,U+4e9e-4ea0,U+4ea2,U+4ea3,U+4ea5,U+4eb0,U+4eb1,U+4eb3-4eb6; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.68.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+27e8,U+27e9,U+2ebb,U+3003,U+3005-3007,U+3012,U+3013,U+301d,U+301e,U+3021,U+3023,U+3024,U+3041,U+3043,U+3045,U+3047,U+3049,U+3056,U+3058,U+305c,U+305e,U+3062,U+306c,U+3074,U+3077,U+307a,U+307c,U+307d,U+3080,U+308e,U+3090,U+3091,U+309b,U+309d,U+309e,U+30a5,U+30bc,U+30be,U+30c2,U+30c5,U+30cc,U+30d8,U+30e2,U+30e8,U+30ee,U+30f0-30f2,U+30f4-30f6,U+30fd,U+30fe,U+3105-3126; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.69.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+254b,U+2550,U+2551,U+2554,U+2557,U+255a,U+255b,U+255d,U+255f,U+2560,U+2562,U+2563,U+2565-2567,U+2569,U+256a,U+256c-2572,U+2581-258f,U+2593-2595,U+25a1,U+25b3,U+25bd,U+25ca,U+25cb,U+25e2-25e5,U+2609,U+2640,U+2642; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.70.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+2465-2469,U+2474-249b,U+2500-2509,U+250b-2526,U+2528-2534,U+2536,U+2537,U+253b-2548,U+254a; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.71.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+207f-2083,U+20a6,U+20a8-20ac,U+20b1,U+20b9,U+20ba,U+20bd,U+2105,U+2109,U+2113,U+2116,U+2121,U+2126,U+2196-2199,U+2202,U+2206,U+2208,U+220f,U+2211,U+2212,U+2215,U+221d-2220,U+2223,U+2225,U+2227-222b,U+222e,U+2234-2237,U+223d,U+2248,U+224c,U+2252,U+2260,U+2261,U+2266,U+2267,U+226e,U+226f,U+2295,U+2299,U+22a5,U+22bf,U+2312; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.72.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+1ea0-1ea9,U+1eab-1ead,U+1eaf,U+1eb1,U+1eb3,U+1eb5,U+1eb7,U+1eb9,U+1ebb,U+1ebd,U+1ebe,U+1ec0-1ec3,U+1ec5,U+1ec6,U+1ec9-1ecd,U+1ecf-1ed3,U+1ed5,U+1ed7-1edf,U+1ee1,U+1ee3,U+1ee5-1eeb,U+1eed,U+1eef-1ef1,U+1ef3,U+1ef7,U+1ef9,U+2004-2006,U+2009,U+200a,U+2010,U+2011,U+2015,U+2016,U+201a,U+201e,U+2020,U+2021,U+2025,U+2027,U+2028,U+2030,U+2032,U+2033,U+2035,U+203c,U+2044,U+2060,U+2061,U+2070,U+2074-2078; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.73.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+2bb,U+2bc,U+2c6,U+2c7,U+2c9-2cb,U+2d8-2da,U+2dc,U+2f3,U+302-304,U+306-30a,U+30c,U+323,U+327,U+335,U+338; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.74.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+176-17f,U+192,U+1a0,U+1a1,U+1af,U+1b0,U+1d2,U+1d4,U+1d6,U+1d8,U+1da,U+1dc,U+1e7,U+1e9,U+1f0,U+1f9-1ff,U+219-21b,U+237,U+251,U+259,U+261,U+292; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.75.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+a1-a4,U+a6-a8,U+aa,U+ac,U+af,U+b1,U+b3-b6,U+b8-ba,U+bc-d6,U+d8-de,U+e6,U+eb,U+ee-f0,U+f5,U+f7,U+f8,U+fb,U+fd-100,U+102,U+104-107,U+10d,U+10f-112,U+115,U+117,U+119,U+11b,U+11e,U+11f,U+121,U+123,U+125-127,U+129,U+12a,U+12d,U+12f-13f,U+141,U+142,U+144,U+146,U+14b,U+14c,U+14f-153,U+158-15b,U+15e-160,U+163-165,U+168-16a,U+16d-175; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.76.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+221a,U+2264,U+2464,U+25a0,U+3008,U+4e10,U+512a,U+5152,U+5201,U+5241,U+5352,U+549a,U+54b2,U+54c6,U+54d7,U+54e1,U+5509,U+55c5,U+560e,U+5618,U+565c,U+56bc,U+5716,U+576f,U+5784,U+57a2,U+589f,U+5a20,U+5a25,U+5a29,U+5a34,U+5a7f,U+5ac9,U+5ad6,U+5b09,U+5b5c,U+5bc7,U+5c27,U+5d2d,U+5dcd,U+5f1b,U+5f37,U+604d,U+6055,U+6073,U+60eb,U+61ff,U+620c,U+62c7,U+62ed,U+6320,U+6345,U+6390,U+63b0,U+64ae,U+64c2,U+64d2,U+6556,U+663c,U+667e,U+66d9,U+66f8,U+6756,U+6789,U+689d,U+68f1,U+695e,U+6975,U+6a1f,U+6b0a,U+6b61,U+6b87,U+6c5d,U+6c7e,U+6c92,U+6d31,U+6df9,U+6e0d,U+6e2d,U+6f3e,U+70b3,U+70bd,U+70ca,U+70e8,U+725f,U+72e9,U+733f,U+7396,U+739f,U+7459,U+745a,U+74a7,U+75a1,U+75f0,U+76cf,U+76d4,U+7729,U+77aa,U+77b0,U+77e3,U+780c,U+78d5,U+7941,U+7977,U+797a,U+79c3,U+7a20,U+7a92,U+7b71,U+7bf1,U+7c9f,U+7eb6,U+7eca,U+7ef7,U+7f07,U+7f09,U+7f15,U+7f81,U+7fb9,U+8038,U+8098,U+80b4,U+8110,U+814b,U+814c,U+816e,U+818a,U+8205,U+8235,U+828b,U+82a5,U+82b7,U+82d4,U+82db,U+82df,U+8317,U+8338,U+8385,U+8386,U+83c1,U+83cf,U+8537,U+853b,U+854a,U+8715,U+8783,U+892a,U+8a71,U+8aaa,U+8d58,U+8dbe,U+8f67,U+8fab,U+8fc4,U+8fe6,U+9023,U+9084,U+9091,U+916a,U+91c9,U+91dc,U+94b3,U+9502,U+9523,U+9551,U+956f,U+960e,U+962a,U+962e,U+9647,U+96f3,U+9739,U+97a0,U+97ed,U+983b,U+985e,U+988a,U+9a6f,U+9a8b,U+9ab7,U+9ac5,U+9e25,U+ff06,U+ff14-ff16; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.77.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+161,U+2463,U+25c7,U+25ce,U+3009,U+3016,U+3017,U+4e4d,U+4e53,U+4f5a,U+4f70,U+4fae,U+4fd8,U+4ffa,U+5011,U+501a,U+516e,U+51c4,U+5225,U+5364,U+547b,U+5495,U+54e8,U+54ee,U+5594,U+55d3,U+55dc,U+55fd,U+5662,U+5669,U+566c,U+5742,U+5824,U+5834,U+598a,U+5992,U+59a9,U+5a04,U+5b75,U+5b7d,U+5bc5,U+5c49,U+5c90,U+5e1c,U+5e27,U+5e2b,U+5e37,U+5e90,U+618b,U+61f5,U+620a,U+6273,U+62f7,U+6342,U+6401,U+6402,U+6413,U+6512,U+655b,U+65a7,U+65f1,U+65f7,U+665f,U+6687,U+66a7,U+673d,U+67b8,U+6854,U+68d8,U+68fa,U+696d,U+6a02,U+6a0a,U+6a80,U+6b7c,U+6bd9,U+6c2e,U+6c76,U+6cf8,U+6d4a,U+6d85,U+6e24,U+6e32,U+6ec7,U+6ed5,U+6f88,U+700f,U+701a,U+7078,U+707c,U+70ac,U+70c1,U+7409,U+7422,U+7480,U+74a8,U+752b,U+7574,U+7656,U+7699,U+7737,U+785d,U+78be,U+79b9,U+7a3d,U+7a91,U+7a9f,U+7ae3,U+7b77,U+7c3f,U+7d1a,U+7d50,U+7d93,U+803f,U+8042,U+808b,U+8236,U+82b8,U+82b9,U+82ef,U+8309,U+836b,U+83ef,U+8431,U+85c9,U+865e,U+868c,U+8759,U+8760,U+8845,U+89ba,U+8a2a,U+8c41,U+8cec,U+8d2c,U+8d4e,U+8e66,U+8e6d,U+8eaf,U+902e,U+914b,U+916e,U+919b,U+949b,U+94a0,U+94b0,U+9541,U+9542,U+9556,U+95eb,U+95f5,U+964b,U+968b,U+96cc,U+96cd,U+96cf,U+9704,U+9713,U+9890,U+98a8,U+9985,U+9992,U+9a6d,U+9a81,U+9a86,U+9ab8,U+9ca4,U+9f9a,U+ff02,U+ff1e,U+ff3d; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.78.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+10c,U+203b,U+2265,U+2573,U+25b2,U+3448,U+3449,U+4e1e,U+4e5e,U+4f3a,U+4f5f,U+4fea,U+5026,U+508d,U+5189,U+5254,U+5288,U+52d8,U+52fa,U+5306,U+5308,U+5384,U+53ed,U+543c,U+5450,U+5455,U+5466,U+54c4,U+5578,U+55a7,U+561f,U+5631,U+572d,U+575f,U+57ae,U+57e0,U+5830,U+594e,U+5984,U+5993,U+5bdd,U+5c0d,U+5c7f,U+5c82,U+5e62,U+5ed3,U+5f08,U+607a,U+60bc,U+60df,U+625b,U+6292,U+62e2,U+6363,U+6467,U+6714,U+675e,U+6771,U+67a2,U+67ff,U+6805,U+6813,U+6869,U+68a7,U+68e0,U+6930,U+6986,U+69a8,U+69df,U+6a44,U+6a5f,U+6c13,U+6c1f,U+6c22,U+6c2f,U+6c40,U+6c81,U+6c9b,U+6ca5,U+6da4,U+6df3,U+6e85,U+6eba,U+6f13,U+6f33,U+6f62,U+715e,U+72c4,U+73d1,U+73fe,U+7405,U+7455,U+7487,U+7578,U+75a4,U+75eb,U+7693,U+7738,U+7741,U+776b,U+7792,U+77a7,U+77a9,U+77b3,U+788c,U+7984,U+79a7,U+79e4,U+7a1a,U+7a57,U+7aa6,U+7b0b,U+7b5d,U+7c27,U+7c7d,U+7caa,U+7cd9,U+7cef,U+7eda,U+7ede,U+7f24,U+8046,U+80fa,U+81b3,U+81fb,U+8207,U+8258,U+8335,U+8339,U+8354,U+840e,U+85b0,U+85fb,U+8695,U+86aa,U+8717,U+8749,U+874c,U+8996,U+89bd,U+89c5,U+8bdb,U+8bf5,U+8c5a,U+8d3f,U+8d9f,U+8e44,U+8fed,U+9005,U+9019,U+904e,U+9082,U+90af,U+90dd,U+90e1,U+90f8,U+9119,U+916f,U+9176,U+949e,U+94a7,U+94c2,U+9525,U+9580,U+95dc,U+96e2,U+96fb,U+9a7c,U+9a7f,U+9b41,U+9ca8,U+9cc4,U+9cde,U+9e92,U+9ede,U+ff10,U+ff13,U+ff3b; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.79.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+60,U+2606,U+3014,U+3015,U+309c,U+33a1,U+4e52,U+4ec6,U+4f86,U+4f8d,U+4fde,U+4fef,U+500b,U+502a,U+515c,U+518a,U+51a5,U+51f3,U+5243,U+52c9,U+52d5,U+53a2,U+53ee,U+54ce,U+54fa,U+54fc,U+5580,U+5587,U+563f,U+56da,U+5792,U+5815,U+5960,U+59d7,U+5a1f,U+5b78,U+5b9b,U+5be1,U+5c4e,U+5c51,U+5c6f,U+5c9a,U+5cfb,U+5d16,U+5ed6,U+5f27,U+5f6a,U+5f6c,U+603c,U+609a,U+6168,U+61c8,U+6236,U+62d0,U+62f1,U+62fd,U+631a,U+6328,U+632b,U+6346,U+638f,U+63a0,U+63c9,U+655e,U+6590,U+6615,U+6627,U+66ae,U+66e6,U+66f0,U+6703,U+67da,U+67ec,U+6816,U+6893,U+68ad,U+68f5,U+6977,U+6984,U+69db,U+6b72,U+6bb7,U+6ce3,U+6cfb,U+6d47,U+6da1,U+6dc4,U+6e43,U+6eaf,U+6eff,U+6f8e,U+7011,U+7063,U+7076,U+7096,U+70ba,U+70db,U+70ef,U+7119,U+711a,U+7172,U+718f,U+7194,U+727a,U+72d9,U+72ed,U+7325,U+73ae,U+73ba,U+73c0,U+7410,U+7426,U+7554,U+7576,U+75ae,U+75b9,U+762b,U+766b,U+7682,U+7750,U+7779,U+7784,U+77eb,U+77ee,U+78f7,U+79e9,U+7a79,U+7b1b,U+7b28,U+7bf7,U+7db2,U+7ec5,U+7eee,U+7f14,U+7f1a,U+7fe1,U+8087,U+809b,U+8231,U+830e,U+835f,U+83e9,U+849c,U+851a,U+868a,U+8718,U+874e,U+8822,U+8910,U+8944,U+8a3b,U+8bb6,U+8bbc,U+8d50,U+8e72,U+8f9c,U+900d,U+904b,U+9063,U+90a2,U+90b9,U+94f2,U+952f,U+9576,U+9577,U+9593,U+95f8,U+961c,U+9631,U+969b,U+96a7,U+96c1,U+9716,U+9761,U+97ad,U+97e7,U+98a4,U+997a,U+9a73,U+9b44,U+9e3d,U+9ecf,U+9ed4,U+ff11,U+ff12; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.80.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+2193,U+2462,U+4e19,U+4e2b,U+4e36,U+4ea8,U+4ed1,U+4ed7,U+4f51,U+4f63,U+4f83,U+50e7,U+5112,U+5167,U+51a4,U+51b6,U+5239,U+5265,U+532a,U+5351,U+537f,U+5401,U+548f,U+5492,U+54af,U+54b3,U+54bd,U+54d1,U+54df,U+554f,U+5564,U+5598,U+5632,U+56a3,U+56e7,U+574e,U+575d,U+575e,U+57d4,U+584c,U+58e4,U+5937,U+5955,U+5a05,U+5a49,U+5ac2,U+5bb0,U+5c39,U+5c61,U+5d0e,U+5de9,U+5e9a,U+5eb8,U+5f0a,U+5f13,U+5f8c,U+608d,U+611b,U+6127,U+62a0,U+634f,U+635e,U+63fd,U+6577,U+658b,U+65bc,U+660a,U+6643,U+6656,U+6760,U+67af,U+67c4,U+67e0,U+6817,U+68cd,U+690e,U+6960,U+69b4,U+6a71,U+6aac,U+6b67,U+6bb4,U+6c55,U+6c70,U+6c82,U+6ca6,U+6cb8,U+6cbe,U+6e9c,U+6ede,U+6ee5,U+6f4d,U+6f84,U+6f9c,U+7115,U+7121,U+722a,U+7261,U+7272,U+7280,U+72f8,U+7504,U+754f,U+75d8,U+767c,U+76ef,U+778e,U+77bb,U+77f6,U+786b,U+78b1,U+7948,U+7985,U+79be,U+7a83,U+7a8d,U+7eac,U+7eef,U+7ef8,U+7efd,U+7f00,U+803d,U+8086,U+810a,U+8165,U+819d,U+81a8,U+8214,U+829c,U+831c,U+8328,U+832b,U+8367,U+83e0,U+83f1,U+8403,U+846b,U+8475,U+84b2,U+8513,U+8574,U+85af,U+86d9,U+86db,U+8acb,U+8bbd,U+8be0,U+8be1,U+8c0e,U+8d29,U+8d63,U+8e81,U+8f7f,U+9032,U+9042,U+90b1,U+90b5,U+9165,U+9175,U+94a6,U+94c5,U+950c,U+9540,U+9610,U+9699,U+96c7,U+973e,U+978d,U+97ec,U+97f6,U+984c,U+987d,U+9882,U+9965,U+996a,U+9972,U+9a8f,U+9ad3,U+9ae6,U+9cb8,U+9edb,U+ff05,U+ff0b; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.81.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+5e,U+2190,U+250a,U+25bc,U+25cf,U+300f,U+4e56,U+4ea9,U+4f3d,U+4f6c,U+4f88,U+4fa8,U+4fcf,U+5029,U+5188,U+51f9,U+5203,U+524a,U+5256,U+529d,U+5375,U+53db,U+541f,U+5435,U+5457,U+548b,U+54b1,U+54c7,U+54d4,U+54e9,U+556a,U+5589,U+55bb,U+55e8,U+55ef,U+563b,U+566a,U+576a,U+58f9,U+598d,U+599e,U+59a8,U+5a9b,U+5ae3,U+5bde,U+5c4c,U+5c60,U+5d1b,U+5deb,U+5df7,U+5e18,U+5f26,U+5f64,U+601c,U+6084,U+60e9,U+614c,U+61be,U+6208,U+621a,U+6233,U+6254,U+62d8,U+62e6,U+62ef,U+6323,U+632a,U+633d,U+6361,U+6380,U+6405,U+640f,U+6614,U+6642,U+6657,U+67a3,U+6808,U+683d,U+6850,U+6897,U+68b3,U+68b5,U+68d5,U+6a58,U+6b47,U+6b6a,U+6c28,U+6c90,U+6ca7,U+6cf5,U+6d51,U+6da9,U+6dc7,U+6dd1,U+6e0a,U+6e5b,U+6f47,U+6f6d,U+70ad,U+70f9,U+710a,U+7130,U+71ac,U+745f,U+7476,U+7490,U+7529,U+7538,U+75d2,U+7696,U+76b1,U+76fc,U+777f,U+77dc,U+789f,U+795b,U+79bd,U+79c9,U+7a3b,U+7a46,U+7aa5,U+7ad6,U+7ca5,U+7cb9,U+7cdf,U+7d6e,U+7f06,U+7f38,U+7fa1,U+7fc1,U+8015,U+803b,U+80a2,U+80aa,U+8116,U+813e,U+82ad,U+82bd,U+8305,U+8346,U+846c,U+8549,U+859b,U+8611,U+8680,U+87f9,U+884d,U+8877,U+888d,U+88d4,U+898b,U+8a79,U+8a93,U+8c05,U+8c0d,U+8c26,U+8d1e,U+8d31,U+8d81,U+8e22,U+8f90,U+8f96,U+90ca,U+916c,U+917f,U+9187,U+918b,U+9499,U+94a9,U+9524,U+958b,U+9600,U+9640,U+96b6,U+96ef,U+98d9,U+9976,U+997f,U+9a74,U+9a84,U+9c8d,U+9e26,U+9e9f,U+ff0f; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.82.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+b0,U+2191,U+2460,U+2461,U+25c6,U+300e,U+4e1b,U+4e7e,U+4ed5,U+4ef2,U+4f10,U+4f1e,U+4f50,U+4fa6,U+4faf,U+5021,U+50f5,U+5179,U+5180,U+51d1,U+522e,U+52a3,U+52c3,U+52cb,U+5300,U+5319,U+5320,U+5349,U+5395,U+53d9,U+541e,U+5428,U+543e,U+54c0,U+54d2,U+570b,U+5858,U+58f6,U+5974,U+59a5,U+59e8,U+59ec,U+5a36,U+5a9a,U+5ab3,U+5b99,U+5baa,U+5ce1,U+5d14,U+5d4c,U+5dc5,U+5de2,U+5e99,U+5e9e,U+5f18,U+5f66,U+5f70,U+6070,U+60d5,U+60e7,U+6101,U+611a,U+6241,U+6252,U+626f,U+6296,U+62bc,U+62cc,U+63a9,U+644a,U+6454,U+64a9,U+64b8,U+6500,U+6572,U+65a5,U+65a9,U+65ec,U+660f,U+6749,U+6795,U+67ab,U+68da,U+6912,U+6bbf,U+6bef,U+6cab,U+6cca,U+6ccc,U+6cfc,U+6d3d,U+6d78,U+6dee,U+6e17,U+6e34,U+6e83,U+6ea2,U+6eb6,U+6f20,U+6fa1,U+707f,U+70d8,U+70eb,U+714c,U+714e,U+7235,U+7239,U+73ca,U+743c,U+745c,U+7624,U+763e,U+76f2,U+77db,U+77e9,U+780d,U+7838,U+7845,U+78ca,U+796d,U+7a84,U+7aed,U+7b3c,U+7eb2,U+7f05,U+7f20,U+7f34,U+7f62,U+7fc5,U+7fd8,U+7ff0,U+800d,U+8036,U+80ba,U+80be,U+80c0,U+80c1,U+8155,U+817a,U+8180,U+81e3,U+8206,U+8247,U+8270,U+8299,U+8304,U+8393,U+83b9,U+83ca,U+840d,U+8427,U+8469,U+8471,U+84c4,U+84ec,U+853d,U+8681,U+8682,U+8721,U+8854,U+88d5,U+88f9,U+8bc0,U+8c0a,U+8c29,U+8c2d,U+8d41,U+8dea,U+8eb2,U+8f9f,U+903b,U+903e,U+9102,U+9493,U+94a5,U+94f8,U+95ef,U+95f7,U+9706,U+9709,U+9774,U+9887,U+98a0,U+9e64,U+9f9f; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.83.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+2103,U+4e18,U+4e27,U+4e28,U+4e38,U+4e59,U+4e8f,U+4ead,U+4ec7,U+4fe9,U+503a,U+5085,U+5146,U+51af,U+51f8,U+52ab,U+5339,U+535c,U+5378,U+538c,U+5398,U+53f9,U+5415,U+5475,U+54aa,U+54ac,U+54b8,U+5582,U+5760,U+5764,U+57cb,U+5835,U+5885,U+5951,U+5983,U+59da,U+5a77,U+5b5d,U+5b5f,U+5bb5,U+5bc2,U+5be8,U+5bfa,U+5c2c,U+5c34,U+5c41,U+5c48,U+5c65,U+5cad,U+5e06,U+5e42,U+5ef7,U+5f17,U+5f25,U+5f6d,U+5f79,U+6028,U+6064,U+6068,U+606d,U+607c,U+6094,U+6109,U+6124,U+6247,U+626d,U+6291,U+629a,U+62ac,U+62b9,U+62fe,U+6324,U+6349,U+6367,U+6398,U+6495,U+64a4,U+64b0,U+64bc,U+64ce,U+658c,U+65ed,U+6602,U+6674,U+6691,U+66a8,U+674f,U+679a,U+67ef,U+67f4,U+680b,U+6876,U+68a8,U+6a59,U+6a61,U+6b20,U+6bc5,U+6d12,U+6d46,U+6d8c,U+6dc0,U+6e14,U+6e23,U+6f06,U+7164,U+716e,U+7199,U+71e5,U+72ac,U+742a,U+755c,U+75ab,U+75b2,U+75f4,U+7897,U+78b3,U+78c5,U+7978,U+79fd,U+7a74,U+7b4b,U+7b5b,U+7ece,U+7ed2,U+7ee3,U+7ef3,U+7f50,U+7f55,U+7f9e,U+7fe0,U+809d,U+8106,U+814a,U+8154,U+817b,U+818f,U+81c2,U+81ed,U+821f,U+82a6,U+82d1,U+8302,U+83c7,U+845b,U+848b,U+84c9,U+85e4,U+86ee,U+8700,U+8774,U+886c,U+8881,U+8c1c,U+8c79,U+8d2a,U+8d3c,U+8eba,U+8f70,U+8fa9,U+8fb1,U+900a,U+9017,U+901d,U+9022,U+906e,U+946b,U+94dd,U+94ed,U+953b,U+95fa,U+95fd,U+964c,U+96c0,U+971c,U+971e,U+9753,U+9756,U+97e6,U+9881,U+9b4f,U+9e2d,U+9f0e,U+ff5c; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.84.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+24,U+4e08,U+4e43,U+4e4f,U+4ef0,U+4f2a,U+507f,U+50ac,U+50bb,U+5151,U+51bb,U+51f6,U+51fd,U+5272,U+52fe,U+5362,U+53c9,U+53d4,U+53e0,U+543b,U+54f2,U+5507,U+5524,U+558a,U+55b5,U+561b,U+56ca,U+5782,U+57c3,U+5893,U+5915,U+5949,U+5962,U+59ae,U+59dc,U+59fb,U+5bd3,U+5c38,U+5cb3,U+5d07,U+5d29,U+5de1,U+5dfe,U+5e15,U+5eca,U+5f2f,U+5f7c,U+5fcc,U+6021,U+609f,U+60f9,U+6108,U+6148,U+6155,U+6170,U+61d2,U+6251,U+629b,U+62ab,U+62e8,U+62f3,U+6321,U+6350,U+6566,U+659c,U+65e8,U+6635,U+6655,U+6670,U+66f9,U+6734,U+679d,U+6851,U+6905,U+6b49,U+6b96,U+6c1b,U+6c41,U+6c6a,U+6c83,U+6cf3,U+6d9b,U+6dcb,U+6e1d,U+6e20,U+6e21,U+6eaa,U+6ee4,U+6ee9,U+6f58,U+70e4,U+722c,U+7262,U+7267,U+72b9,U+72e0,U+72ee,U+72f1,U+7334,U+73ab,U+7433,U+7470,U+758f,U+75d5,U+764c,U+7686,U+76c6,U+76fe,U+7720,U+77e2,U+7802,U+7816,U+788d,U+7891,U+7a00,U+7a9d,U+7b52,U+7bad,U+7c98,U+7cca,U+7eba,U+7eea,U+7ef5,U+7f1d,U+7f69,U+806a,U+809a,U+80bf,U+80c3,U+81c0,U+820c,U+82ac,U+82af,U+82cd,U+82d7,U+838e,U+839e,U+8404,U+84b8,U+852c,U+8587,U+85aa,U+8650,U+8679,U+86c7,U+8702,U+87ba,U+886b,U+8870,U+8c10,U+8c23,U+8c6b,U+8d3e,U+8d4b,U+8d4c,U+8d64,U+8d6b,U+8d74,U+8e29,U+8f69,U+8f74,U+8fb0,U+8fdf,U+901b,U+9038,U+9093,U+90aa,U+9171,U+9489,U+94ae,U+94c3,U+9508,U+9510,U+9601,U+9614,U+9675,U+97f5,U+9888,U+98d8,U+9971,U+9aa4,U+9e3f,U+9e45,U+9e4f,U+9e70,U+9f7f; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.85.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+a5,U+2022,U+2192,U+2605,U+4e11,U+4e22,U+4e32,U+4f0d,U+4f0f,U+4f69,U+4ff1,U+50b2,U+5154,U+51dd,U+51f0,U+5211,U+5269,U+533f,U+5366,U+5367,U+5389,U+5413,U+5440,U+5446,U+5561,U+574a,U+5751,U+57ab,U+5806,U+5821,U+582a,U+58f3,U+5938,U+5948,U+5978,U+59d1,U+5a03,U+5a07,U+5ac1,U+5acc,U+5ae9,U+5bb4,U+5bc4,U+5c3f,U+5e3d,U+5e7d,U+5f92,U+5faa,U+5fe0,U+5ffd,U+6016,U+60a0,U+60dc,U+60e8,U+614e,U+6212,U+6284,U+62c6,U+62d3,U+62d4,U+63f4,U+642c,U+6478,U+6491,U+6492,U+64e6,U+6591,U+65a4,U+664b,U+6735,U+6746,U+67f1,U+67f3,U+6842,U+68af,U+68c9,U+68cb,U+6a31,U+6b3a,U+6bc1,U+6c0f,U+6c27,U+6c57,U+6cc4,U+6ce5,U+6d2a,U+6d66,U+6d69,U+6daf,U+6e58,U+6ecb,U+6ef4,U+707e,U+7092,U+70ab,U+71d5,U+7275,U+7384,U+73b2,U+7434,U+74e6,U+74f7,U+75bc,U+76c8,U+76d0,U+7709,U+77ac,U+7855,U+78a7,U+78c1,U+7a77,U+7b79,U+7c92,U+7cae,U+7cd5,U+7ea4,U+7eb5,U+7ebd,U+7f5a,U+7fd4,U+7ffc,U+8083,U+8096,U+80a0,U+80d6,U+80de,U+8102,U+8109,U+810f,U+8179,U+8292,U+82b3,U+8352,U+8361,U+83cc,U+841d,U+8461,U+8482,U+8521,U+857e,U+866b,U+8776,U+8896,U+889c,U+88f8,U+8a9e,U+8bc8,U+8bf8,U+8c0b,U+8c28,U+8d2b,U+8d2f,U+8d37,U+8d3a,U+8d54,U+8dc3,U+8dcc,U+8df5,U+8e0f,U+8e48,U+8f86,U+8f88,U+8f9e,U+8fc1,U+8fc8,U+8feb,U+9065,U+90a6,U+90bb,U+90c1,U+94dc,U+9521,U+9676,U+96d5,U+970d,U+9897,U+997c,U+9a70,U+9a76,U+9a9a,U+9ad4,U+9e23,U+9e7f,U+9f3b,U+ffe5; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.86.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+300c,U+300d,U+4e54,U+4e58,U+4e95,U+4ec1,U+4f2f,U+4f38,U+4fa3,U+4fca,U+503e,U+5141,U+5144,U+517c,U+51cc,U+51ed,U+5242,U+52b2,U+52d2,U+52e4,U+540a,U+5439,U+5448,U+5496,U+54ed,U+5565,U+5761,U+5766,U+58ee,U+593a,U+594b,U+594f,U+5954,U+5996,U+59c6,U+59ff,U+5b64,U+5bff,U+5c18,U+5c1d,U+5c97,U+5ca9,U+5cb8,U+5e9f,U+5ec9,U+5f04,U+5f7b,U+5fa1,U+5fcd,U+6012,U+60a6,U+60ac,U+60b2,U+60ef,U+626e,U+6270,U+6276,U+62d6,U+62dc,U+6316,U+632f,U+633a,U+6355,U+63aa,U+6447,U+649e,U+64c5,U+654c,U+65c1,U+65cb,U+65e6,U+6606,U+6731,U+675c,U+67cf,U+67dc,U+6846,U+6b8b,U+6beb,U+6c61,U+6c88,U+6cbf,U+6cdb,U+6cea,U+6d45,U+6d53,U+6d74,U+6d82,U+6da8,U+6db5,U+6deb,U+6eda,U+6ee8,U+6f0f,U+706d,U+708e,U+70ae,U+70bc,U+70c2,U+70e6,U+7237,U+7238,U+72fc,U+730e,U+731b,U+739b,U+73bb,U+7483,U+74dc,U+74f6,U+7586,U+7626,U+775b,U+77ff,U+788e,U+78b0,U+7956,U+7965,U+79e6,U+7af9,U+7bee,U+7c97,U+7eb1,U+7eb7,U+7ed1,U+7ed5,U+7f6a,U+7f72,U+7fbd,U+8017,U+808c,U+80a9,U+80c6,U+80ce,U+8150,U+8170,U+819c,U+820d,U+8230,U+8239,U+827e,U+8377,U+8389,U+83b2,U+8428,U+8463,U+867e,U+88c2,U+88d9,U+8986,U+8bca,U+8bde,U+8c13,U+8c8c,U+8d21,U+8d24,U+8d56,U+8d60,U+8d8b,U+8db4,U+8e2a,U+8f68,U+8f89,U+8f9b,U+8fa8,U+8fbd,U+9003,U+90ce,U+90ed,U+9189,U+94bb,U+9505,U+95f9,U+963b,U+9655,U+966a,U+9677,U+96fe,U+9896,U+99a8,U+9a71,U+9a82,U+9a91,U+9b45,U+9ece,U+9f20,U+ff0d; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.87.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+4e4c,U+4e88,U+4ea1,U+4ea6,U+4ed3,U+4ed4,U+4eff,U+4f30,U+4fa7,U+4fc4,U+4fd7,U+500d,U+504f,U+5076,U+5077,U+517d,U+5192,U+51c9,U+51ef,U+5238,U+5251,U+526a,U+52c7,U+52df,U+52ff,U+53a6,U+53a8,U+53ec,U+5410,U+559d,U+55b7,U+5634,U+573e,U+5783,U+585e,U+586b,U+58a8,U+5999,U+59d3,U+5a1c,U+5a46,U+5b54,U+5b55,U+5b85,U+5b8b,U+5b8f,U+5bbf,U+5bd2,U+5c16,U+5c24,U+5e05,U+5e45,U+5e7c,U+5e84,U+5f03,U+5f1f,U+5f31,U+5f84,U+5f90,U+5fbd,U+5fc6,U+5fd9,U+5fe7,U+6052,U+6062,U+6089,U+60a3,U+60d1,U+6167,U+622a,U+6234,U+624e,U+6269,U+626c,U+62b5,U+62d2,U+6325,U+63e1,U+643a,U+6446,U+6562,U+656c,U+65e2,U+65fa,U+660c,U+6628,U+6652,U+6668,U+6676,U+66fc,U+66ff,U+6717,U+676d,U+67aa,U+67d4,U+6843,U+6881,U+68d2,U+695a,U+69fd,U+6a2a,U+6b8a,U+6c60,U+6c64,U+6c9f,U+6caa,U+6cc9,U+6ce1,U+6cfd,U+6d1b,U+6d1e,U+6d6e,U+6de1,U+6e10,U+6e7f,U+6f5c,U+704c,U+7070,U+7089,U+70b8,U+718a,U+71c3,U+723d,U+732a,U+73cd,U+7518,U+756a,U+75af,U+75be,U+75c7,U+76d2,U+76d7,U+7763,U+78e8,U+795d,U+79df,U+7c4d,U+7d2f,U+7ee9,U+7f13,U+7f8a,U+8000,U+8010,U+80af,U+80f6,U+80f8,U+8212,U+8273,U+82f9,U+83ab,U+83b1,U+83f2,U+8584,U+871c,U+8861,U+888b,U+88c1,U+88e4,U+8bd1,U+8bf1,U+8c31,U+8d5a,U+8d75,U+8d76,U+8de8,U+8f85,U+8fa3,U+8fc5,U+9006,U+903c,U+904d,U+9075,U+9178,U+9274,U+950b,U+9526,U+95ea,U+9636,U+9686,U+978b,U+987f,U+9a7e,U+9b42,U+9e1f,U+9ea6,U+9f13,U+9f84,U+ff5e; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.88.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+23,U+3d,U+4e01,U+4e39,U+4e73,U+4ecd,U+4ed9,U+4eea,U+4f0a,U+4f1f,U+4f5b,U+4fa0,U+4fc3,U+501f,U+50a8,U+515a,U+5175,U+51a0,U+51c0,U+51e1,U+51e4,U+5200,U+520a,U+5224,U+523a,U+52aa,U+52b1,U+52b3,U+5348,U+5353,U+5360,U+5371,U+5377,U+539a,U+541b,U+5434,U+547c,U+54e6,U+5510,U+5531,U+5609,U+56f0,U+56fa,U+5733,U+574f,U+5851,U+5854,U+5899,U+58c1,U+592e,U+5939,U+5976,U+5986,U+59bb,U+5a18,U+5a74,U+5b59,U+5b87,U+5b97,U+5ba0,U+5bab,U+5bbd,U+5bbe,U+5bf8,U+5c0a,U+5c3a,U+5c4a,U+5e16,U+5e1d,U+5e2d,U+5e8a,U+6015,U+602a,U+6050,U+6069,U+6162,U+61c2,U+6293,U+6297,U+62b1,U+62bd,U+62df,U+62fc,U+6302,U+635f,U+638c,U+63ed,U+6458,U+6469,U+6563,U+6620,U+6653,U+6696,U+6697,U+66dd,U+675f,U+676f,U+6770,U+67d0,U+67d3,U+684c,U+6865,U+6885,U+68b0,U+68ee,U+690d,U+6b23,U+6b32,U+6bd5,U+6c89,U+6d01,U+6d25,U+6d89,U+6da6,U+6db2,U+6df7,U+6ed1,U+6f02,U+70c8,U+70df,U+70e7,U+7126,U+7236,U+7259,U+731c,U+745e,U+74e3,U+751a,U+751c,U+7532,U+7545,U+75db,U+7761,U+7a0d,U+7b51,U+7ca4,U+7cd6,U+7d2b,U+7ea0,U+7eb9,U+7ed8,U+7f18,U+7f29,U+8033,U+804a,U+80a4,U+80a5,U+80e1,U+817f,U+829d,U+82e6,U+8336,U+840c,U+8499,U+864e,U+8651,U+865a,U+88ad,U+89e6,U+8bd7,U+8bfa,U+8c37,U+8d25,U+8d38,U+8ddd,U+8fea,U+9010,U+9012,U+906d,U+907f,U+9080,U+90d1,U+9177,U+91ca,U+94fa,U+9501,U+9634,U+9635,U+9694,U+9707,U+9738,U+9769,U+9a7b,U+9a97,U+9aa8,U+9b3c,U+9c81,U+9ed8; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.89.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+26,U+3c,U+d7,U+4e4e,U+4e61,U+4e71,U+4ebf,U+4ee4,U+4f26,U+5012,U+51ac,U+51b0,U+51b2,U+51b7,U+5218,U+521a,U+5220,U+5237,U+523b,U+526f,U+5385,U+53bf,U+53e5,U+53eb,U+53f3,U+53f6,U+5409,U+5438,U+54c8,U+54e5,U+552f,U+5584,U+5706,U+5723,U+5750,U+575a,U+5987,U+5988,U+59b9,U+59d0,U+59d4,U+5b88,U+5b9c,U+5bdf,U+5bfb,U+5c01,U+5c04,U+5c3e,U+5c4b,U+5c4f,U+5c9b,U+5cf0,U+5ddd,U+5de6,U+5de8,U+5e01,U+5e78,U+5e7b,U+5e9c,U+5ead,U+5ef6,U+5f39,U+5fd8,U+6000,U+6025,U+604b,U+6076,U+613f,U+6258,U+6263,U+6267,U+6298,U+62a2,U+62e5,U+62ec,U+6311,U+6377,U+6388,U+6389,U+63a2,U+63d2,U+641e,U+642d,U+654f,U+6551,U+6597,U+65cf,U+65d7,U+65e7,U+6682,U+66f2,U+671d,U+672b,U+6751,U+6768,U+6811,U+6863,U+6982,U+6bd2,U+6cf0,U+6d0b,U+6d17,U+6d59,U+6dd8,U+6dfb,U+6e7e,U+6f6e,U+6fb3,U+706f,U+719f,U+72af,U+72d0,U+72d7,U+732b,U+732e,U+7389,U+73e0,U+7530,U+7687,U+76d6,U+76db,U+7840,U+786c,U+79cb,U+79d2,U+7a0e,U+7a33,U+7a3f,U+7a97,U+7ade,U+7adf,U+7b26,U+7e41,U+7ec3,U+7f3a,U+8089,U+80dc,U+811a,U+8131,U+8138,U+821e,U+8349,U+83dc,U+8457,U+867d,U+86cb,U+8a89,U+8ba8,U+8bad,U+8bef,U+8bfe,U+8c6a,U+8d1d,U+8d4f,U+8d62,U+8dd1,U+8df3,U+8f6e,U+8ff9,U+900f,U+9014,U+9057,U+9192,U+91ce,U+9488,U+94a2,U+9547,U+955c,U+95f2,U+9644,U+964d,U+96c4,U+96c5,U+96e8,U+96f6,U+96f7,U+9732,U+9759,U+9760,U+987a,U+989c,U+9910,U+996d,U+996e,U+9b54,U+9e21,U+9ebb,U+9f50; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.90.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+7e,U+2026,U+4e03,U+4e25,U+4e30,U+4e34,U+4e45,U+4e5d,U+4e89,U+4eae,U+4ed8,U+4f11,U+4f19,U+4f24,U+4f34,U+4f59,U+4f73,U+4f9d,U+4fb5,U+5047,U+505c,U+5170,U+519c,U+51cf,U+5267,U+5356,U+5374,U+5382,U+538b,U+53e6,U+5426,U+542b,U+542f,U+5462,U+5473,U+554a,U+5566,U+5708,U+571f,U+5757,U+57df,U+57f9,U+5802,U+590f,U+591c,U+591f,U+592b,U+5965,U+5979,U+5a01,U+5a5a,U+5b69,U+5b81,U+5ba1,U+5ba3,U+5c3c,U+5c42,U+5c81,U+5de7,U+5dee,U+5e0c,U+5e10,U+5e55,U+5e86,U+5e8f,U+5ea7,U+5f02,U+5f52,U+5f81,U+5ff5,U+60ca,U+60e0,U+6279,U+62c5,U+62ff,U+63cf,U+6444,U+64cd,U+653b,U+65bd,U+65e9,U+665a,U+66b4,U+66fe,U+6728,U+6740,U+6742,U+677e,U+67b6,U+680f,U+68a6,U+68c0,U+699c,U+6b4c,U+6b66,U+6b7b,U+6bcd,U+6bdb,U+6c38,U+6c47,U+6c49,U+6cb3,U+6cb9,U+6ce2,U+6d32,U+6d3e,U+6d4f,U+6e56,U+6fc0,U+7075,U+7206,U+725b,U+72c2,U+73ed,U+7565,U+7591,U+7597,U+75c5,U+76ae,U+76d1,U+76df,U+7834,U+7968,U+7981,U+79c0,U+7a7f,U+7a81,U+7ae5,U+7b14,U+7c89,U+7d27,U+7eaf,U+7eb3,U+7eb8,U+7ec7,U+7ee7,U+7eff,U+7f57,U+7ffb,U+805a,U+80a1,U+822c,U+82cf,U+82e5,U+8363,U+836f,U+84dd,U+878d,U+8840,U+8857,U+8863,U+8865,U+8b66,U+8bb2,U+8bda,U+8c01,U+8c08,U+8c46,U+8d1f,U+8d35,U+8d5b,U+8d5e,U+8da3,U+8ddf,U+8f93,U+8fdd,U+8ff0,U+8ff7,U+8ffd,U+9000,U+9047,U+9152,U+949f,U+94c1,U+94f6,U+9646,U+9648,U+9669,U+969c,U+96ea,U+97e9,U+987b,U+987e,U+989d,U+9970,U+9986,U+9c7c,U+9c9c; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.91.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+25,U+4e14,U+4e1d,U+4e3d,U+4e49,U+4e60,U+4e9a,U+4eb2,U+4ec5,U+4efd,U+4f3c,U+4f4f,U+4f8b,U+4fbf,U+5019,U+5145,U+514b,U+516b,U+516d,U+5174,U+5178,U+517b,U+5199,U+519b,U+51b3,U+51b5,U+5207,U+5212,U+5219,U+521d,U+52bf,U+533b,U+5343,U+5347,U+534a,U+536b,U+5370,U+53e4,U+53f2,U+5403,U+542c,U+547d,U+54a8,U+54cd,U+54ea,U+552e,U+56f4,U+5747,U+575b,U+5883,U+589e,U+5931,U+5947,U+5956,U+5957,U+5a92,U+5b63,U+5b83,U+5ba4,U+5bb3,U+5bcc,U+5c14,U+5c1a,U+5c3d,U+5c40,U+5c45,U+5c5e,U+5df4,U+5e72,U+5e95,U+5f80,U+5f85,U+5fb7,U+5fd7,U+601d,U+626b,U+627f,U+62c9,U+62cd,U+6309,U+63a7,U+6545,U+65ad,U+65af,U+65c5,U+666e,U+667a,U+670b,U+671b,U+674e,U+677f,U+6781,U+6790,U+6797,U+6821,U+6838,U+6839,U+697c,U+6b27,U+6b62,U+6bb5,U+6c7d,U+6c99,U+6d4e,U+6d6a,U+6e29,U+6e2f,U+6ee1,U+6f14,U+6f2b,U+72b6,U+72ec,U+7387,U+7533,U+753b,U+76ca,U+76d8,U+7701,U+773c,U+77ed,U+77f3,U+7814,U+793c,U+79bb,U+79c1,U+79d8,U+79ef,U+79fb,U+7a76,U+7b11,U+7b54,U+7b56,U+7b97,U+7bc7,U+7c73,U+7d20,U+7eaa,U+7ec8,U+7edd,U+7eed,U+7efc,U+7fa4,U+804c,U+8058,U+80cc,U+8111,U+817e,U+826f,U+8303,U+843d,U+89c9,U+89d2,U+8ba2,U+8bbf,U+8bc9,U+8bcd,U+8be6,U+8c22,U+8c61,U+8d22,U+8d26,U+8d27,U+8d8a,U+8f6f,U+8f7b,U+8f83,U+8f91,U+8fb9,U+8fd4,U+8fdc,U+9002,U+94b1,U+9519,U+95ed,U+961f,U+9632,U+9633,U+963f,U+968f,U+9690,U+96be,U+9876,U+9884,U+98de,U+9988,U+9999,U+9ec4,U+ff1b; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.92.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+2b,U+40,U+3000,U+300a,U+300b,U+4e16,U+4e66,U+4e70,U+4e91,U+4e92,U+4e94,U+4e9b,U+4ec0,U+4eca,U+4f01,U+4f17,U+4f18,U+4f46,U+4f4e,U+4f9b,U+4fee,U+503c,U+5065,U+50cf,U+513f,U+5148,U+518d,U+51c6,U+51e0,U+5217,U+529e,U+529f,U+5341,U+534f,U+5361,U+5386,U+53c2,U+53c8,U+53cc,U+53d7,U+53d8,U+5404,U+5411,U+5417,U+5427,U+5468,U+559c,U+5668,U+56e0,U+56e2,U+56ed,U+5740,U+57fa,U+58eb,U+5904,U+592a,U+59cb,U+5a31,U+5b58,U+5b9d,U+5bc6,U+5c71,U+5dde,U+5df1,U+5e08,U+5e26,U+5e2e,U+5e93,U+5e97,U+5eb7,U+5f15,U+5f20,U+5f3a,U+5f62,U+5f69,U+5f88,U+5f8b,U+5fc5,U+600e,U+620f,U+6218,U+623f,U+627e,U+628a,U+62a4,U+62db,U+62e9,U+6307,U+6362,U+636e,U+64ad,U+6539,U+653f,U+6548,U+6574,U+6613,U+6625,U+663e,U+666f,U+672a,U+6750,U+6784,U+6a21,U+6b3e,U+6b65,U+6bcf,U+6c11,U+6c5f,U+6d4b,U+6df1,U+706b,U+7167,U+724c,U+738b,U+73a9,U+73af,U+7403,U+7537,U+754c,U+7559,U+767d,U+7740,U+786e,U+795e,U+798f,U+79f0,U+7aef,U+7b7e,U+7bb1,U+7ea2,U+7ea6,U+7ec4,U+7ec6,U+7ecd,U+7edc,U+7ef4,U+8003,U+80b2,U+81f3,U+81f4,U+822a,U+827a,U+82f1,U+83b7,U+8425,U+89c2,U+89c8,U+8ba9,U+8bb8,U+8bc6,U+8bd5,U+8be2,U+8be5,U+8bed,U+8c03,U+8d23,U+8d2d,U+8d34,U+8d70,U+8db3,U+8fbe,U+8fce,U+8fd1,U+8fde,U+9001,U+901f,U+9020,U+90a3,U+914d,U+91c7,U+94fe,U+9500,U+952e,U+9605,U+9645,U+9662,U+9664,U+9700,U+9752,U+975e,U+97f3,U+9879,U+9886,U+98df,U+9a6c,U+9a8c,U+9ed1,U+9f99; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.93.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+4e,U+201c,U+201d,U+3010,U+3011,U+4e07,U+4e1c,U+4e24,U+4e3e,U+4e48,U+4e50,U+4e5f,U+4e8b,U+4e8c,U+4ea4,U+4eab,U+4eac,U+4ecb,U+4ece,U+4ed6,U+4ee3,U+4ef6,U+4ef7,U+4efb,U+4f20,U+4f55,U+4f7f,U+4fdd,U+505a,U+5143,U+5149,U+514d,U+5171,U+5177,U+518c,U+51fb,U+521b,U+5229,U+522b,U+52a9,U+5305,U+5317,U+534e,U+5355,U+5357,U+535a,U+5373,U+539f,U+53bb,U+53ca,U+53cd,U+53d6,U+53e3,U+53ea,U+53f0,U+5458,U+5546,U+56db,U+573a,U+578b,U+57ce,U+58f0,U+590d,U+5934,U+5973,U+5b57,U+5b8c,U+5b98,U+5bb9,U+5bfc,U+5c06,U+5c11,U+5c31,U+5c55,U+5df2,U+5e03,U+5e76,U+5e94,U+5efa,U+5f71,U+5f97,U+5feb,U+6001,U+603b,U+60f3,U+611f,U+6216,U+624d,U+6253,U+6295,U+6301,U+6392,U+641c,U+652f,U+653e,U+6559,U+6599,U+661f,U+671f,U+672f,U+6761,U+67e5,U+6807,U+6837,U+683c,U+6848,U+6b22,U+6b64,U+6bd4,U+6c14,U+6c34,U+6c42,U+6ca1,U+6d41,U+6d77,U+6d88,U+6e05,U+6e38,U+6e90,U+7136,U+7231,U+7531,U+767e,U+76ee,U+76f4,U+771f,U+7801,U+793a,U+79cd,U+7a0b,U+7a7a,U+7acb,U+7ae0,U+7b2c,U+7b80,U+7ba1,U+7cbe,U+7d22,U+7ea7,U+7ed3,U+7ed9,U+7edf,U+7f16,U+7f6e,U+8001,U+800c,U+8272,U+8282,U+82b1,U+8350,U+88ab,U+88c5,U+897f,U+89c1,U+89c4,U+89e3,U+8a00,U+8ba1,U+8ba4,U+8bae-8bb0,U+8bbe,U+8bc1,U+8bc4,U+8bfb,U+8d28,U+8d39,U+8d77,U+8d85,U+8def,U+8eab,U+8f66,U+8f6c,U+8f7d,U+8fd0,U+9009,U+90ae,U+90fd,U+91cc,U+91cd,U+91cf,U+95fb,U+9650,U+96c6,U+9891,U+98ce,U+ff1f; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.94.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+3e,U+5f,U+7c,U+a0,U+a9,U+4e09-4e0b,U+4e0d,U+4e0e,U+4e13,U+4e1a,U+4e2a,U+4e3a,U+4e3b,U+4e4b,U+4e86,U+4e8e,U+4ea7,U+4eba,U+4ee5,U+4eec,U+4f1a,U+4f4d,U+4f53,U+4f5c,U+4f60,U+4fe1,U+5165,U+5168,U+516c,U+5173,U+5176,U+5185,U+51fa,U+5206,U+5230,U+5236,U+524d,U+529b,U+52a0,U+52a1,U+52a8,U+5316,U+533a,U+53cb,U+53d1,U+53ef,U+53f7,U+53f8,U+5408,U+540c-540e,U+544a,U+548c,U+54c1,U+56de,U+56fd,U+56fe,U+5728,U+5730,U+5907,U+5916,U+591a,U+5927,U+5929,U+597d,U+5982,U+5b50,U+5b66,U+5b89,U+5b9a,U+5b9e,U+5ba2,U+5bb6,U+5bf9,U+5c0f,U+5de5,U+5e02,U+5e38,U+5e73,U+5e74,U+5e7f,U+5ea6,U+5f00,U+5f0f,U+5f53,U+5f55,U+5fae,U+5fc3,U+6027,U+606f,U+60a8,U+60c5,U+610f,U+6210,U+6211,U+6237,U+6240,U+624b,U+6280,U+62a5,U+63a5,U+63a8,U+63d0,U+6536,U+6570,U+6587,U+65b9,U+65e0,U+65f6,U+660e,U+662d,U+662f,U+66f4,U+6700,U+670d,U+672c,U+673a,U+6743,U+6765,U+679c,U+682a,U+6b21,U+6b63,U+6cbb,U+6cd5,U+6ce8,U+6d3b,U+70ed,U+7247,U+7248,U+7269,U+7279,U+73b0,U+7406,U+751f,U+7528,U+7535,U+767b,U+76f8,U+770b,U+77e5,U+793e,U+79d1,U+7ad9,U+7b49,U+7c7b,U+7cfb,U+7ebf,U+7ecf,U+7f8e,U+8005,U+8054,U+80fd,U+81ea,U+85cf,U+884c,U+8868,U+8981,U+89c6,U+8bba,U+8bdd,U+8bf4,U+8bf7,U+8d44,U+8fc7,U+8fd8,U+8fd9,U+8fdb,U+901a,U+9053,U+90e8,U+91d1,U+957f,U+95e8,U+95ee,U+95f4,U+9762,U+9875,U+9898,U+9996,U+9ad8,U+ff01,U+ff08,U+ff09; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.95.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+20-22,U+27-2a,U+2c-3b,U+3f,U+41-4d,U+4f-5d,U+61-7b,U+7d,U+ab,U+ae,U+b2,U+b7,U+bb,U+2013,U+2014,U+2039,U+203a,U+2122,U+3001,U+3002,U+30fb,U+30fc,U+4e00,U+4e2d,U+65b0,U+65e5,U+6708,U+6709,U+70b9,U+7684,U+7f51,U+ff0c,U+ff0e,U+ff1a; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Regular.96.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; + unicode-range: U+df-e5,U+e7-ea,U+ec,U+ed,U+f1-f4,U+f6,U+f9,U+fa,U+fc,U+101,U+103,U+113,U+12b,U+148,U+14d,U+16b,U+1ce,U+1d0,U+300,U+301,U+1ebf,U+1ec7,U+3042,U+3044,U+3046,U+3048,U+304a-3055,U+3057,U+3059-305b,U+305d,U+305f-3061,U+3063-306b,U+306d-3073,U+3075,U+3076,U+3078,U+3079,U+307b,U+307e,U+307f,U+3081-308d,U+308f,U+3092,U+3093,U+30a1-30a4,U+30a6-30bb,U+30bd,U+30bf-30c1,U+30c3,U+30c4,U+30c6-30cb,U+30cd-30d7,U+30d9-30e1,U+30e3-30e7,U+30e9-30ed,U+30ef,U+30f3; +} diff --git a/resources/font/HarmonyOS_Sans_SC_Regular/index.html b/resources/font/HarmonyOS_Sans_SC_Regular/index.html new file mode 100644 index 0000000..63d3400 --- /dev/null +++ b/resources/font/HarmonyOS_Sans_SC_Regular/index.html @@ -0,0 +1,20 @@ + + + + + + Demo + + + + + +
+

Created by voderl ( https://github.com/voderl/font-slice )

+

如果遇到问题可以在 issue 中反馈

+ +
+ + \ No newline at end of file diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.1.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.1.woff2 new file mode 100644 index 0000000..5aa28b5 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.1.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.10.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.10.woff2 new file mode 100644 index 0000000..344ceea Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.10.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.11.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.11.woff2 new file mode 100644 index 0000000..81b3d65 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.11.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.12.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.12.woff2 new file mode 100644 index 0000000..7dcf5cc Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.12.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.13.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.13.woff2 new file mode 100644 index 0000000..889f671 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.13.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.14.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.14.woff2 new file mode 100644 index 0000000..2364bef Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.14.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.15.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.15.woff2 new file mode 100644 index 0000000..2ba62dd Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.15.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.16.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.16.woff2 new file mode 100644 index 0000000..8ac4264 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.16.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.17.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.17.woff2 new file mode 100644 index 0000000..b024a2d Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.17.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.18.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.18.woff2 new file mode 100644 index 0000000..7dc5a48 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.18.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.19.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.19.woff2 new file mode 100644 index 0000000..37d58a2 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.19.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.2.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.2.woff2 new file mode 100644 index 0000000..0681f07 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.2.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.20.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.20.woff2 new file mode 100644 index 0000000..1a2ae80 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.20.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.21.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.21.woff2 new file mode 100644 index 0000000..3c6a6ca Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.21.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.22.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.22.woff2 new file mode 100644 index 0000000..ae4c933 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.22.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.23.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.23.woff2 new file mode 100644 index 0000000..7fbb330 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.23.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.24.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.24.woff2 new file mode 100644 index 0000000..cc4914c Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.24.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.25.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.25.woff2 new file mode 100644 index 0000000..3c48785 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.25.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.26.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.26.woff2 new file mode 100644 index 0000000..76ccad8 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.26.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.27.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.27.woff2 new file mode 100644 index 0000000..2d552f0 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.27.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.28.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.28.woff2 new file mode 100644 index 0000000..69fe7bb Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.28.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.29.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.29.woff2 new file mode 100644 index 0000000..5ebb30d Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.29.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.3.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.3.woff2 new file mode 100644 index 0000000..d15d946 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.3.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.30.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.30.woff2 new file mode 100644 index 0000000..4755568 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.30.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.31.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.31.woff2 new file mode 100644 index 0000000..b3b2aa9 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.31.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.32.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.32.woff2 new file mode 100644 index 0000000..efb823c Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.32.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.33.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.33.woff2 new file mode 100644 index 0000000..fc7be03 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.33.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.34.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.34.woff2 new file mode 100644 index 0000000..6b030a3 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.34.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.35.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.35.woff2 new file mode 100644 index 0000000..4a8ca54 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.35.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.36.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.36.woff2 new file mode 100644 index 0000000..94b415f Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.36.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.37.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.37.woff2 new file mode 100644 index 0000000..d7e20b6 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.37.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.38.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.38.woff2 new file mode 100644 index 0000000..81afb5d Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.38.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.39.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.39.woff2 new file mode 100644 index 0000000..fbe1807 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.39.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.4.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.4.woff2 new file mode 100644 index 0000000..970a4b9 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.4.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.40.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.40.woff2 new file mode 100644 index 0000000..ce34bdf Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.40.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.41.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.41.woff2 new file mode 100644 index 0000000..62b546e Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.41.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.42.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.42.woff2 new file mode 100644 index 0000000..0682fdb Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.42.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.43.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.43.woff2 new file mode 100644 index 0000000..dfd9df9 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.43.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.44.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.44.woff2 new file mode 100644 index 0000000..e317813 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.44.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.45.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.45.woff2 new file mode 100644 index 0000000..809e42f Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.45.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.46.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.46.woff2 new file mode 100644 index 0000000..42cef9e Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.46.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.47.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.47.woff2 new file mode 100644 index 0000000..f49c542 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.47.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.48.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.48.woff2 new file mode 100644 index 0000000..b7cf61b Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.48.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.49.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.49.woff2 new file mode 100644 index 0000000..f8e9eed Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.49.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.5.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.5.woff2 new file mode 100644 index 0000000..96f08bd Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.5.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.50.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.50.woff2 new file mode 100644 index 0000000..73ddf03 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.50.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.51.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.51.woff2 new file mode 100644 index 0000000..66adacc Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.51.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.52.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.52.woff2 new file mode 100644 index 0000000..fa1d848 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.52.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.53.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.53.woff2 new file mode 100644 index 0000000..1725703 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.53.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.54.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.54.woff2 new file mode 100644 index 0000000..1282415 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.54.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.55.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.55.woff2 new file mode 100644 index 0000000..ca026a1 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.55.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.56.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.56.woff2 new file mode 100644 index 0000000..445cdf5 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.56.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.57.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.57.woff2 new file mode 100644 index 0000000..8430284 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.57.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.58.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.58.woff2 new file mode 100644 index 0000000..18b3d6f Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.58.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.59.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.59.woff2 new file mode 100644 index 0000000..bcb3864 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.59.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.6.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.6.woff2 new file mode 100644 index 0000000..d7f0788 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.6.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.60.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.60.woff2 new file mode 100644 index 0000000..96aa133 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.60.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.61.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.61.woff2 new file mode 100644 index 0000000..0465224 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.61.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.62.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.62.woff2 new file mode 100644 index 0000000..d720d62 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.62.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.63.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.63.woff2 new file mode 100644 index 0000000..d45f44a Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.63.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.64.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.64.woff2 new file mode 100644 index 0000000..8a67e46 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.64.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.65.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.65.woff2 new file mode 100644 index 0000000..e9c67a0 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.65.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.66.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.66.woff2 new file mode 100644 index 0000000..4437618 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.66.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.67.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.67.woff2 new file mode 100644 index 0000000..3c048ef Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.67.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.68.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.68.woff2 new file mode 100644 index 0000000..3e784cb Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.68.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.69.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.69.woff2 new file mode 100644 index 0000000..01a34e3 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.69.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.7.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.7.woff2 new file mode 100644 index 0000000..7d8754f Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.7.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.70.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.70.woff2 new file mode 100644 index 0000000..eebcfab Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.70.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.71.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.71.woff2 new file mode 100644 index 0000000..a899861 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.71.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.72.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.72.woff2 new file mode 100644 index 0000000..87b45df Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.72.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.73.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.73.woff2 new file mode 100644 index 0000000..1cf17f1 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.73.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.74.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.74.woff2 new file mode 100644 index 0000000..dd8588d Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.74.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.75.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.75.woff2 new file mode 100644 index 0000000..38dac53 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.75.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.76.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.76.woff2 new file mode 100644 index 0000000..f91f104 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.76.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.77.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.77.woff2 new file mode 100644 index 0000000..173586a Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.77.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.78.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.78.woff2 new file mode 100644 index 0000000..5add9ed Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.78.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.79.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.79.woff2 new file mode 100644 index 0000000..82aef2f Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.79.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.8.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.8.woff2 new file mode 100644 index 0000000..92c873a Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.8.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.80.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.80.woff2 new file mode 100644 index 0000000..df2132b Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.80.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.81.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.81.woff2 new file mode 100644 index 0000000..e1e0e5b Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.81.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.82.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.82.woff2 new file mode 100644 index 0000000..f08c67e Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.82.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.83.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.83.woff2 new file mode 100644 index 0000000..2d3c7b7 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.83.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.84.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.84.woff2 new file mode 100644 index 0000000..46e0d9b Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.84.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.85.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.85.woff2 new file mode 100644 index 0000000..3a916f4 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.85.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.86.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.86.woff2 new file mode 100644 index 0000000..57ab44c Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.86.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.87.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.87.woff2 new file mode 100644 index 0000000..a9eb2f6 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.87.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.88.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.88.woff2 new file mode 100644 index 0000000..d9fa444 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.88.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.89.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.89.woff2 new file mode 100644 index 0000000..e740dce Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.89.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.9.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.9.woff2 new file mode 100644 index 0000000..c736941 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.9.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.90.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.90.woff2 new file mode 100644 index 0000000..0dcc95f Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.90.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.91.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.91.woff2 new file mode 100644 index 0000000..3a7c6e2 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.91.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.92.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.92.woff2 new file mode 100644 index 0000000..81e4ca3 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.92.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.93.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.93.woff2 new file mode 100644 index 0000000..34e1117 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.93.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.94.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.94.woff2 new file mode 100644 index 0000000..6922ff8 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.94.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.95.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.95.woff2 new file mode 100644 index 0000000..38d2c79 Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.95.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.96.woff2 b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.96.woff2 new file mode 100644 index 0000000..2dac56a Binary files /dev/null and b/resources/font/HarmonyOS_Sans_SC_Thin/HarmonyOS_Sans_SC_Thin.96.woff2 differ diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/font.css b/resources/font/HarmonyOS_Sans_SC_Thin/font.css new file mode 100644 index 0000000..bc0488b --- /dev/null +++ b/resources/font/HarmonyOS_Sans_SC_Thin/font.css @@ -0,0 +1,769 @@ +/** generated by https://github.com/voderl/font-slice */ +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.1.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+ff03,U+ff04,U+ff07,U+ff0a,U+ff17-ff19,U+ff1c,U+ff1d,U+ff20-ff3a,U+ff3c,U+ff3e-ff5b,U+ff5d,U+ffe0-ffe4; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.2.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+f92c,U+f979,U+fa11,U+fe30,U+fe31,U+fe33-fe44,U+fe49-fe52,U+fe54-fe57,U+fe59-fe66,U+fe68-fe6b; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.3.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+9f3d,U+9f3e,U+9f41,U+9f4a,U+9f4b,U+9f51,U+9f52,U+9f61-9f63,U+9f66,U+9f67,U+9f80,U+9f81,U+9f83,U+9f85-9f8d,U+9f90,U+9f91,U+9f94-9f96,U+9f98,U+9f9b,U+9f9c,U+9f9e,U+9fa0,U+9fa2; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.4.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+9dfa,U+9e0a,U+9e11,U+9e1a,U+9e1e,U+9e20,U+9e22,U+9e28-9e2c,U+9e2e-9e33,U+9e35-9e3b,U+9e3e,U+9e40-9e44,U+9e46-9e4e,U+9e51,U+9e53,U+9e55-9e58,U+9e5a-9e5c,U+9e5e-9e63,U+9e66-9e6e,U+9e71,U+9e73,U+9e75,U+9e78,U+9e79,U+9e7c-9e7e,U+9e82,U+9e86-9e88,U+9e8b,U+9e8c,U+9e90,U+9e91,U+9e93,U+9e95,U+9e97,U+9e9d,U+9ea4,U+9ea5,U+9ea9,U+9eaa,U+9eb4,U+9eb5,U+9eb8-9eba,U+9ebc-9ebf,U+9ec3,U+9ec9,U+9ecd,U+9ed0,U+9ed2,U+9ed3,U+9ed5,U+9ed6,U+9ed9,U+9edc,U+9edd,U+9edf,U+9ee0,U+9ee2,U+9ee5,U+9ee7-9eea,U+9eef,U+9ef1,U+9ef3,U+9ef4,U+9ef6,U+9ef9,U+9efb,U+9efc,U+9efe,U+9f0b,U+9f0d,U+9f10,U+9f14,U+9f17,U+9f19,U+9f22,U+9f29,U+9f2c,U+9f2f,U+9f31,U+9f37,U+9f39; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.5.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+9c3b,U+9c40,U+9c47-9c49,U+9c53,U+9c57,U+9c64,U+9c72,U+9c77,U+9c78,U+9c7b,U+9c7f,U+9c80,U+9c82,U+9c83,U+9c85-9c8c,U+9c8e-9c92,U+9c94-9c9b,U+9c9e-9ca3,U+9ca5-9ca7,U+9ca9,U+9cab,U+9cad,U+9cae,U+9cb1-9cb7,U+9cb9-9cbd,U+9cbf,U+9cc0,U+9cc3,U+9cc5-9cc7,U+9cc9-9cd1,U+9cd3-9cda,U+9cdc,U+9cdd,U+9cdf,U+9ce1-9ce3,U+9ce5,U+9ce9,U+9cee,U+9cef,U+9cf3,U+9cf4,U+9cf6,U+9cfc,U+9cfd,U+9d02,U+9d08,U+9d09,U+9d12,U+9d1b,U+9d1e,U+9d26,U+9d28,U+9d37,U+9d3b,U+9d3f,U+9d51,U+9d59,U+9d5c,U+9d5d,U+9d5f-9d61,U+9d6c,U+9d70,U+9d72,U+9d7a,U+9d7e,U+9d84,U+9d89,U+9d8f,U+9d92,U+9daf,U+9db4,U+9db8,U+9dbc,U+9dc4,U+9dc7,U+9dc9,U+9dd7,U+9ddf,U+9df2,U+9df9; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.6.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+9a5f,U+9a62,U+9a65,U+9a69,U+9a6b,U+9a6e,U+9a75,U+9a77-9a7a,U+9a7d,U+9a80,U+9a83,U+9a85,U+9a87-9a8a,U+9a8d,U+9a8e,U+9a90,U+9a92,U+9a93,U+9a95,U+9a96,U+9a98,U+9a99,U+9a9b-9aa2,U+9aa5,U+9aa7,U+9aaf-9ab1,U+9ab5,U+9ab6,U+9ab9,U+9aba,U+9abc,U+9ac0-9ac4,U+9ac8,U+9acb,U+9acc,U+9ace,U+9acf,U+9ad1,U+9ad2,U+9ad9,U+9adf,U+9ae1,U+9ae3,U+9aea,U+9aeb,U+9aed-9aef,U+9af4,U+9af9,U+9afb,U+9b03,U+9b04,U+9b06,U+9b08,U+9b0d,U+9b0f,U+9b10,U+9b13,U+9b18,U+9b1a,U+9b1f,U+9b22,U+9b23,U+9b25,U+9b27,U+9b28,U+9b2a,U+9b2f,U+9b31,U+9b32,U+9b3b,U+9b43,U+9b46-9b49,U+9b4d,U+9b4e,U+9b51,U+9b56,U+9b58,U+9b5a,U+9b5c,U+9b5f,U+9b61,U+9b62,U+9b6f,U+9b77,U+9b80,U+9b88,U+9b8b,U+9b8e,U+9b91,U+9b9f,U+9ba0,U+9ba8,U+9baa,U+9bab,U+9bad,U+9bae,U+9bb0,U+9bb1,U+9bb8,U+9bc9,U+9bca,U+9bd3,U+9bd6,U+9bdb,U+9be8,U+9bf0,U+9bf1,U+9c02,U+9c10,U+9c15,U+9c24,U+9c2d,U+9c32,U+9c39; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.7.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+98c8,U+98cf-98d6,U+98da,U+98db,U+98dd,U+98e1,U+98e2,U+98e7-98ea,U+98ec,U+98ee,U+98ef,U+98f2,U+98f4,U+98fc-98fe,U+9903,U+9905,U+9908,U+990a,U+990c,U+990d,U+9913,U+9914,U+9918,U+991a,U+991b,U+991e,U+9921,U+9928,U+992c,U+992e,U+9935,U+9938,U+9939,U+993d,U+993e,U+9945,U+994b,U+994c,U+9951,U+9952,U+9954,U+9955,U+9957,U+995e,U+9963,U+9966-9969,U+996b,U+996c,U+996f,U+9974,U+9975,U+9977-9979,U+997d,U+997e,U+9980,U+9981,U+9983,U+9984,U+9987,U+998a,U+998b,U+998d-9991,U+9993-9995,U+9997,U+9998,U+99a5,U+99ab-99ae,U+99b1,U+99b3,U+99b4,U+99bc,U+99bf,U+99c1,U+99c3-99c6,U+99cc,U+99d0,U+99d2,U+99d5,U+99db,U+99dd,U+99e1,U+99ed,U+99f1,U+99ff,U+9a01,U+9a03,U+9a04,U+9a0e,U+9a0f,U+9a11-9a13,U+9a19,U+9a1b,U+9a28,U+9a2b,U+9a30,U+9a32,U+9a37,U+9a40,U+9a45,U+9a4a,U+9a4d,U+9a4e,U+9a52,U+9a55,U+9a57,U+9a5a,U+9a5b; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.8.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+972a,U+972d,U+9730,U+973d,U+9742,U+9744,U+9748,U+9749,U+9750,U+9751,U+975a-975c,U+9763,U+9765,U+9766,U+976c,U+976d,U+9773,U+9776,U+977a,U+977c,U+9784,U+9785,U+978e,U+978f,U+9791,U+9792,U+9794,U+9795,U+9798,U+979a,U+979e,U+97a3,U+97a5,U+97a6,U+97a8,U+97ab,U+97ac,U+97ae,U+97af,U+97b2,U+97b4,U+97c6,U+97cb,U+97cc,U+97d3,U+97d8,U+97dc,U+97e1,U+97ea,U+97eb,U+97ee,U+97fb,U+97fe,U+97ff,U+9801-9803,U+9805,U+9806,U+9808,U+980c,U+9810-9814,U+9817,U+9818,U+981e,U+9820,U+9821,U+9824,U+9828,U+982b-982d,U+9830,U+9834,U+9838,U+9839,U+983c,U+9846,U+984d-984f,U+9851,U+9852,U+9854,U+9855,U+9857,U+9858,U+985a,U+985b,U+9862,U+9863,U+9865,U+9867,U+986b,U+986f-9871,U+9877,U+9878,U+987c,U+9880,U+9883,U+9885,U+9889,U+988b-988f,U+9893-9895,U+9899-989b,U+989e,U+989f,U+98a1,U+98a2,U+98a5-98a7,U+98a9,U+98af,U+98b1,U+98b6,U+98ba,U+98be,U+98c3,U+98c4,U+98c6,U+98c7; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.9.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+95b9-95ca,U+95cc,U+95cd,U+95d4-95d6,U+95d8,U+95e1,U+95e2,U+95e9,U+95f0,U+95f1,U+95f3,U+95f6,U+95fc,U+95fe,U+95ff,U+9602-9604,U+9606-960d,U+960f,U+9611-9613,U+9615-9617,U+9619-961b,U+961d,U+9621,U+9628,U+962f,U+963c-963e,U+9641,U+9642,U+9649,U+9654,U+965b-965f,U+9661,U+9663,U+9665,U+9667,U+9668,U+966c,U+9670,U+9672-9674,U+9678,U+967a,U+967d,U+9682,U+9685,U+9688,U+968a,U+968d,U+968e,U+9695,U+9697,U+9698,U+969e,U+96a0,U+96a3,U+96a4,U+96a8,U+96aa,U+96b0,U+96b1,U+96b3,U+96b4,U+96b7-96b9,U+96bb-96bd,U+96c9,U+96cb,U+96ce,U+96d1,U+96d2,U+96d6,U+96d9,U+96db,U+96dc,U+96de,U+96e0,U+96e3,U+96e9,U+96eb,U+96f0-96f2,U+96f9,U+96ff,U+9701,U+9702,U+9705,U+9708,U+970a,U+970e,U+970f,U+9711,U+9719,U+9727; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.10.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+94e7-94ec,U+94ee-94f1,U+94f3,U+94f5,U+94f7,U+94f9,U+94fb-94fd,U+94ff,U+9503,U+9504,U+9506,U+9507,U+9509,U+950a,U+950d-950f,U+9511-9518,U+951a-9520,U+9522,U+9528-952d,U+9530-953a,U+953c-953f,U+9543-9546,U+9548-9550,U+9552-9555,U+9557-955b,U+955d-9568,U+956a-956d,U+9570-9574,U+9583,U+9586,U+9589,U+958e,U+958f,U+9591,U+9592,U+9594,U+9598,U+9599,U+959e-95a0,U+95a2-95a6,U+95a8-95b2,U+95b4,U+95b8; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.11.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+9410-941a,U+941c-942b,U+942d,U+942e,U+9432,U+9433,U+9435,U+9438,U+943a,U+943e,U+9444,U+944a,U+9451,U+9452,U+945a,U+9462,U+9463,U+9465,U+9470-9487,U+948a-9492,U+9494-9498,U+949a,U+949c,U+949d,U+94a1,U+94a3,U+94a4,U+94a8,U+94aa-94ad,U+94af,U+94b2,U+94b4-94ba,U+94bc-94c0,U+94c4,U+94c6-94db,U+94de-94e6; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.12.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+92b7,U+92b9,U+92c1,U+92c5,U+92c6,U+92c8,U+92cc,U+92d0,U+92d2,U+92e4,U+92ea,U+92ec,U+92ed,U+92f0,U+92f3,U+92f8,U+92fc,U+9304,U+9306,U+9310,U+9312,U+9315,U+9318,U+931a,U+931e,U+9320-9322,U+9324,U+9326-9329,U+932b,U+932c,U+932f,U+9331,U+9332,U+9335,U+9336,U+933e,U+9340,U+9341,U+934a-9360,U+9362,U+9363,U+9365-936b,U+936e,U+9375,U+937e,U+9382,U+938a,U+938c,U+938f,U+9393,U+9394,U+9396,U+9397,U+939a,U+93a2,U+93a7,U+93ac-93cd,U+93d0,U+93d1,U+93d6-93d8,U+93de,U+93df,U+93e1,U+93e2,U+93e4,U+93f8,U+93fb,U+93fd,U+940e,U+940f; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.13.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+914c,U+914e-9150,U+9154,U+9157,U+915a,U+915d,U+915e,U+9161-9164,U+9169,U+9170,U+9172,U+9174,U+9179,U+917a,U+917d,U+917e,U+9182,U+9183,U+9185,U+918c,U+918d,U+9190,U+9191,U+919a,U+919c,U+91a1-91a4,U+91a8,U+91aa-91af,U+91b4,U+91b5,U+91b8,U+91ba,U+91be,U+91c0,U+91c1,U+91c6,U+91c8,U+91cb,U+91d0,U+91d2,U+91d7,U+91d8,U+91dd,U+91e3,U+91e6,U+91e7,U+91ed,U+91f0,U+91f5,U+91f9,U+9200,U+9205,U+9207-920a,U+920d,U+920e,U+9210,U+9214,U+9215,U+921c,U+921e,U+9221,U+9223-9227,U+9229,U+922a,U+922d,U+9234,U+9235,U+9237,U+9239,U+923a,U+923c-9240,U+9244-9246,U+9249,U+924e,U+924f,U+9251,U+9253,U+9257,U+925b,U+925e,U+9262,U+9264-9266,U+9268,U+926c,U+926f,U+9271,U+927b,U+927e,U+9280,U+9283,U+9285-928a,U+928e,U+9291,U+9293,U+9296,U+9298,U+929c,U+929d,U+92a8,U+92ab-92ae,U+92b3,U+92b6; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.14.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+8fe2-8fe5,U+8fe8,U+8fe9,U+8fee,U+8ff3,U+8ff4,U+8ff8,U+8ffa,U+9004,U+900b,U+9011,U+9015,U+9016,U+901e,U+9021,U+9026,U+902d,U+902f,U+9031,U+9035,U+9036,U+9039,U+903a,U+9041,U+9044-9046,U+904a,U+904f-9052,U+9054,U+9055,U+9058,U+9059,U+905b-905e,U+9060-9062,U+9068,U+9069,U+906f,U+9072,U+9074,U+9076-907a,U+907c,U+907d,U+9081,U+9083,U+9085,U+9087-908b,U+908f,U+9095,U+9097,U+9099-909b,U+909d,U+90a0,U+90a1,U+90a8,U+90a9,U+90ac,U+90b0,U+90b2-90b4,U+90b6,U+90b8,U+90ba,U+90bd,U+90be,U+90c3-90c5,U+90c7,U+90c8,U+90cf,U+90d0,U+90d3,U+90d5,U+90d7,U+90da-90dc,U+90de,U+90e2,U+90e4,U+90e6,U+90e7,U+90ea,U+90eb,U+90ef,U+90f4,U+90f5,U+90f7,U+90fe-9100,U+9104,U+9109,U+910c,U+9112,U+9114,U+9115,U+9118,U+911c,U+911e,U+9120,U+9122,U+9123,U+9127,U+912d,U+912f-9132,U+9139,U+913a,U+9143,U+9146,U+9149,U+914a; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.15.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+8e2d-8e31,U+8e34,U+8e35,U+8e39,U+8e3a,U+8e3d,U+8e40-8e42,U+8e47,U+8e49-8e4b,U+8e50-8e53,U+8e59,U+8e5a,U+8e5f,U+8e60,U+8e64,U+8e69,U+8e6c,U+8e70,U+8e74,U+8e76,U+8e7a-8e7c,U+8e7f,U+8e84,U+8e85,U+8e87,U+8e89,U+8e8b,U+8e8d,U+8e8f,U+8e90,U+8e94,U+8e99,U+8e9c,U+8e9e,U+8eaa,U+8eac,U+8eb0,U+8eb6,U+8ec0,U+8ec6,U+8eca-8ece,U+8ed2,U+8eda,U+8edf,U+8ee2,U+8eeb,U+8ef8,U+8efb-8efe,U+8f03,U+8f09,U+8f0b,U+8f12-8f15,U+8f1b,U+8f1d,U+8f1f,U+8f29,U+8f2a,U+8f2f,U+8f36,U+8f38,U+8f3b,U+8f3e,U+8f3f,U+8f44,U+8f45,U+8f49,U+8f4d,U+8f4e,U+8f5f,U+8f6b,U+8f6d,U+8f71-8f73,U+8f75,U+8f76,U+8f78-8f7a,U+8f7c,U+8f7e,U+8f81,U+8f82,U+8f84,U+8f87,U+8f8a,U+8f8b,U+8f8d-8f8f,U+8f94,U+8f95,U+8f97-8f9a,U+8fa6,U+8fad-8faf,U+8fb2,U+8fb5-8fb7,U+8fba-8fbc,U+8fbf,U+8fc2,U+8fcb,U+8fcd,U+8fd3,U+8fd5,U+8fd7,U+8fda; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.16.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+8caf,U+8cb0,U+8cb3,U+8cb4,U+8cb6-8cb9,U+8cbb-8cbd,U+8cbf-8cc4,U+8cc7,U+8cc8,U+8cca,U+8ccd,U+8cd1,U+8cd3,U+8cdb,U+8cdc,U+8cde,U+8ce0,U+8ce2-8ce4,U+8ce6-8ce8,U+8cea,U+8ced,U+8cf4,U+8cf8,U+8cfa,U+8cfc,U+8cfd,U+8d04,U+8d05,U+8d07,U+8d08,U+8d0a,U+8d0d,U+8d0f,U+8d13,U+8d14,U+8d16,U+8d1b,U+8d20,U+8d2e,U+8d30,U+8d32,U+8d33,U+8d36,U+8d3b,U+8d3d,U+8d40,U+8d42,U+8d43,U+8d45,U+8d46,U+8d48-8d4a,U+8d4d,U+8d51,U+8d53,U+8d55,U+8d59,U+8d5c,U+8d5d,U+8d5f,U+8d61,U+8d66,U+8d67,U+8d6a,U+8d6d,U+8d71,U+8d73,U+8d84,U+8d90,U+8d91,U+8d94,U+8d95,U+8d99,U+8da8,U+8daf,U+8db1,U+8db5,U+8db8,U+8dba,U+8dbc,U+8dbf,U+8dc2,U+8dc4,U+8dc6,U+8dcb,U+8dce,U+8dcf,U+8dd6,U+8dd7,U+8dda,U+8ddb,U+8dde,U+8de1,U+8de3,U+8de4,U+8de9,U+8deb,U+8dec,U+8df0,U+8df1,U+8df6-8dfd,U+8e05,U+8e07,U+8e09,U+8e0a,U+8e0c,U+8e0e,U+8e10,U+8e14,U+8e1d-8e1f,U+8e23,U+8e26,U+8e2b,U+8e2c; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.17.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+8b5e,U+8b60,U+8b6c,U+8b6f,U+8b70,U+8b72,U+8b74,U+8b77,U+8b7d,U+8b80,U+8b83,U+8b8a,U+8b8c,U+8b90,U+8b93,U+8b99,U+8b9a,U+8ba0,U+8ba3,U+8ba5-8ba7,U+8baa-8bac,U+8bb3-8bb5,U+8bb7,U+8bb9,U+8bc2,U+8bc3,U+8bc5,U+8bcb,U+8bcc,U+8bce-8bd0,U+8bd2-8bd4,U+8bd6,U+8bd8,U+8bd9,U+8bdc,U+8bdf,U+8be3,U+8be4,U+8be7-8be9,U+8beb,U+8bec,U+8bee,U+8bf0,U+8bf2,U+8bf3,U+8bf6,U+8bf9,U+8bfc,U+8bfd,U+8bff,U+8c00,U+8c02,U+8c04,U+8c06,U+8c07,U+8c0c,U+8c0f,U+8c11,U+8c12,U+8c14-8c1b,U+8c1d-8c21,U+8c24,U+8c25,U+8c27,U+8c2a-8c2c,U+8c2e-8c30,U+8c32-8c36,U+8c3f,U+8c47-8c4c,U+8c4e-8c50,U+8c54-8c56,U+8c62,U+8c68,U+8c6c,U+8c73,U+8c78,U+8c7a,U+8c82,U+8c85,U+8c89,U+8c8a,U+8c8d,U+8c8e,U+8c90,U+8c93,U+8c94,U+8c98,U+8c9d,U+8c9e,U+8ca0-8ca2,U+8ca7-8cac; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.18.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+8a02,U+8a03,U+8a07-8a0a,U+8a0e,U+8a0f,U+8a13,U+8a15-8a18,U+8a1a,U+8a1b,U+8a1d,U+8a1f,U+8a22,U+8a23,U+8a25,U+8a2b,U+8a2d,U+8a31,U+8a33,U+8a34,U+8a36-8a38,U+8a3a,U+8a3c,U+8a3e,U+8a40,U+8a41,U+8a46,U+8a48,U+8a50,U+8a52,U+8a54,U+8a55,U+8a58,U+8a5b,U+8a5d-8a63,U+8a66,U+8a69-8a6b,U+8a6d,U+8a6e,U+8a70,U+8a72,U+8a73,U+8a7a,U+8a85,U+8a87,U+8a8a,U+8a8c,U+8a8d,U+8a90-8a92,U+8a95,U+8a98,U+8aa0,U+8aa1,U+8aa3-8aa6,U+8aa8,U+8aa9,U+8aac-8aae,U+8ab0,U+8ab2,U+8ab8,U+8ab9,U+8abc,U+8abe,U+8abf,U+8ac7,U+8acf,U+8ad2,U+8ad6,U+8ad7,U+8adb,U+8adc,U+8adf,U+8ae1,U+8ae6-8ae8,U+8aeb,U+8aed,U+8aee,U+8af1,U+8af3,U+8af4,U+8af7,U+8af8,U+8afa,U+8afe,U+8b00-8b02,U+8b07,U+8b0a,U+8b0c,U+8b0e,U+8b10,U+8b17,U+8b19,U+8b1b,U+8b1d,U+8b20,U+8b21,U+8b26,U+8b28,U+8b2c,U+8b33,U+8b39,U+8b3e,U+8b3f,U+8b41,U+8b45,U+8b49,U+8b4c,U+8b4f,U+8b57,U+8b58,U+8b5a,U+8b5c; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.19.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+8869,U+886a,U+886e,U+886f,U+8872,U+8879,U+887d-887f,U+8882,U+8884-8886,U+8888,U+888f,U+8892,U+8893,U+889b,U+88a2,U+88a4,U+88a6,U+88a8,U+88aa,U+88ae,U+88b1,U+88b4,U+88b7,U+88bc,U+88c0,U+88c6-88c9,U+88ce,U+88cf,U+88d1-88d3,U+88d8,U+88db-88dd,U+88df,U+88e1-88e3,U+88e5,U+88e8,U+88ec,U+88f0,U+88f1,U+88f3,U+88f4,U+88fc-88fe,U+8900,U+8902,U+8906,U+8907,U+8909-890c,U+8912-8915,U+8918-891b,U+8921,U+8925,U+892b,U+8930,U+8932,U+8934,U+8936,U+893b,U+893d,U+8941,U+894c,U+8955,U+8956,U+8959,U+895c,U+895e-8960,U+8966,U+896a,U+896c,U+896f,U+8970,U+8972,U+897b,U+897e,U+8980,U+8983,U+8985,U+8987,U+8988,U+898c,U+898f,U+8993,U+8997,U+899a,U+89a1,U+89a7,U+89a9,U+89aa,U+89b2,U+89b3,U+89b7,U+89c0,U+89c7,U+89ca-89cc,U+89ce-89d1,U+89d6,U+89da,U+89dc,U+89de,U+89e5,U+89e7,U+89eb,U+89ef,U+89f1,U+89f3,U+89f4,U+89f8,U+89ff,U+8a01; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.20.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+86e4,U+86e6,U+86e9,U+86ed,U+86ef-86f4,U+86f8,U+86f9,U+86fb,U+86fe,U+8703,U+8706-870a,U+870d,U+8711-8713,U+871a,U+871e,U+8722,U+8723,U+8725,U+8729,U+872e,U+8731,U+8734,U+8737,U+873a,U+873b,U+873e-8740,U+8742,U+8747,U+8748,U+8753,U+8755,U+8757,U+8758,U+875d,U+875f,U+8762-8766,U+8768,U+876e,U+8770,U+8772,U+8775,U+8778,U+877b-877e,U+8782,U+8785,U+8788,U+878b,U+8793,U+8797,U+879a,U+879e-87a0,U+87a2,U+87a3,U+87a8,U+87ab-87ad,U+87af,U+87b3,U+87b5,U+87bd,U+87c0,U+87c4,U+87c6,U+87ca,U+87cb,U+87d1,U+87d2,U+87db,U+87dc,U+87de,U+87e0,U+87e5,U+87ea,U+87ec,U+87ee,U+87f2,U+87f3,U+87fb,U+87fd,U+87fe,U+8802,U+8803,U+8805,U+880a,U+880b,U+880d,U+8813-8816,U+8819,U+881b,U+881f,U+8821,U+8823,U+8831,U+8832,U+8835,U+8836,U+8839,U+883b,U+883c,U+8844,U+8846,U+884a,U+884e,U+8852,U+8853,U+8855,U+8859,U+885b,U+885d,U+885e,U+8862,U+8864; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.21.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+8532,U+8534,U+8535,U+8538-853a,U+853c,U+8543,U+8545,U+8548,U+854e,U+8553,U+8556,U+8557,U+8559,U+855e,U+8561,U+8564,U+8565,U+8568-856a,U+856d,U+856f,U+8570,U+8572,U+8576,U+8579-857b,U+8580,U+8585,U+8586,U+8588,U+858a,U+858f,U+8591,U+8594,U+8599,U+859c,U+85a2,U+85a4,U+85a6,U+85a8,U+85a9,U+85ab,U+85ac,U+85ae,U+85b7-85b9,U+85be,U+85c1,U+85c7,U+85cd,U+85d0,U+85d3,U+85d5,U+85dc,U+85dd,U+85df,U+85e0,U+85e5,U+85e6,U+85e8-85ea,U+85f4,U+85f9,U+85fe,U+85ff,U+8602,U+8605-8607,U+860a,U+860b,U+8616,U+8618,U+861a,U+8627,U+8629,U+862d,U+8638,U+863c,U+863f,U+864d,U+864f,U+8652-8655,U+865b,U+865c,U+865f,U+8662,U+8667,U+866c,U+866e,U+8671,U+8675,U+867a-867c,U+867f,U+868b,U+868d,U+8693,U+869c,U+869d,U+86a1,U+86a3,U+86a4,U+86a7-86a9,U+86ac,U+86af-86b1,U+86b4-86b6,U+86ba,U+86c0,U+86c4,U+86c6,U+86c9,U+86ca,U+86cd-86d1,U+86d4,U+86d8,U+86de,U+86df; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.22.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+83b4,U+83b6,U+83b8,U+83ba,U+83bc,U+83bd,U+83bf,U+83c0,U+83c2,U+83c5,U+83c8,U+83c9,U+83cb,U+83d1,U+83d3-83d6,U+83d8,U+83db,U+83dd,U+83df,U+83e1,U+83e5,U+83ea,U+83eb,U+83f0,U+83f4,U+83f8,U+83f9,U+83fb,U+83fd,U+83ff,U+8401,U+8406,U+840a,U+840b,U+840f,U+8411,U+8418,U+841c,U+8420,U+8422-8424,U+8426,U+8429,U+842c,U+8438,U+8439,U+843b,U+843c,U+843f,U+8446,U+8447,U+8449,U+844e,U+8451,U+8452,U+8456,U+8459,U+845a,U+845c,U+8462,U+8466,U+846d,U+846f,U+8470,U+8473,U+8476-8478,U+847a,U+847d,U+8484,U+8485,U+8487,U+8489,U+848c,U+848e,U+8490,U+8493,U+8494,U+8497,U+849b,U+849e,U+849f,U+84a1,U+84a5,U+84a8,U+84af,U+84b4,U+84b9-84bf,U+84c1,U+84c2,U+84c5-84c7,U+84ca,U+84cb,U+84cd,U+84d0,U+84d1,U+84d3,U+84d6,U+84df,U+84e0,U+84e2,U+84e3,U+84e5-84e7,U+84ee,U+84f3,U+84f6,U+84fa,U+84fc,U+84ff,U+8500,U+850c,U+8511,U+8514,U+8515,U+8517,U+8518,U+851f,U+8523,U+8525,U+8526,U+8529,U+852b,U+852d; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.23.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+82a9-82ab,U+82ae,U+82b0,U+82b2,U+82b4-82b6,U+82bc,U+82be,U+82c0-82c2,U+82c4-82c8,U+82ca-82cc,U+82ce,U+82d0,U+82d2,U+82d3,U+82d5,U+82d6,U+82d8,U+82d9,U+82dc-82de,U+82e0-82e4,U+82e7,U+82e9-82eb,U+82ed,U+82ee,U+82f3,U+82f4,U+82f7,U+82f8,U+82fa-8301,U+8306-8308,U+830c,U+830d,U+830f,U+8311,U+8313-8315,U+8318,U+831a,U+831b,U+831d,U+8324,U+8327,U+832a,U+832c,U+832d,U+832f,U+8331-8334,U+833a-833c,U+8340,U+8343-8345,U+8347,U+8348,U+834a,U+834c,U+834f,U+8351,U+8356,U+8358-835c,U+835e,U+8360,U+8364-8366,U+8368-836a,U+836c-836e,U+8373,U+8378,U+837b-837d,U+837f,U+8380,U+8382,U+8388,U+838a,U+838b,U+8392,U+8394,U+8396,U+8398,U+8399,U+839b,U+839c,U+83a0,U+83a2,U+83a3,U+83a8-83aa,U+83ae-83b0,U+83b3; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.24.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+814d,U+814e,U+8151,U+8153,U+8158-815a,U+815e,U+8160,U+8166-8169,U+816b,U+816d,U+8171,U+8173,U+8174,U+8178,U+817c,U+817d,U+8182,U+8188,U+8191,U+8198-819b,U+81a0,U+81a3,U+81a5,U+81a6,U+81a9,U+81b6,U+81ba,U+81bb,U+81bd,U+81bf,U+81c1,U+81c3,U+81c6,U+81c9,U+81ca,U+81cc,U+81cd,U+81d1,U+81d3,U+81d4,U+81d8,U+81db,U+81dc,U+81de,U+81df,U+81e5,U+81e7-81e9,U+81eb,U+81ec,U+81ee,U+81ef,U+81f5,U+81f8,U+81fa,U+81fc,U+81fe,U+8200-8202,U+8204,U+8208-820a,U+820e-8210,U+8216-8218,U+821b,U+821c,U+8221-8224,U+8226-8228,U+822b,U+822d,U+822f,U+8232-8234,U+8237,U+8238,U+823a,U+823b,U+823e,U+8244,U+8249,U+824b,U+824f,U+8259,U+825a,U+825f,U+8266,U+8268,U+826e,U+8271,U+8276-8279,U+827d,U+827f,U+8283,U+8284,U+8288-828a,U+828d-8291,U+8293,U+8294,U+8296-8298,U+829f-82a1,U+82a3,U+82a4,U+82a7,U+82a8; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.25.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+7ffa,U+7ffe,U+8004,U+8006,U+800b,U+800e,U+8011,U+8012,U+8014,U+8016,U+8018,U+8019,U+801c,U+801e,U+8026-802a,U+8031,U+8034,U+8035,U+8037,U+8043,U+804b,U+804d,U+8052,U+8056,U+8059,U+805e,U+8061,U+8068,U+8069,U+806e-8074,U+8076-8078,U+807c-8080,U+8082,U+8084,U+8085,U+8088,U+808f,U+8093,U+809c,U+809f,U+80ab,U+80ad,U+80ae,U+80b1,U+80b6-80b8,U+80bc,U+80bd,U+80c2,U+80c4,U+80ca,U+80cd,U+80d1,U+80d4,U+80d7,U+80d9-80db,U+80dd,U+80e0,U+80e4,U+80e5,U+80e7-80ed,U+80ef-80f1,U+80f3,U+80f4,U+80fc,U+8101,U+8104,U+8105,U+8107,U+8108,U+810c-810e,U+8112-8115,U+8117-8119,U+811b-811f,U+8121-8130,U+8132-8134,U+8137,U+8139,U+813f,U+8140,U+8142,U+8146,U+8148; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.26.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+7ed7,U+7edb,U+7ee0-7ee2,U+7ee5,U+7ee6,U+7ee8,U+7eeb,U+7ef0-7ef2,U+7ef6,U+7efa,U+7efb,U+7efe,U+7f01-7f04,U+7f08,U+7f0a-7f12,U+7f17,U+7f19,U+7f1b,U+7f1c,U+7f1f,U+7f21-7f23,U+7f25-7f28,U+7f2a-7f33,U+7f35-7f37,U+7f3d,U+7f42,U+7f44,U+7f45,U+7f4c,U+7f4d,U+7f52,U+7f54,U+7f58,U+7f59,U+7f5d,U+7f5f-7f61,U+7f63,U+7f65,U+7f68,U+7f70,U+7f71,U+7f73-7f75,U+7f77,U+7f79,U+7f7d,U+7f7e,U+7f85,U+7f86,U+7f88,U+7f89,U+7f8b,U+7f8c,U+7f90,U+7f91,U+7f94-7f96,U+7f98-7f9b,U+7f9d,U+7f9f,U+7fa3,U+7fa7-7fa9,U+7fac-7fb2,U+7fb4,U+7fb6,U+7fb8,U+7fbc,U+7fbf,U+7fc0,U+7fc3,U+7fca,U+7fcc,U+7fce,U+7fd2,U+7fd5,U+7fd9-7fdb,U+7fdf,U+7fe3,U+7fe5-7fe7,U+7fe9,U+7feb,U+7fec,U+7fee,U+7fef,U+7ff1,U+7ff3,U+7ff4,U+7ff9; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.27.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+7dc4,U+7dc7,U+7dc8,U+7dca-7dcd,U+7dcf,U+7dd1,U+7dd2,U+7dd4,U+7dd6-7dd8,U+7dda-7de0,U+7de2-7de6,U+7de8-7ded,U+7def,U+7df1-7df5,U+7df7,U+7df9,U+7dfb,U+7dfc,U+7dfe-7e02,U+7e04,U+7e08-7e0b,U+7e12,U+7e1b,U+7e1e,U+7e20,U+7e22,U+7e23,U+7e26,U+7e29,U+7e2b,U+7e2e,U+7e2f,U+7e31,U+7e37,U+7e39-7e3e,U+7e40,U+7e43,U+7e44,U+7e46,U+7e47,U+7e4a,U+7e4b,U+7e4d,U+7e4e,U+7e51,U+7e54-7e56,U+7e58-7e5b,U+7e5d,U+7e5e,U+7e61,U+7e66,U+7e67,U+7e69-7e6b,U+7e6d,U+7e70,U+7e73,U+7e77,U+7e79,U+7e7b-7e7d,U+7e81,U+7e82,U+7e8c,U+7e8d,U+7e8f,U+7e92-7e94,U+7e96,U+7e98,U+7e9a-7e9c,U+7e9e,U+7e9f,U+7ea1,U+7ea3,U+7ea5,U+7ea8,U+7ea9,U+7eab,U+7ead,U+7eae,U+7eb0,U+7ebb,U+7ebe,U+7ec0-7ec2,U+7ec9,U+7ecb,U+7ecc,U+7ed0,U+7ed4; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.28.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+7ccc,U+7ccd,U+7cd7,U+7cdc,U+7cde,U+7ce0,U+7ce4,U+7ce5,U+7ce7,U+7ce8,U+7cec,U+7cf0,U+7cf5-7cf9,U+7cfc,U+7cfe,U+7d00,U+7d04-7d0b,U+7d0d,U+7d10-7d14,U+7d17-7d19,U+7d1b-7d1f,U+7d21,U+7d24-7d26,U+7d28-7d2a,U+7d2c-7d2e,U+7d30,U+7d31,U+7d33,U+7d35,U+7d36,U+7d38-7d3a,U+7d40,U+7d42-7d44,U+7d46,U+7d4b,U+7d4c,U+7d4f,U+7d51,U+7d54-7d56,U+7d58,U+7d5b,U+7d5c,U+7d5e,U+7d61-7d63,U+7d66,U+7d68,U+7d6a-7d6c,U+7d6f,U+7d71-7d73,U+7d75-7d77,U+7d79,U+7d7a,U+7d7e,U+7d81,U+7d84-7d8b,U+7d8d,U+7d8f,U+7d91,U+7d94,U+7d96,U+7d98-7d9a,U+7d9c-7da0,U+7da2,U+7da6,U+7daa-7db1,U+7db4-7db8,U+7dba-7dbf,U+7dc1; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.29.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+7bc3,U+7bc4,U+7bc6,U+7bc8-7bcc,U+7bd1,U+7bd3,U+7bd4,U+7bd9,U+7bda,U+7bdd,U+7be0,U+7be1,U+7be4-7be6,U+7be9,U+7bea,U+7bef,U+7bf4,U+7bf6,U+7bfc,U+7bfe,U+7c01,U+7c03,U+7c07,U+7c08,U+7c0a-7c0d,U+7c0f,U+7c11,U+7c15,U+7c16,U+7c19,U+7c1e-7c21,U+7c23,U+7c24,U+7c26,U+7c28-7c33,U+7c35,U+7c37-7c3b,U+7c3d,U+7c3e,U+7c40,U+7c41,U+7c43,U+7c47,U+7c48,U+7c4c,U+7c50,U+7c53,U+7c54,U+7c59,U+7c5f,U+7c60,U+7c63-7c65,U+7c6c,U+7c6e,U+7c72,U+7c74,U+7c79,U+7c7a,U+7c7c,U+7c81,U+7c82,U+7c84,U+7c85,U+7c88,U+7c8a-7c91,U+7c93-7c96,U+7c99,U+7c9b-7c9e,U+7ca0-7ca2,U+7ca6-7ca9,U+7cac,U+7caf-7cb3,U+7cb5-7cb7,U+7cba-7cbd,U+7cbf-7cc2,U+7cc5,U+7cc7-7cc9; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.30.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+7aca,U+7ad1,U+7ad2,U+7ada-7add,U+7ae1,U+7ae4,U+7ae6,U+7af4-7af7,U+7afa,U+7afb,U+7afd-7b0a,U+7b0c,U+7b0e,U+7b0f,U+7b13,U+7b15,U+7b16,U+7b18,U+7b19,U+7b1e-7b20,U+7b22-7b25,U+7b29-7b2b,U+7b2d,U+7b2e,U+7b30-7b3b,U+7b3e,U+7b3f,U+7b41,U+7b42,U+7b44-7b47,U+7b4a,U+7b4c-7b50,U+7b58,U+7b5a,U+7b5c,U+7b60,U+7b66,U+7b67,U+7b69,U+7b6c-7b6f,U+7b72-7b76,U+7b7b-7b7d,U+7b7f,U+7b82,U+7b85,U+7b87,U+7b8b-7b96,U+7b98,U+7b99,U+7b9b-7b9f,U+7ba2-7ba4,U+7ba6-7bac,U+7bae-7bb0,U+7bb4,U+7bb7-7bb9,U+7bbb,U+7bc0,U+7bc1; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.31.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+797c,U+797e-7980,U+7982,U+7986,U+7987,U+7989-798e,U+7992,U+7994,U+7995,U+7997,U+7998,U+799a-799c,U+799f,U+79a3-79a6,U+79a8-79ac,U+79ae-79b1,U+79b3-79b5,U+79b8,U+79ba,U+79bf,U+79c2,U+79c6,U+79c8,U+79cf,U+79d5,U+79d6,U+79dd,U+79de,U+79e3,U+79e7,U+79e8,U+79eb,U+79ed,U+79f4,U+79f7,U+79f8,U+79fa,U+79fe,U+7a02,U+7a03,U+7a05,U+7a0a,U+7a14,U+7a17,U+7a19,U+7a1c,U+7a1e,U+7a1f,U+7a23,U+7a25,U+7a26,U+7a2c,U+7a2e,U+7a30-7a32,U+7a36,U+7a37,U+7a39,U+7a3c,U+7a40,U+7a42,U+7a47,U+7a49,U+7a4c-7a4f,U+7a51,U+7a55,U+7a5b,U+7a5d,U+7a5e,U+7a62,U+7a63,U+7a66,U+7a68,U+7a69,U+7a6b,U+7a70,U+7a78,U+7a80,U+7a85-7a88,U+7a8a,U+7a90,U+7a93-7a96,U+7a98,U+7a9b,U+7a9c,U+7a9e,U+7aa0,U+7aa1,U+7aa3,U+7aa8-7aaa,U+7aac-7ab0,U+7ab3,U+7ab8,U+7aba,U+7abd-7abf,U+7ac4,U+7ac5,U+7ac7,U+7ac8; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.32.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+783e,U+7841-7844,U+7847-7849,U+784b,U+784c,U+784e-7854,U+7856,U+7857,U+7859,U+785a,U+7865,U+7869,U+786a,U+786d,U+786f,U+7876,U+7877,U+787c,U+787e,U+787f,U+7881,U+7887-7889,U+7893,U+7894,U+7898-789e,U+78a1,U+78a3,U+78a5,U+78a9,U+78ad,U+78b2,U+78b4,U+78b6,U+78b9,U+78ba,U+78bc,U+78bf,U+78c3,U+78c9,U+78cb,U+78d0-78d2,U+78d4,U+78d9,U+78da,U+78dc,U+78de,U+78e1,U+78e5,U+78e6,U+78ea,U+78ec,U+78ef,U+78f1,U+78f2,U+78f4,U+78fa,U+78fb,U+78fe,U+7901,U+7902,U+7905,U+7907,U+7909,U+790b,U+790c,U+790e,U+7910,U+7913,U+7919-791b,U+791e,U+791f,U+7921,U+7924,U+7926,U+792a,U+792b,U+7934,U+7936,U+7939,U+793b,U+793d,U+7940,U+7942,U+7943,U+7945-7947,U+7949,U+794a,U+794c,U+794e-7951,U+7953-7955,U+7957-795a,U+795c,U+795f,U+7960,U+7962,U+7964,U+7966,U+7967,U+7969,U+796b,U+796f,U+7972,U+7974,U+7979,U+797b; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.33.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+770f,U+7712,U+7714,U+7716,U+7719-771b,U+771e,U+7721,U+7722,U+7726,U+7728,U+772b-7730,U+7732-7736,U+7739,U+773a,U+773d-773f,U+7743,U+7746,U+7747,U+774c-774f,U+7751,U+7752,U+7758-775a,U+775c-775e,U+7762,U+7765,U+7766,U+7768-776a,U+776c,U+776d,U+7771,U+7772,U+777a,U+777c-777e,U+7780,U+7785,U+7787,U+778b-778d,U+778f-7791,U+7793,U+779e-77a0,U+77a2,U+77a5,U+77ad,U+77af,U+77b4-77b7,U+77bd-77c0,U+77c2,U+77c5,U+77c7,U+77cd,U+77d6,U+77d7,U+77d9,U+77da,U+77dd,U+77de,U+77e7,U+77ea,U+77ec,U+77ef,U+77f8,U+77fb,U+77fd,U+77fe,U+7800,U+7803,U+7806,U+7809,U+780f-7812,U+7815,U+7817,U+7818,U+781a-781f,U+7821-7823,U+7825-7827,U+7829,U+782b-7830,U+7832,U+7833,U+7835,U+7837,U+7839-783c; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.34.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+760a-760e,U+7610-7619,U+761b-761d,U+761f-7622,U+7625,U+7627-762a,U+762e-7630,U+7632-7635,U+7638-763a,U+763c,U+763d,U+763f,U+7640,U+7642,U+7643,U+7647,U+7648,U+764d,U+764e,U+7652,U+7654,U+7658,U+765a,U+765c,U+765e,U+765f,U+7661-7663,U+7665,U+7669,U+766c,U+766e,U+766f,U+7671-7673,U+7675,U+7676,U+7678-767a,U+767f,U+7681,U+7683,U+7688,U+768a-768c,U+768e,U+7690-7692,U+7695,U+7698,U+769a,U+769b,U+769d-76a0,U+76a2,U+76a4-76a7,U+76ab,U+76ac,U+76af,U+76b0,U+76b2,U+76b4,U+76b5,U+76ba,U+76bb,U+76bf,U+76c2,U+76c3,U+76c5,U+76c9,U+76cc-76ce,U+76dc-76de,U+76e1-76ea,U+76f1,U+76f9-76fb,U+76fd,U+76ff,U+7700,U+7703,U+7704,U+7707,U+7708,U+770c-770e; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.35.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+74ef,U+74f4,U+74ff,U+7501,U+7503,U+7505,U+7508,U+750d,U+750f,U+7511,U+7513,U+7515,U+7517,U+7519,U+7521-7527,U+752a,U+752c,U+752d,U+752f,U+7534,U+7536,U+753a,U+753e,U+7540,U+7544,U+7547-754b,U+754d,U+754e,U+7550-7553,U+7556,U+7557,U+755a,U+755b,U+755d,U+755e,U+7560,U+7562,U+7564,U+7566-7568,U+756b,U+756c,U+756f-7573,U+7575,U+7579-757c,U+757e,U+757f,U+7581-7584,U+7587,U+7589-758e,U+7590,U+7592,U+7594,U+7596,U+7599,U+759a,U+759d,U+759f,U+75a0,U+75a3,U+75a5,U+75a8,U+75ac,U+75ad,U+75b0,U+75b1,U+75b3-75b5,U+75b8,U+75bd,U+75c1-75c4,U+75c8-75ca,U+75cc,U+75cd,U+75d4,U+75d6,U+75d9,U+75de,U+75e0,U+75e2-75e4,U+75e6-75ea,U+75f1-75f3,U+75f7,U+75f9,U+75fa,U+75fc,U+75fe-7601,U+7603,U+7605,U+7606,U+7608,U+7609; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.36.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+73e7-73ea,U+73ee-73f0,U+73f2,U+73f4,U+73f5,U+73f7,U+73f9,U+73fa,U+73fc,U+73fd,U+73ff-7402,U+7404,U+7407,U+7408,U+740a-740f,U+7418,U+741a-741c,U+741e,U+7424,U+7425,U+7428,U+7429,U+742c-7430,U+7432,U+7435,U+7436,U+7438-743b,U+743e-7441,U+7443-7446,U+7448,U+744a,U+744b,U+7452,U+7457,U+745b,U+745d,U+7460,U+7462-7465,U+7467-746a,U+746d,U+746f,U+7471,U+7473,U+7474,U+7477,U+747a,U+747e,U+7481,U+7482,U+7484,U+7486,U+7488-748b,U+748e,U+748f,U+7493,U+7498,U+749a,U+749c-74a0,U+74a3,U+74a6,U+74a9,U+74aa,U+74ae,U+74b0-74b2,U+74b6,U+74b8-74ba,U+74bd,U+74bf,U+74c1,U+74c3,U+74c5,U+74c8,U+74ca,U+74cc,U+74cf,U+74d1,U+74d2,U+74d4,U+74d5,U+74d8-74db,U+74de-74e0,U+74e2,U+74e4,U+74e5,U+74e7-74e9,U+74ee; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.37.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+72dd-72df,U+72e1,U+72e5,U+72e6,U+72e8,U+72ef,U+72f0,U+72f2-72f4,U+72f6,U+72f7,U+72f9-72fb,U+72fd,U+7300-7304,U+7307,U+730a-730c,U+7313-7317,U+731d-7322,U+7327,U+7329,U+732c,U+732d,U+7330,U+7331,U+7333,U+7335-7337,U+7339,U+733d,U+733e,U+7340,U+7342,U+7344,U+7345,U+734a,U+734d-7350,U+7352,U+7355,U+7357,U+7359,U+735f,U+7360,U+7362,U+7363,U+7365,U+7368,U+736c,U+736d,U+736f,U+7370,U+7372,U+7374-7376,U+7378,U+737a,U+737b,U+737d,U+737e,U+7382,U+7383,U+7386,U+7388,U+738a,U+738c-7393,U+7395,U+7397-739a,U+739c,U+739e,U+73a0-73a3,U+73a5-73a8,U+73aa,U+73ad,U+73b1,U+73b3,U+73b6,U+73b7,U+73b9,U+73c2,U+73c5-73c9,U+73cc,U+73ce-73d0,U+73d2,U+73d6,U+73d9,U+73db-73de,U+73e3,U+73e5,U+73e6; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.38.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+719c,U+71a0,U+71a4,U+71a5,U+71a8,U+71af,U+71b1-71bc,U+71be,U+71c1,U+71c2,U+71c4,U+71c8-71cb,U+71ce-71d0,U+71d2,U+71d4,U+71d9,U+71da,U+71dc,U+71df,U+71e0,U+71e6-71e8,U+71ea,U+71ed,U+71ee,U+71f4,U+71f6,U+71f9,U+71fb,U+71fc,U+71ff,U+7200,U+7207,U+720c,U+720d,U+7210,U+7216,U+721a-721e,U+7223,U+7228,U+722b,U+722d,U+722e,U+7230,U+7232,U+723a-723c,U+723e-7242,U+7246,U+724b,U+724d,U+724e,U+7252,U+7256,U+7258,U+725a,U+725c,U+725d,U+7260,U+7264-7266,U+726a,U+726c,U+726e,U+726f,U+7271,U+7273,U+7274,U+7278,U+727b,U+727d,U+727e,U+7281,U+7282,U+7284,U+7287,U+728a,U+728d,U+728f,U+7292,U+729b,U+729f,U+72a0,U+72a7,U+72ad,U+72ae,U+72b0-72b5,U+72b7,U+72b8,U+72ba-72be,U+72c0,U+72c1,U+72c3,U+72c5,U+72c6,U+72c8,U+72cc-72ce,U+72d2,U+72d6,U+72db; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.39.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+7005,U+7006,U+7009,U+700b,U+700d,U+7015,U+7018,U+701b,U+701d-701f,U+7023,U+7026-7028,U+702c,U+702e-7030,U+7035,U+7037,U+7039,U+703a,U+703c-703e,U+7044,U+7049-704b,U+704f,U+7051,U+7058,U+705a,U+705c-705e,U+7061,U+7064,U+7066,U+706c,U+707d,U+7080,U+7081,U+7085,U+7086,U+708a,U+708f,U+7091,U+7094,U+7095,U+7098,U+7099,U+709c,U+709d,U+709f,U+70a4,U+70a9,U+70aa,U+70af-70b2,U+70b4-70b7,U+70bb,U+70c0,U+70c3,U+70c7,U+70cb,U+70ce,U+70cf,U+70d4,U+70d9,U+70da,U+70dc,U+70dd,U+70e0,U+70e9,U+70ec,U+70f7,U+70fa,U+70fd,U+70ff,U+7104,U+7108,U+7109,U+710c,U+7110,U+7113,U+7114,U+7116-7118,U+711c,U+711e,U+7120,U+712e,U+712f,U+7131,U+713c,U+7142,U+7144-7147,U+7149-714b,U+7150,U+7152,U+7155,U+7156,U+7159,U+715a,U+715c,U+7161,U+7165,U+7166,U+7168,U+7169,U+716d,U+7173,U+7174,U+7176,U+7178,U+717a,U+717d,U+717f,U+7180,U+7184,U+7186-7188,U+7192,U+7198; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.40.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+6ed8,U+6ed9,U+6edb,U+6edd,U+6edf,U+6ee0,U+6ee2,U+6ee6,U+6eea,U+6eec,U+6eee,U+6eef,U+6ef2,U+6ef3,U+6ef7-6efa,U+6efe,U+6f01,U+6f03,U+6f08,U+6f09,U+6f15,U+6f16,U+6f19,U+6f22-6f25,U+6f28-6f2a,U+6f2c,U+6f2d,U+6f2f,U+6f31,U+6f32,U+6f36-6f38,U+6f3f,U+6f43-6f46,U+6f48,U+6f4b,U+6f4e,U+6f4f,U+6f51,U+6f54-6f57,U+6f59-6f5b,U+6f5e,U+6f5f,U+6f61,U+6f64-6f67,U+6f69-6f6c,U+6f6f-6f72,U+6f74-6f76,U+6f78-6f7e,U+6f80-6f83,U+6f86,U+6f89,U+6f8b-6f8d,U+6f90,U+6f92,U+6f94,U+6f97,U+6f98,U+6f9b,U+6fa3-6fa5,U+6fa7,U+6faa,U+6faf,U+6fb1,U+6fb4,U+6fb6,U+6fb9,U+6fc1-6fcb,U+6fd1-6fd3,U+6fd5,U+6fdb,U+6fde-6fe1,U+6fe4,U+6fe9,U+6feb,U+6fec,U+6fee-6ff1,U+6ffa,U+6ffe; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.41.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+6dc3,U+6dc5,U+6dc6,U+6dc9,U+6dcc,U+6dcf,U+6dd2,U+6dd3,U+6dd6,U+6dd9-6dde,U+6de0,U+6de4,U+6de6,U+6de8-6dea,U+6dec,U+6def,U+6df0,U+6df5,U+6df6,U+6df8,U+6dfa,U+6dfc,U+6e03,U+6e04,U+6e07-6e09,U+6e0b,U+6e0c,U+6e0e,U+6e11,U+6e13,U+6e15,U+6e16,U+6e19-6e1b,U+6e1e,U+6e1f,U+6e22,U+6e25-6e27,U+6e2b,U+6e2c,U+6e36,U+6e37,U+6e39,U+6e3a,U+6e3c-6e41,U+6e44,U+6e45,U+6e47,U+6e49-6e4b,U+6e4d,U+6e4e,U+6e51,U+6e53-6e55,U+6e5c-6e5f,U+6e61-6e63,U+6e65-6e67,U+6e6a,U+6e6b,U+6e6d-6e70,U+6e72-6e74,U+6e76-6e78,U+6e7c,U+6e80-6e82,U+6e86,U+6e87,U+6e89,U+6e8d,U+6e8f,U+6e96,U+6e98,U+6e9d-6e9f,U+6ea1,U+6ea5-6ea7,U+6eab,U+6eb1,U+6eb2,U+6eb4,U+6eb7,U+6ebb-6ebd,U+6ebf-6ec6,U+6ec8,U+6ec9,U+6ecc,U+6ecf,U+6ed0,U+6ed3,U+6ed4,U+6ed7; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.42.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+6cb2,U+6cb4,U+6cb5,U+6cb7,U+6cba,U+6cbc,U+6cbd,U+6cc1-6cc3,U+6cc5-6cc7,U+6cd0-6cd4,U+6cd6,U+6cd7,U+6cd9,U+6cda,U+6cde-6ce0,U+6ce4,U+6ce6,U+6ce9,U+6ceb-6cef,U+6cf1,U+6cf2,U+6cf6,U+6cf7,U+6cfa,U+6cfe,U+6d03-6d05,U+6d07,U+6d08,U+6d0a,U+6d0c,U+6d0e-6d11,U+6d13,U+6d14,U+6d16,U+6d18-6d1a,U+6d1c,U+6d1f,U+6d22,U+6d23,U+6d26-6d29,U+6d2b,U+6d2e-6d30,U+6d33,U+6d35,U+6d36,U+6d38-6d3a,U+6d3c,U+6d3f,U+6d42-6d44,U+6d48,U+6d49,U+6d4d,U+6d50,U+6d52,U+6d54,U+6d56-6d58,U+6d5a-6d5c,U+6d5e,U+6d60,U+6d61,U+6d63-6d65,U+6d67,U+6d6c,U+6d6d,U+6d6f,U+6d75,U+6d7b-6d7d,U+6d87,U+6d8a,U+6d8e,U+6d90-6d9a,U+6d9c-6da0,U+6da2,U+6da3,U+6da7,U+6daa-6dac,U+6dae,U+6db3,U+6db4,U+6db6,U+6db8,U+6dbc,U+6dbf,U+6dc2; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.43.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+6b85,U+6b86,U+6b89,U+6b8d,U+6b91-6b93,U+6b95,U+6b97,U+6b98,U+6b9a,U+6b9b,U+6b9e,U+6ba1-6ba4,U+6ba9,U+6baa,U+6bad,U+6baf,U+6bb0,U+6bb2,U+6bb3,U+6bba-6bbd,U+6bc0,U+6bc2,U+6bc6,U+6bca-6bcc,U+6bce,U+6bd0,U+6bd1,U+6bd3,U+6bd6-6bd8,U+6bda,U+6be1,U+6be6,U+6bec,U+6bf1,U+6bf3-6bf5,U+6bf9,U+6bfd,U+6c05-6c08,U+6c0d,U+6c10,U+6c15-6c1a,U+6c21,U+6c23-6c26,U+6c29-6c2d,U+6c30-6c33,U+6c35-6c37,U+6c39,U+6c3a,U+6c3c-6c3f,U+6c46,U+6c4a-6c4c,U+6c4e-6c50,U+6c54,U+6c56,U+6c59-6c5c,U+6c5e,U+6c63,U+6c67-6c69,U+6c6b,U+6c6d,U+6c6f,U+6c72-6c74,U+6c78-6c7a,U+6c7c,U+6c84-6c87,U+6c8b,U+6c8c,U+6c8f,U+6c91,U+6c93-6c96,U+6c98,U+6c9a,U+6c9d,U+6ca2-6ca4,U+6ca8,U+6ca9,U+6cac-6cae,U+6cb1; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.44.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+6a01,U+6a06,U+6a09,U+6a0b,U+6a11,U+6a13,U+6a17-6a19,U+6a1b,U+6a1e,U+6a23,U+6a28,U+6a29,U+6a2b,U+6a2f,U+6a30,U+6a35,U+6a38-6a40,U+6a46-6a48,U+6a4a,U+6a4b,U+6a4e,U+6a50,U+6a52,U+6a5b,U+6a5e,U+6a62,U+6a65-6a67,U+6a6b,U+6a79,U+6a7c,U+6a7e,U+6a7f,U+6a84,U+6a86,U+6a8e,U+6a90,U+6a91,U+6a94,U+6a97,U+6a9c,U+6a9e,U+6aa0,U+6aa2,U+6aa4,U+6aa9,U+6aab,U+6aae-6ab0,U+6ab2,U+6ab3,U+6ab5,U+6ab7,U+6ab8,U+6aba,U+6abb,U+6abd,U+6abf,U+6ac2-6ac4,U+6ac6,U+6ac8,U+6acc,U+6ace,U+6ad2,U+6ad3,U+6ad8-6adc,U+6adf,U+6ae0,U+6ae4,U+6ae5,U+6ae7,U+6ae8,U+6afb,U+6b04,U+6b05,U+6b0d-6b13,U+6b16,U+6b17,U+6b19,U+6b24,U+6b25,U+6b2c,U+6b37-6b39,U+6b3b,U+6b3d,U+6b43,U+6b46,U+6b4e,U+6b50,U+6b53,U+6b54,U+6b58,U+6b59,U+6b5b,U+6b60,U+6b69,U+6b6d,U+6b6f,U+6b70,U+6b73,U+6b74,U+6b77-6b7a,U+6b80-6b84; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.45.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+68e1,U+68e3,U+68e4,U+68e6-68ed,U+68ef,U+68f0,U+68f2,U+68f4,U+68f6,U+68f7,U+68f9,U+68fb-68fd,U+68ff-6902,U+6906-6908,U+690b,U+6910,U+691a-691c,U+691f,U+6920,U+6924,U+6925,U+692a,U+692d,U+6934,U+6939,U+693c-6945,U+694a,U+694b,U+6952-6954,U+6957,U+6959,U+695b,U+695d,U+695f,U+6962-6964,U+6966,U+6968-696c,U+696e,U+696f,U+6971,U+6973,U+6974,U+6978,U+6979,U+697d,U+697f,U+6980,U+6985,U+6987-698a,U+698d,U+698e,U+6994-6999,U+699b,U+69a3,U+69a4,U+69a6,U+69a7,U+69ab,U+69ad,U+69ae,U+69b1,U+69b7,U+69bb,U+69bc,U+69c1,U+69c3-69c5,U+69c7,U+69ca-69ce,U+69d0,U+69d1,U+69d3,U+69d4,U+69d7-69da,U+69e0,U+69e4,U+69e6,U+69ec,U+69ed,U+69f1-69f3,U+69f8,U+69fa-69fc,U+69fe-6a00; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.46.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+6792,U+6793,U+6796,U+6798,U+679e-67a1,U+67a5,U+67a7-67a9,U+67ac,U+67ad,U+67b0,U+67b1,U+67b3,U+67b5,U+67b7,U+67b9,U+67bb,U+67bc,U+67c0,U+67c1,U+67c3,U+67c5-67ca,U+67d1,U+67d2,U+67d7-67d9,U+67dd-67df,U+67e2-67e4,U+67e6-67e9,U+67f0,U+67f5,U+67f7,U+67f8,U+67fa,U+67fb,U+67fd,U+67fe,U+6800,U+6801,U+6803,U+6804,U+6806,U+6809,U+680a,U+680c,U+680e,U+6812,U+681d-681f,U+6822,U+6824-6829,U+682b-682d,U+6831-6835,U+683b,U+683e,U+6840,U+6841,U+6844,U+6845,U+6849,U+684e,U+6853,U+6855,U+6856,U+685c,U+685d,U+685f-6862,U+6864,U+6866-6868,U+686b,U+686f,U+6872,U+6874,U+6877,U+687f,U+6883,U+6886,U+688f,U+689b,U+689f,U+68a0,U+68a2,U+68a3,U+68b1,U+68b6,U+68b9,U+68ba,U+68bc-68bf,U+68c1-68c4,U+68c6,U+68c8,U+68ca,U+68cc,U+68d0,U+68d1,U+68d3,U+68d7,U+68dd,U+68df; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.47.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+663a,U+663b,U+663d,U+6641,U+6644,U+6645,U+6649,U+664c,U+664f,U+6654,U+6659,U+665b,U+665d,U+665e,U+6660-6667,U+6669,U+666b,U+666c,U+6671,U+6673,U+6677-6679,U+667c,U+6680,U+6681,U+6684,U+6685,U+6688,U+6689,U+668b-668e,U+6690,U+6692,U+6695,U+6698,U+669a,U+669d,U+669f,U+66a0,U+66a2,U+66a3,U+66a6,U+66aa,U+66ab,U+66b1,U+66b2,U+66b5,U+66b8,U+66b9,U+66bb,U+66be,U+66c1,U+66c6-66c9,U+66cc,U+66d5-66d8,U+66da-66dc,U+66de-66e2,U+66e8-66ea,U+66ec,U+66f1,U+66f3,U+66f7,U+66fa,U+66fd,U+6702,U+6705,U+670a,U+670f,U+6710,U+6713,U+6715,U+6719,U+6722,U+6723,U+6725-6727,U+6729,U+672d,U+672e,U+6732,U+6733,U+6736,U+6739,U+673b,U+673f,U+6744,U+6748,U+674c,U+674d,U+6753,U+6755,U+6762,U+6767,U+6769-676c,U+676e,U+6772,U+6773,U+6775,U+6777,U+677a-677d,U+6782,U+6783,U+6787,U+678a-678d,U+678f; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.48.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+64f8,U+64fa,U+64fc,U+64fe,U+64ff,U+6503,U+6509,U+650f,U+6514,U+6518,U+651c-651e,U+6522-6525,U+652a-652c,U+652e,U+6530-6532,U+6534,U+6535,U+6537,U+6538,U+653a,U+653c,U+653d,U+6542,U+6549-654b,U+654d,U+654e,U+6553-6555,U+6557,U+6558,U+655d,U+6564,U+6569,U+656b,U+656d-656f,U+6571,U+6573,U+6575,U+6576,U+6578-657e,U+6581-6583,U+6585,U+6586,U+6589,U+658e,U+658f,U+6592,U+6593,U+6595,U+6596,U+659b,U+659d,U+659f-65a1,U+65a3,U+65ab,U+65ac,U+65b2,U+65b6,U+65b7,U+65ba,U+65bb,U+65be-65c0,U+65c2-65c4,U+65c6-65c8,U+65cc,U+65ce,U+65d0,U+65d2,U+65d3,U+65d6,U+65db,U+65dd,U+65e1,U+65e3,U+65ee-65f0,U+65f3-65f5,U+65f8,U+65fb,U+65fc,U+65fe-6600,U+6603,U+6607,U+6609,U+660b,U+6610,U+6611,U+6619,U+661a,U+661c-661e,U+6621,U+6624,U+6626,U+662a-662c,U+662e,U+6630,U+6631,U+6633,U+6634,U+6636; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.49.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+63bc,U+63be,U+63c0,U+63c3,U+63c4,U+63c6,U+63c8,U+63cd,U+63ce,U+63d1,U+63d6,U+63da,U+63db,U+63de,U+63e0,U+63e3,U+63e9,U+63ea,U+63ee,U+63f2,U+63f5-63fa,U+63fc,U+63fe-6400,U+6406,U+640b-640d,U+6410,U+6414,U+6416,U+6417,U+641b,U+6420-6423,U+6425-6428,U+642a,U+6431,U+6432,U+6434-6437,U+643d-6442,U+6445,U+6448,U+6450-6452,U+645b-645f,U+6462,U+6465,U+6468,U+646d,U+646f-6471,U+6473,U+6477,U+6479-647d,U+6482-6485,U+6487,U+6488,U+648c,U+6490,U+6493,U+6496-649a,U+649d,U+64a0,U+64a5,U+64ab,U+64ac,U+64b1-64b7,U+64b9-64bb,U+64be-64c1,U+64c4,U+64c7,U+64c9-64cb,U+64d0,U+64d4,U+64d7,U+64d8,U+64da,U+64de,U+64e0-64e2,U+64e4,U+64e9,U+64ec,U+64f0-64f2,U+64f4,U+64f7; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.50.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+623b,U+623d,U+623e,U+6243,U+6246,U+6248,U+6249,U+624c,U+6255,U+6259,U+625e,U+6260,U+6261,U+6265,U+6266,U+626a,U+6271,U+627a,U+627c,U+627d,U+6283,U+6286,U+6289,U+628e,U+6294,U+629c,U+629e,U+629f,U+62a1,U+62a8,U+62ba,U+62bb,U+62bf,U+62c2,U+62c4,U+62c8,U+62ca,U+62cb,U+62ce,U+62cf,U+62d1,U+62d7,U+62d9,U+62da,U+62dd,U+62e0,U+62e1,U+62e3,U+62e4,U+62e7,U+62eb,U+62ee,U+62f0,U+62f4-62f6,U+6308,U+630a-630e,U+6310,U+6312,U+6313,U+6317,U+6319,U+631b,U+631d-631f,U+6322,U+6326,U+6329,U+6331,U+6332,U+6334-6337,U+6339,U+633b,U+633c,U+633e-6340,U+6343,U+6347,U+634b-634e,U+6354,U+635c,U+635d,U+6368,U+6369,U+636d,U+636f-6372,U+6376,U+637a,U+637b,U+637d,U+6382,U+6383,U+6387,U+638a,U+638b,U+638d,U+638e,U+6391,U+6393-6397,U+6399,U+639b,U+639e,U+639f,U+63a1,U+63a3,U+63a4,U+63ac-63ae,U+63b1-63b5,U+63b7-63bb; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.51.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+60fa,U+6100,U+6106,U+610d,U+610e,U+6112,U+6114,U+6115,U+6119,U+611c,U+6120,U+6122,U+6123,U+6126,U+6128-6130,U+6136,U+6137,U+613a,U+613d,U+613e,U+6144,U+6146,U+6147,U+614a,U+614b,U+6151,U+6153,U+6158,U+615a,U+615c,U+615d,U+615f,U+6161,U+6163-6165,U+616b,U+616c,U+616e,U+6171,U+6173-6177,U+617e,U+6182,U+6187,U+618a,U+618d,U+618e,U+6190,U+6191,U+6194,U+6199,U+619a,U+619c,U+619f,U+61a1,U+61a3,U+61a4,U+61a7-61a9,U+61ab-61ad,U+61b2,U+61b3,U+61b5-61b7,U+61ba,U+61bb,U+61bf,U+61c3,U+61c4,U+61c6,U+61c7,U+61c9-61cb,U+61d0,U+61d1,U+61d3,U+61d4,U+61d7,U+61da,U+61df-61e1,U+61e6,U+61ee,U+61f0,U+61f2,U+61f6-61f8,U+61fa,U+61fc-61fe,U+6200,U+6206,U+6207,U+6209,U+620b,U+620d,U+620e,U+6213-6215,U+6217,U+6219,U+621b-6223,U+6225,U+6226,U+622c,U+622e-6230,U+6232,U+6238; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.52.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+5fd1-5fd6,U+5fda-5fde,U+5fe1,U+5fe2,U+5fe4,U+5fe5,U+5fea,U+5fed,U+5fee,U+5ff1-5ff3,U+5ff6,U+5ff8,U+5ffb,U+5ffe,U+5fff,U+6002-6006,U+600a,U+600d,U+600f,U+6014,U+6019,U+601b,U+6020,U+6023,U+6026,U+6029,U+602b,U+602e,U+602f,U+6031,U+6033,U+6035,U+6039,U+603f,U+6041-6043,U+6046,U+604f,U+6053,U+6054,U+6058-605b,U+605d,U+605e,U+6060,U+6063,U+6065,U+6067,U+606a-606c,U+6075,U+6078,U+6079,U+607b,U+607d,U+607f,U+6083,U+6085-6087,U+608a,U+608c,U+608e,U+608f,U+6092,U+6093,U+6095-6097,U+609b-609d,U+60a2,U+60a7,U+60a9-60ab,U+60ad,U+60af-60b1,U+60b3-60b6,U+60b8,U+60bb,U+60bd,U+60be,U+60c0-60c3,U+60c6-60c9,U+60cb,U+60ce,U+60d3,U+60d4,U+60d7-60db,U+60dd,U+60e1-60e4,U+60e6,U+60ea,U+60ec-60ee,U+60f0,U+60f1,U+60f4,U+60f6; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.53.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+5ea3-5ea5,U+5ea8,U+5eab,U+5eaf,U+5eb3,U+5eb5,U+5eb6,U+5eb9,U+5ebe,U+5ec1-5ec3,U+5ec6,U+5ec8,U+5ecb,U+5ecc,U+5ed1,U+5ed2,U+5ed4,U+5ed9-5edb,U+5edd,U+5edf,U+5ee0,U+5ee2,U+5ee3,U+5ee8,U+5eea,U+5eec,U+5eef,U+5ef0,U+5ef3,U+5ef4,U+5ef8,U+5efb,U+5efc,U+5efe,U+5eff,U+5f01,U+5f07,U+5f0b-5f0e,U+5f10-5f12,U+5f14,U+5f1a,U+5f22,U+5f28,U+5f29,U+5f2c,U+5f2d,U+5f35,U+5f36,U+5f38,U+5f3b-5f43,U+5f45-5f4a,U+5f4c-5f4e,U+5f50,U+5f54,U+5f56-5f59,U+5f5b-5f5f,U+5f61,U+5f63,U+5f65,U+5f67,U+5f68,U+5f6b,U+5f6e,U+5f6f,U+5f72-5f78,U+5f7a,U+5f7e,U+5f7f,U+5f82,U+5f83,U+5f87,U+5f89,U+5f8a,U+5f8d,U+5f91,U+5f93,U+5f95,U+5f98,U+5f99,U+5f9c,U+5f9e,U+5fa0,U+5fa6-5fa9,U+5fac,U+5fad,U+5faf,U+5fb3-5fb5,U+5fb9,U+5fbc,U+5fc4,U+5fc9,U+5fcb,U+5fce-5fd0; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.54.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+5d32-5d34,U+5d3c-5d3e,U+5d41-5d44,U+5d46-5d48,U+5d4a,U+5d4b,U+5d4e,U+5d50,U+5d52,U+5d55-5d58,U+5d5a-5d5d,U+5d68,U+5d69,U+5d6b,U+5d6c,U+5d6f,U+5d74,U+5d7f,U+5d82-5d89,U+5d8b,U+5d8c,U+5d8f,U+5d92,U+5d93,U+5d99,U+5d9d,U+5db2,U+5db6,U+5db7,U+5dba,U+5dbc,U+5dbd,U+5dc2,U+5dc3,U+5dc6,U+5dc7,U+5dc9,U+5dcc,U+5dd2,U+5dd4,U+5dd6-5dd8,U+5ddb,U+5ddc,U+5de3,U+5ded,U+5def,U+5df3,U+5df6,U+5dfa-5dfd,U+5dff,U+5e00,U+5e07,U+5e0f,U+5e11,U+5e13,U+5e14,U+5e19-5e1b,U+5e22,U+5e25,U+5e28,U+5e2a,U+5e2f-5e31,U+5e33,U+5e34,U+5e36,U+5e39-5e3c,U+5e3e,U+5e40,U+5e44,U+5e46-5e48,U+5e4c,U+5e4f,U+5e53,U+5e54,U+5e57,U+5e59,U+5e5b,U+5e5e,U+5e5f,U+5e61,U+5e63,U+5e6a,U+5e6b,U+5e75,U+5e77,U+5e79,U+5e7a,U+5e7e,U+5e80,U+5e81,U+5e83,U+5e85,U+5e87,U+5e8b,U+5e91,U+5e92,U+5e96,U+5e98,U+5e9b,U+5e9d,U+5ea0-5ea2; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.55.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+5bf5,U+5bf6,U+5bfe,U+5c02,U+5c03,U+5c05,U+5c07-5c09,U+5c0b,U+5c0c,U+5c0e,U+5c10,U+5c12,U+5c13,U+5c15,U+5c17,U+5c19,U+5c1b,U+5c1c,U+5c1e,U+5c1f,U+5c22,U+5c25,U+5c28,U+5c2a,U+5c2b,U+5c2f,U+5c30,U+5c37,U+5c3b,U+5c43,U+5c44,U+5c46,U+5c47,U+5c4d,U+5c50,U+5c59,U+5c5b,U+5c5c,U+5c62-5c64,U+5c66,U+5c6c,U+5c6e,U+5c74,U+5c78-5c7e,U+5c80,U+5c83,U+5c84,U+5c88,U+5c8b-5c8d,U+5c91,U+5c94-5c96,U+5c98,U+5c99,U+5c9c,U+5c9e,U+5ca1-5ca3,U+5cab,U+5cac,U+5cb1,U+5cb5,U+5cb7,U+5cba,U+5cbd-5cbf,U+5cc1,U+5cc3,U+5cc4,U+5cc7,U+5ccb,U+5cd2,U+5cd8,U+5cd9,U+5cdf,U+5ce0,U+5ce3-5ce6,U+5ce8-5cea,U+5ced,U+5cef,U+5cf3,U+5cf4,U+5cf6,U+5cf8,U+5cfd,U+5d00-5d04,U+5d06,U+5d08,U+5d0b-5d0d,U+5d0f-5d13,U+5d15,U+5d17-5d1a,U+5d1d-5d22,U+5d24-5d27,U+5d2e-5d31; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.56.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+5ab2,U+5ab4,U+5ab5,U+5ab7-5aba,U+5abd-5abf,U+5ac3,U+5ac4,U+5ac6-5ac8,U+5aca,U+5acb,U+5acd,U+5acf-5ad2,U+5ad4,U+5ad8-5ada,U+5adc,U+5adf-5ae2,U+5ae4,U+5ae6,U+5ae8,U+5aea-5aed,U+5af0-5af3,U+5af5,U+5af9-5afb,U+5afd,U+5b01,U+5b05,U+5b08,U+5b0b,U+5b0c,U+5b11,U+5b16,U+5b17,U+5b1b,U+5b21,U+5b22,U+5b24,U+5b27-5b2e,U+5b30,U+5b32,U+5b34,U+5b36-5b38,U+5b3e-5b40,U+5b43,U+5b45,U+5b4a,U+5b4b,U+5b51-5b53,U+5b56,U+5b5a,U+5b5b,U+5b62,U+5b65,U+5b67,U+5b6a-5b6e,U+5b70,U+5b71,U+5b73,U+5b7a,U+5b7b,U+5b7f,U+5b80,U+5b84,U+5b8d,U+5b91,U+5b93-5b95,U+5b9f,U+5ba5,U+5ba6,U+5bac,U+5bae,U+5bb8,U+5bc0,U+5bc3,U+5bcb,U+5bd0,U+5bd1,U+5bd4-5bd8,U+5bda-5bdc,U+5be2,U+5be4-5be7,U+5be9,U+5beb,U+5bec,U+5bee-5bf0,U+5bf2,U+5bf3; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.57.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+5981,U+598f,U+5997,U+5998,U+599a,U+599c,U+599d,U+59a0,U+59a1,U+59a3,U+59a4,U+59a7,U+59aa-59ad,U+59af,U+59b2,U+59b3,U+59b5,U+59b6,U+59b8,U+59ba,U+59bd,U+59be,U+59c0,U+59c1,U+59c3,U+59c4,U+59c7-59ca,U+59cc,U+59cd,U+59cf,U+59d2,U+59d5,U+59d6,U+59d8,U+59d9,U+59db,U+59dd-59e0,U+59e2-59e7,U+59e9-59eb,U+59ee,U+59f1,U+59f3,U+59f5,U+59f7-59f9,U+59fd,U+5a06,U+5a08-5a0a,U+5a0c,U+5a0d,U+5a11-5a13,U+5a15,U+5a16,U+5a1a,U+5a1b,U+5a21-5a23,U+5a2d-5a2f,U+5a32,U+5a38,U+5a3c,U+5a3e-5a45,U+5a47,U+5a4a,U+5a4c,U+5a4d,U+5a4f-5a51,U+5a53,U+5a55-5a57,U+5a5e,U+5a60,U+5a62,U+5a65-5a67,U+5a6a,U+5a6c,U+5a6d,U+5a72,U+5a73,U+5a75,U+5a76,U+5a79-5a7c,U+5a81-5a84,U+5a8c,U+5a8e,U+5a93,U+5a96,U+5a97,U+5a9c,U+5a9e,U+5aa0,U+5aa3,U+5aa4,U+5aaa,U+5aae,U+5aaf,U+5ab1; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.58.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+5831,U+583a,U+583d,U+583f-5842,U+5844-5846,U+5848,U+584a,U+584d,U+5852,U+5857,U+5859,U+585a,U+585c,U+585d,U+5862,U+5868,U+5869,U+586c,U+586d,U+586f-5873,U+5875,U+5879,U+587d,U+587e,U+5880,U+5881,U+5888-588a,U+588d,U+5892,U+5896-5898,U+589a,U+589c,U+589d,U+58a0,U+58a1,U+58a3,U+58a6,U+58a9,U+58ab-58ae,U+58b0,U+58b3,U+58bb-58bf,U+58c2,U+58c3,U+58c5-58c8,U+58ca,U+58cc,U+58ce,U+58d1-58d3,U+58d5,U+58d8,U+58d9,U+58de,U+58df,U+58e2,U+58e9,U+58ec,U+58ef,U+58f1,U+58f2,U+58f5,U+58f7,U+58f8,U+58fa,U+58fd,U+5900,U+5902,U+5906,U+5908-590c,U+590e,U+5910,U+5914,U+5919,U+591b,U+591d,U+591e,U+5920,U+5922-5925,U+5928,U+592c,U+592d,U+592f,U+5932,U+5936,U+593c,U+593e,U+5940-5942,U+5944,U+594c,U+594d,U+5950,U+5953,U+5958,U+595a,U+5961,U+5966-5968,U+596a,U+596c-596e,U+5977,U+597b,U+597c; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.59.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+570a,U+570c,U+570d,U+570f,U+5712,U+5713,U+5718,U+5719,U+571c,U+571e,U+5725,U+5727,U+5729,U+572a,U+572c,U+572e,U+572f,U+5734,U+5735,U+5739,U+573b,U+5741,U+5743,U+5745,U+5749,U+574c,U+574d,U+575c,U+5763,U+5768,U+5769,U+576b,U+576d,U+576e,U+5770,U+5773,U+5775,U+5777,U+577b,U+577c,U+5785,U+5786,U+5788,U+578c,U+578e,U+578f,U+5793-5795,U+5799-57a1,U+57a3,U+57a4,U+57a6-57aa,U+57ac,U+57ad,U+57af-57b2,U+57b4-57b6,U+57b8,U+57b9,U+57bd-57bf,U+57c2,U+57c4-57c8,U+57cc,U+57cd,U+57cf,U+57d2,U+57d5-57de,U+57e1,U+57e2,U+57e4,U+57e5,U+57e7,U+57eb,U+57ed,U+57ef,U+57f4-57f8,U+57fc,U+57fd,U+5800,U+5801,U+5803,U+5805,U+5807,U+5809,U+580b-580e,U+5811,U+5814,U+5819,U+581b-5820,U+5822,U+5823,U+5825,U+5826,U+582c,U+582f; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.60.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+5605,U+5606,U+5608,U+560c,U+560d,U+560f,U+5614,U+5616,U+5617,U+561a,U+561c,U+561e,U+5621-5625,U+5627,U+5629,U+562b-5630,U+5636,U+5638-563a,U+563c,U+5640-5642,U+5649,U+564c-5650,U+5653-5655,U+5657-565b,U+5660,U+5663,U+5664,U+5666,U+566b,U+566f-5671,U+5673-567c,U+567e,U+5684-5687,U+568c,U+568e-5693,U+5695,U+5697,U+569b,U+569c,U+569e,U+569f,U+56a1,U+56a2,U+56a4-56a9,U+56ac-56af,U+56b1,U+56b4,U+56b6-56b8,U+56bf,U+56c1-56c3,U+56c9,U+56cd,U+56d1,U+56d4,U+56d6-56d9,U+56dd,U+56df,U+56e1,U+56e3-56e6,U+56e8-56ec,U+56ee,U+56ef,U+56f1-56f3,U+56f5,U+56f7-56f9,U+56fc,U+56ff,U+5700,U+5703,U+5704,U+5709; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.61.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+5519,U+551b,U+551d,U+551e,U+5520,U+5522,U+5523,U+5526,U+5527,U+552a-552c,U+5530,U+5532-5535,U+5537,U+5538,U+553b-5541,U+5543,U+5544,U+5547-5549,U+554b,U+554d,U+5550,U+5553,U+5555-5558,U+555b-555f,U+5567-5569,U+556b-5572,U+5574-5577,U+557b,U+557c,U+557e,U+557f,U+5581,U+5583,U+5585,U+5586,U+5588,U+558b,U+558c,U+558e-5591,U+5593,U+5599,U+559a,U+559f,U+55a5,U+55a6,U+55a8-55ac,U+55ae,U+55b0-55b3,U+55b6,U+55b9,U+55ba,U+55bc-55be,U+55c4,U+55c6,U+55c7,U+55c9,U+55cc-55d2,U+55d4-55db,U+55dd-55df,U+55e1,U+55e3-55e6,U+55ea-55ee,U+55f0-55f3,U+55f5-55f7,U+55fb,U+55fe,U+5600,U+5601; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.62.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+53fb-5400,U+5402,U+5405-5407,U+540b,U+540f,U+5412,U+5414,U+5416,U+5418-541a,U+541d,U+5420-5423,U+5425,U+5429,U+542a,U+542d,U+542e,U+5431-5433,U+5436,U+543d,U+543f,U+5442,U+5443,U+5449,U+544b,U+544c,U+544e,U+5451-5454,U+5456,U+5459,U+545b,U+545c,U+5461,U+5463,U+5464,U+546a-5472,U+5474,U+5476-5478,U+547a,U+547e-5484,U+5486,U+548a,U+548d,U+548e,U+5490,U+5491,U+5494,U+5497-5499,U+549b,U+549d,U+54a1-54a7,U+54a9,U+54ab,U+54ad,U+54b4,U+54b5,U+54b9,U+54bb,U+54be,U+54bf,U+54c2,U+54c3,U+54c9-54cc,U+54cf,U+54d0,U+54d3,U+54d5,U+54d6,U+54d9,U+54da,U+54dc-54de,U+54e2,U+54e7,U+54f3,U+54f4,U+54f8,U+54f9,U+54fd-54ff,U+5501,U+5504-5506,U+550c-550f,U+5511-5514,U+5516,U+5517; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.63.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+52a2,U+52a6,U+52a7,U+52ac,U+52ad,U+52af,U+52b4,U+52b5,U+52b9,U+52bb,U+52bc,U+52be,U+52c1,U+52c5,U+52ca,U+52cd,U+52d0,U+52d6,U+52d7,U+52d9,U+52db,U+52dd,U+52de,U+52e0,U+52e2,U+52e3,U+52e5,U+52e7-52f0,U+52f2,U+52f3,U+52f5-52f9,U+52fb,U+52fc,U+5302,U+5304,U+530b,U+530d,U+530f,U+5310,U+5315,U+531a,U+531c,U+531d,U+5321,U+5323,U+5326,U+532e-5331,U+5338,U+533c-533e,U+5340,U+5344,U+5345,U+534b-534d,U+5350,U+5354,U+5358,U+535d-535f,U+5363,U+5368,U+5369,U+536c,U+536e,U+536f,U+5372,U+5379-537b,U+537d,U+538d,U+538e,U+5390,U+5393,U+5394,U+5396,U+539b-539d,U+53a0,U+53a1,U+53a3-53a5,U+53a9,U+53ad,U+53ae,U+53b0,U+53b2,U+53b3,U+53b5-53b8,U+53bc,U+53be,U+53c1,U+53c3-53c7,U+53ce,U+53cf,U+53d2,U+53d3,U+53d5,U+53da,U+53de,U+53df,U+53e1,U+53e2,U+53e7-53e9,U+53f1,U+53f4,U+53f5,U+53fa; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.64.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+5110,U+5113,U+5115,U+5117,U+5118,U+511a-511c,U+511e,U+511f,U+5121,U+5128,U+512b-512d,U+5131-5135,U+5137-5139,U+513c,U+5140,U+5142,U+5147,U+514c,U+514e-5150,U+5155-5158,U+5162,U+5169,U+5172,U+517f,U+5181-5184,U+5186,U+5187,U+518b,U+518f,U+5191,U+5195-5197,U+519a,U+51a2,U+51a3,U+51a6-51ab,U+51ad,U+51ae,U+51b1,U+51b4,U+51bc,U+51bd,U+51bf,U+51c3,U+51c7,U+51c8,U+51ca,U+51cb,U+51cd,U+51ce,U+51d4,U+51d6,U+51db,U+51dc,U+51e6,U+51e8-51eb,U+51f1,U+51f5,U+51fc,U+51ff,U+5202,U+5205,U+5208,U+520b,U+520d,U+520e,U+5215,U+5216,U+5228,U+522a,U+522c,U+522d,U+5233,U+523c,U+523d,U+523f,U+5240,U+5245,U+5247,U+5249,U+524b,U+524c,U+524e,U+5250,U+525b-525f,U+5261,U+5263,U+5264,U+5270,U+5273,U+5275,U+5277,U+527d,U+527f,U+5281-5285,U+5287,U+5289,U+528b,U+528d,U+528f,U+5291-5293,U+529a; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.65.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+4fe3,U+4fe4,U+4fe6,U+4fe8,U+4feb-4fed,U+4ff3,U+4ff5,U+4ff6,U+4ff8,U+4ffe,U+5001,U+5005,U+5006,U+5009,U+500c,U+500f,U+5013-5018,U+501b-501e,U+5022-5025,U+5027,U+5028,U+502b-502e,U+5030,U+5033,U+5034,U+5036-5039,U+503b,U+5041-5043,U+5045,U+5046,U+5048-504a,U+504c-504e,U+5051,U+5053,U+5055-5057,U+505b,U+505e,U+5060,U+5062,U+5063,U+5067,U+506a,U+506c,U+5070-5072,U+5074,U+5075,U+5078,U+507b,U+507d,U+507e,U+5080,U+5088,U+5089,U+5091,U+5092,U+5095,U+5097-509e,U+50a2,U+50a3,U+50a5-50a7,U+50a9,U+50ad,U+50b3,U+50b5,U+50b7,U+50ba,U+50be,U+50c4,U+50c5,U+50c7,U+50ca,U+50cd,U+50d1,U+50d5,U+50d6,U+50da,U+50de,U+50e5,U+50e6,U+50ec-50ee,U+50f0,U+50f1,U+50f3,U+50f9-50fb,U+50fe-5102,U+5104,U+5106,U+5107,U+5109-510b,U+510d,U+510f; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.66.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+4eb8,U+4eb9,U+4ebb-4ebe,U+4ec2-4ec4,U+4ec8,U+4ec9,U+4ecc,U+4ecf,U+4ed0,U+4ed2,U+4eda,U+4edb,U+4edd-4ee1,U+4ee6-4ee9,U+4eeb,U+4eee,U+4eef,U+4ef3-4ef5,U+4ef8-4efa,U+4efc,U+4f00,U+4f03-4f05,U+4f08,U+4f09,U+4f0b,U+4f0e,U+4f12,U+4f13,U+4f15,U+4f1b,U+4f1d,U+4f21,U+4f22,U+4f25,U+4f27-4f29,U+4f2b-4f2e,U+4f31-4f33,U+4f36,U+4f37,U+4f39,U+4f3e,U+4f40,U+4f41,U+4f43,U+4f47-4f49,U+4f54,U+4f57,U+4f58,U+4f5d,U+4f5e,U+4f61,U+4f62,U+4f64,U+4f65,U+4f67,U+4f6a,U+4f6e,U+4f6f,U+4f72,U+4f74-4f7e,U+4f80-4f82,U+4f84,U+4f89,U+4f8a,U+4f8e-4f98,U+4f9e,U+4fa1,U+4fa5,U+4fa9,U+4faa,U+4fac,U+4fb3,U+4fb6-4fb8,U+4fbd,U+4fc2,U+4fc5,U+4fc6,U+4fcd,U+4fce,U+4fd0,U+4fd1,U+4fd3,U+4fda-4fdc,U+4fdf,U+4fe0,U+4fe2; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.67.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+3127-3129,U+3220-3229,U+3231,U+32a3,U+338e,U+338f,U+339c-339e,U+33c4,U+33d1,U+33d2,U+33d5,U+3434,U+34dc,U+34ee,U+353e,U+355d,U+3566,U+3575,U+3592,U+35a0,U+35a1,U+35ad,U+35ce,U+36a2,U+36ab,U+38a8,U+3dab,U+3de7,U+3deb,U+3e1a,U+3f1b,U+3f6d,U+4495,U+4723,U+48fa,U+4ca3,U+4e02,U+4e04-4e06,U+4e0c,U+4e0f,U+4e15,U+4e17,U+4e1f-4e21,U+4e26,U+4e29,U+4e2c,U+4e2f,U+4e31,U+4e35,U+4e37,U+4e3c,U+4e3f-4e42,U+4e44,U+4e46,U+4e47,U+4e57,U+4e5a-4e5c,U+4e64,U+4e65,U+4e67,U+4e69,U+4e6d,U+4e78,U+4e7f-4e82,U+4e85,U+4e87,U+4e8a,U+4e8d,U+4e93,U+4e96,U+4e98,U+4e99,U+4e9c,U+4e9e-4ea0,U+4ea2,U+4ea3,U+4ea5,U+4eb0,U+4eb1,U+4eb3-4eb6; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.68.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+27e8,U+27e9,U+2ebb,U+3003,U+3005-3007,U+3012,U+3013,U+301d,U+301e,U+3021,U+3023,U+3024,U+3041,U+3043,U+3045,U+3047,U+3049,U+3056,U+3058,U+305c,U+305e,U+3062,U+306c,U+3074,U+3077,U+307a,U+307c,U+307d,U+3080,U+308e,U+3090,U+3091,U+309b,U+309d,U+309e,U+30a5,U+30bc,U+30be,U+30c2,U+30c5,U+30cc,U+30d8,U+30e2,U+30e8,U+30ee,U+30f0-30f2,U+30f4-30f6,U+30fd,U+30fe,U+3105-3126; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.69.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+254b,U+2550,U+2551,U+2554,U+2557,U+255a,U+255b,U+255d,U+255f,U+2560,U+2562,U+2563,U+2565-2567,U+2569,U+256a,U+256c-2572,U+2581-258f,U+2593-2595,U+25a1,U+25b3,U+25bd,U+25ca,U+25cb,U+25e2-25e5,U+2609,U+2640,U+2642; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.70.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+2465-2469,U+2474-249b,U+2500-2509,U+250b-2526,U+2528-2534,U+2536,U+2537,U+253b-2548,U+254a; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.71.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+207f-2083,U+20a6,U+20a8-20ac,U+20b1,U+20b9,U+20ba,U+20bd,U+2105,U+2109,U+2113,U+2116,U+2121,U+2126,U+2196-2199,U+2202,U+2206,U+2208,U+220f,U+2211,U+2212,U+2215,U+221d-2220,U+2223,U+2225,U+2227-222b,U+222e,U+2234-2237,U+223d,U+2248,U+224c,U+2252,U+2260,U+2261,U+2266,U+2267,U+226e,U+226f,U+2295,U+2299,U+22a5,U+22bf,U+2312; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.72.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+1ea0-1ea9,U+1eab-1ead,U+1eaf,U+1eb1,U+1eb3,U+1eb5,U+1eb7,U+1eb9,U+1ebb,U+1ebd,U+1ebe,U+1ec0-1ec3,U+1ec5,U+1ec6,U+1ec9-1ecd,U+1ecf-1ed3,U+1ed5,U+1ed7-1edf,U+1ee1,U+1ee3,U+1ee5-1eeb,U+1eed,U+1eef-1ef1,U+1ef3,U+1ef7,U+1ef9,U+2004-2006,U+2009,U+200a,U+2010,U+2011,U+2015,U+2016,U+201a,U+201e,U+2020,U+2021,U+2025,U+2027,U+2028,U+2030,U+2032,U+2033,U+2035,U+203c,U+2044,U+2060,U+2061,U+2070,U+2074-2078; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.73.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+2bb,U+2bc,U+2c6,U+2c7,U+2c9-2cb,U+2d8-2da,U+2dc,U+2f3,U+302-304,U+306-30a,U+30c,U+323,U+327,U+335,U+338; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.74.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+176-17f,U+192,U+1a0,U+1a1,U+1af,U+1b0,U+1d2,U+1d4,U+1d6,U+1d8,U+1da,U+1dc,U+1e7,U+1e9,U+1f0,U+1f9-1ff,U+219-21b,U+237,U+251,U+259,U+261,U+292; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.75.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+a1-a4,U+a6-a8,U+aa,U+ac,U+af,U+b1,U+b3-b6,U+b8-ba,U+bc-d6,U+d8-de,U+e6,U+eb,U+ee-f0,U+f5,U+f7,U+f8,U+fb,U+fd-100,U+102,U+104-107,U+10d,U+10f-112,U+115,U+117,U+119,U+11b,U+11e,U+11f,U+121,U+123,U+125-127,U+129,U+12a,U+12d,U+12f-13f,U+141,U+142,U+144,U+146,U+14b,U+14c,U+14f-153,U+158-15b,U+15e-160,U+163-165,U+168-16a,U+16d-175; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.76.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+221a,U+2264,U+2464,U+25a0,U+3008,U+4e10,U+512a,U+5152,U+5201,U+5241,U+5352,U+549a,U+54b2,U+54c6,U+54d7,U+54e1,U+5509,U+55c5,U+560e,U+5618,U+565c,U+56bc,U+5716,U+576f,U+5784,U+57a2,U+589f,U+5a20,U+5a25,U+5a29,U+5a34,U+5a7f,U+5ac9,U+5ad6,U+5b09,U+5b5c,U+5bc7,U+5c27,U+5d2d,U+5dcd,U+5f1b,U+5f37,U+604d,U+6055,U+6073,U+60eb,U+61ff,U+620c,U+62c7,U+62ed,U+6320,U+6345,U+6390,U+63b0,U+64ae,U+64c2,U+64d2,U+6556,U+663c,U+667e,U+66d9,U+66f8,U+6756,U+6789,U+689d,U+68f1,U+695e,U+6975,U+6a1f,U+6b0a,U+6b61,U+6b87,U+6c5d,U+6c7e,U+6c92,U+6d31,U+6df9,U+6e0d,U+6e2d,U+6f3e,U+70b3,U+70bd,U+70ca,U+70e8,U+725f,U+72e9,U+733f,U+7396,U+739f,U+7459,U+745a,U+74a7,U+75a1,U+75f0,U+76cf,U+76d4,U+7729,U+77aa,U+77b0,U+77e3,U+780c,U+78d5,U+7941,U+7977,U+797a,U+79c3,U+7a20,U+7a92,U+7b71,U+7bf1,U+7c9f,U+7eb6,U+7eca,U+7ef7,U+7f07,U+7f09,U+7f15,U+7f81,U+7fb9,U+8038,U+8098,U+80b4,U+8110,U+814b,U+814c,U+816e,U+818a,U+8205,U+8235,U+828b,U+82a5,U+82b7,U+82d4,U+82db,U+82df,U+8317,U+8338,U+8385,U+8386,U+83c1,U+83cf,U+8537,U+853b,U+854a,U+8715,U+8783,U+892a,U+8a71,U+8aaa,U+8d58,U+8dbe,U+8f67,U+8fab,U+8fc4,U+8fe6,U+9023,U+9084,U+9091,U+916a,U+91c9,U+91dc,U+94b3,U+9502,U+9523,U+9551,U+956f,U+960e,U+962a,U+962e,U+9647,U+96f3,U+9739,U+97a0,U+97ed,U+983b,U+985e,U+988a,U+9a6f,U+9a8b,U+9ab7,U+9ac5,U+9e25,U+ff06,U+ff14-ff16; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.77.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+161,U+2463,U+25c7,U+25ce,U+3009,U+3016,U+3017,U+4e4d,U+4e53,U+4f5a,U+4f70,U+4fae,U+4fd8,U+4ffa,U+5011,U+501a,U+516e,U+51c4,U+5225,U+5364,U+547b,U+5495,U+54e8,U+54ee,U+5594,U+55d3,U+55dc,U+55fd,U+5662,U+5669,U+566c,U+5742,U+5824,U+5834,U+598a,U+5992,U+59a9,U+5a04,U+5b75,U+5b7d,U+5bc5,U+5c49,U+5c90,U+5e1c,U+5e27,U+5e2b,U+5e37,U+5e90,U+618b,U+61f5,U+620a,U+6273,U+62f7,U+6342,U+6401,U+6402,U+6413,U+6512,U+655b,U+65a7,U+65f1,U+65f7,U+665f,U+6687,U+66a7,U+673d,U+67b8,U+6854,U+68d8,U+68fa,U+696d,U+6a02,U+6a0a,U+6a80,U+6b7c,U+6bd9,U+6c2e,U+6c76,U+6cf8,U+6d4a,U+6d85,U+6e24,U+6e32,U+6ec7,U+6ed5,U+6f88,U+700f,U+701a,U+7078,U+707c,U+70ac,U+70c1,U+7409,U+7422,U+7480,U+74a8,U+752b,U+7574,U+7656,U+7699,U+7737,U+785d,U+78be,U+79b9,U+7a3d,U+7a91,U+7a9f,U+7ae3,U+7b77,U+7c3f,U+7d1a,U+7d50,U+7d93,U+803f,U+8042,U+808b,U+8236,U+82b8,U+82b9,U+82ef,U+8309,U+836b,U+83ef,U+8431,U+85c9,U+865e,U+868c,U+8759,U+8760,U+8845,U+89ba,U+8a2a,U+8c41,U+8cec,U+8d2c,U+8d4e,U+8e66,U+8e6d,U+8eaf,U+902e,U+914b,U+916e,U+919b,U+949b,U+94a0,U+94b0,U+9541,U+9542,U+9556,U+95eb,U+95f5,U+964b,U+968b,U+96cc,U+96cd,U+96cf,U+9704,U+9713,U+9890,U+98a8,U+9985,U+9992,U+9a6d,U+9a81,U+9a86,U+9ab8,U+9ca4,U+9f9a,U+ff02,U+ff1e,U+ff3d; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.78.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+10c,U+203b,U+2265,U+2573,U+25b2,U+3448,U+3449,U+4e1e,U+4e5e,U+4f3a,U+4f5f,U+4fea,U+5026,U+508d,U+5189,U+5254,U+5288,U+52d8,U+52fa,U+5306,U+5308,U+5384,U+53ed,U+543c,U+5450,U+5455,U+5466,U+54c4,U+5578,U+55a7,U+561f,U+5631,U+572d,U+575f,U+57ae,U+57e0,U+5830,U+594e,U+5984,U+5993,U+5bdd,U+5c0d,U+5c7f,U+5c82,U+5e62,U+5ed3,U+5f08,U+607a,U+60bc,U+60df,U+625b,U+6292,U+62e2,U+6363,U+6467,U+6714,U+675e,U+6771,U+67a2,U+67ff,U+6805,U+6813,U+6869,U+68a7,U+68e0,U+6930,U+6986,U+69a8,U+69df,U+6a44,U+6a5f,U+6c13,U+6c1f,U+6c22,U+6c2f,U+6c40,U+6c81,U+6c9b,U+6ca5,U+6da4,U+6df3,U+6e85,U+6eba,U+6f13,U+6f33,U+6f62,U+715e,U+72c4,U+73d1,U+73fe,U+7405,U+7455,U+7487,U+7578,U+75a4,U+75eb,U+7693,U+7738,U+7741,U+776b,U+7792,U+77a7,U+77a9,U+77b3,U+788c,U+7984,U+79a7,U+79e4,U+7a1a,U+7a57,U+7aa6,U+7b0b,U+7b5d,U+7c27,U+7c7d,U+7caa,U+7cd9,U+7cef,U+7eda,U+7ede,U+7f24,U+8046,U+80fa,U+81b3,U+81fb,U+8207,U+8258,U+8335,U+8339,U+8354,U+840e,U+85b0,U+85fb,U+8695,U+86aa,U+8717,U+8749,U+874c,U+8996,U+89bd,U+89c5,U+8bdb,U+8bf5,U+8c5a,U+8d3f,U+8d9f,U+8e44,U+8fed,U+9005,U+9019,U+904e,U+9082,U+90af,U+90dd,U+90e1,U+90f8,U+9119,U+916f,U+9176,U+949e,U+94a7,U+94c2,U+9525,U+9580,U+95dc,U+96e2,U+96fb,U+9a7c,U+9a7f,U+9b41,U+9ca8,U+9cc4,U+9cde,U+9e92,U+9ede,U+ff10,U+ff13,U+ff3b; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.79.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+60,U+2606,U+3014,U+3015,U+309c,U+33a1,U+4e52,U+4ec6,U+4f86,U+4f8d,U+4fde,U+4fef,U+500b,U+502a,U+515c,U+518a,U+51a5,U+51f3,U+5243,U+52c9,U+52d5,U+53a2,U+53ee,U+54ce,U+54fa,U+54fc,U+5580,U+5587,U+563f,U+56da,U+5792,U+5815,U+5960,U+59d7,U+5a1f,U+5b78,U+5b9b,U+5be1,U+5c4e,U+5c51,U+5c6f,U+5c9a,U+5cfb,U+5d16,U+5ed6,U+5f27,U+5f6a,U+5f6c,U+603c,U+609a,U+6168,U+61c8,U+6236,U+62d0,U+62f1,U+62fd,U+631a,U+6328,U+632b,U+6346,U+638f,U+63a0,U+63c9,U+655e,U+6590,U+6615,U+6627,U+66ae,U+66e6,U+66f0,U+6703,U+67da,U+67ec,U+6816,U+6893,U+68ad,U+68f5,U+6977,U+6984,U+69db,U+6b72,U+6bb7,U+6ce3,U+6cfb,U+6d47,U+6da1,U+6dc4,U+6e43,U+6eaf,U+6eff,U+6f8e,U+7011,U+7063,U+7076,U+7096,U+70ba,U+70db,U+70ef,U+7119,U+711a,U+7172,U+718f,U+7194,U+727a,U+72d9,U+72ed,U+7325,U+73ae,U+73ba,U+73c0,U+7410,U+7426,U+7554,U+7576,U+75ae,U+75b9,U+762b,U+766b,U+7682,U+7750,U+7779,U+7784,U+77eb,U+77ee,U+78f7,U+79e9,U+7a79,U+7b1b,U+7b28,U+7bf7,U+7db2,U+7ec5,U+7eee,U+7f14,U+7f1a,U+7fe1,U+8087,U+809b,U+8231,U+830e,U+835f,U+83e9,U+849c,U+851a,U+868a,U+8718,U+874e,U+8822,U+8910,U+8944,U+8a3b,U+8bb6,U+8bbc,U+8d50,U+8e72,U+8f9c,U+900d,U+904b,U+9063,U+90a2,U+90b9,U+94f2,U+952f,U+9576,U+9577,U+9593,U+95f8,U+961c,U+9631,U+969b,U+96a7,U+96c1,U+9716,U+9761,U+97ad,U+97e7,U+98a4,U+997a,U+9a73,U+9b44,U+9e3d,U+9ecf,U+9ed4,U+ff11,U+ff12; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.80.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+2193,U+2462,U+4e19,U+4e2b,U+4e36,U+4ea8,U+4ed1,U+4ed7,U+4f51,U+4f63,U+4f83,U+50e7,U+5112,U+5167,U+51a4,U+51b6,U+5239,U+5265,U+532a,U+5351,U+537f,U+5401,U+548f,U+5492,U+54af,U+54b3,U+54bd,U+54d1,U+54df,U+554f,U+5564,U+5598,U+5632,U+56a3,U+56e7,U+574e,U+575d,U+575e,U+57d4,U+584c,U+58e4,U+5937,U+5955,U+5a05,U+5a49,U+5ac2,U+5bb0,U+5c39,U+5c61,U+5d0e,U+5de9,U+5e9a,U+5eb8,U+5f0a,U+5f13,U+5f8c,U+608d,U+611b,U+6127,U+62a0,U+634f,U+635e,U+63fd,U+6577,U+658b,U+65bc,U+660a,U+6643,U+6656,U+6760,U+67af,U+67c4,U+67e0,U+6817,U+68cd,U+690e,U+6960,U+69b4,U+6a71,U+6aac,U+6b67,U+6bb4,U+6c55,U+6c70,U+6c82,U+6ca6,U+6cb8,U+6cbe,U+6e9c,U+6ede,U+6ee5,U+6f4d,U+6f84,U+6f9c,U+7115,U+7121,U+722a,U+7261,U+7272,U+7280,U+72f8,U+7504,U+754f,U+75d8,U+767c,U+76ef,U+778e,U+77bb,U+77f6,U+786b,U+78b1,U+7948,U+7985,U+79be,U+7a83,U+7a8d,U+7eac,U+7eef,U+7ef8,U+7efd,U+7f00,U+803d,U+8086,U+810a,U+8165,U+819d,U+81a8,U+8214,U+829c,U+831c,U+8328,U+832b,U+8367,U+83e0,U+83f1,U+8403,U+846b,U+8475,U+84b2,U+8513,U+8574,U+85af,U+86d9,U+86db,U+8acb,U+8bbd,U+8be0,U+8be1,U+8c0e,U+8d29,U+8d63,U+8e81,U+8f7f,U+9032,U+9042,U+90b1,U+90b5,U+9165,U+9175,U+94a6,U+94c5,U+950c,U+9540,U+9610,U+9699,U+96c7,U+973e,U+978d,U+97ec,U+97f6,U+984c,U+987d,U+9882,U+9965,U+996a,U+9972,U+9a8f,U+9ad3,U+9ae6,U+9cb8,U+9edb,U+ff05,U+ff0b; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.81.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+5e,U+2190,U+250a,U+25bc,U+25cf,U+300f,U+4e56,U+4ea9,U+4f3d,U+4f6c,U+4f88,U+4fa8,U+4fcf,U+5029,U+5188,U+51f9,U+5203,U+524a,U+5256,U+529d,U+5375,U+53db,U+541f,U+5435,U+5457,U+548b,U+54b1,U+54c7,U+54d4,U+54e9,U+556a,U+5589,U+55bb,U+55e8,U+55ef,U+563b,U+566a,U+576a,U+58f9,U+598d,U+599e,U+59a8,U+5a9b,U+5ae3,U+5bde,U+5c4c,U+5c60,U+5d1b,U+5deb,U+5df7,U+5e18,U+5f26,U+5f64,U+601c,U+6084,U+60e9,U+614c,U+61be,U+6208,U+621a,U+6233,U+6254,U+62d8,U+62e6,U+62ef,U+6323,U+632a,U+633d,U+6361,U+6380,U+6405,U+640f,U+6614,U+6642,U+6657,U+67a3,U+6808,U+683d,U+6850,U+6897,U+68b3,U+68b5,U+68d5,U+6a58,U+6b47,U+6b6a,U+6c28,U+6c90,U+6ca7,U+6cf5,U+6d51,U+6da9,U+6dc7,U+6dd1,U+6e0a,U+6e5b,U+6f47,U+6f6d,U+70ad,U+70f9,U+710a,U+7130,U+71ac,U+745f,U+7476,U+7490,U+7529,U+7538,U+75d2,U+7696,U+76b1,U+76fc,U+777f,U+77dc,U+789f,U+795b,U+79bd,U+79c9,U+7a3b,U+7a46,U+7aa5,U+7ad6,U+7ca5,U+7cb9,U+7cdf,U+7d6e,U+7f06,U+7f38,U+7fa1,U+7fc1,U+8015,U+803b,U+80a2,U+80aa,U+8116,U+813e,U+82ad,U+82bd,U+8305,U+8346,U+846c,U+8549,U+859b,U+8611,U+8680,U+87f9,U+884d,U+8877,U+888d,U+88d4,U+898b,U+8a79,U+8a93,U+8c05,U+8c0d,U+8c26,U+8d1e,U+8d31,U+8d81,U+8e22,U+8f90,U+8f96,U+90ca,U+916c,U+917f,U+9187,U+918b,U+9499,U+94a9,U+9524,U+958b,U+9600,U+9640,U+96b6,U+96ef,U+98d9,U+9976,U+997f,U+9a74,U+9a84,U+9c8d,U+9e26,U+9e9f,U+ff0f; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.82.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+b0,U+2191,U+2460,U+2461,U+25c6,U+300e,U+4e1b,U+4e7e,U+4ed5,U+4ef2,U+4f10,U+4f1e,U+4f50,U+4fa6,U+4faf,U+5021,U+50f5,U+5179,U+5180,U+51d1,U+522e,U+52a3,U+52c3,U+52cb,U+5300,U+5319,U+5320,U+5349,U+5395,U+53d9,U+541e,U+5428,U+543e,U+54c0,U+54d2,U+570b,U+5858,U+58f6,U+5974,U+59a5,U+59e8,U+59ec,U+5a36,U+5a9a,U+5ab3,U+5b99,U+5baa,U+5ce1,U+5d14,U+5d4c,U+5dc5,U+5de2,U+5e99,U+5e9e,U+5f18,U+5f66,U+5f70,U+6070,U+60d5,U+60e7,U+6101,U+611a,U+6241,U+6252,U+626f,U+6296,U+62bc,U+62cc,U+63a9,U+644a,U+6454,U+64a9,U+64b8,U+6500,U+6572,U+65a5,U+65a9,U+65ec,U+660f,U+6749,U+6795,U+67ab,U+68da,U+6912,U+6bbf,U+6bef,U+6cab,U+6cca,U+6ccc,U+6cfc,U+6d3d,U+6d78,U+6dee,U+6e17,U+6e34,U+6e83,U+6ea2,U+6eb6,U+6f20,U+6fa1,U+707f,U+70d8,U+70eb,U+714c,U+714e,U+7235,U+7239,U+73ca,U+743c,U+745c,U+7624,U+763e,U+76f2,U+77db,U+77e9,U+780d,U+7838,U+7845,U+78ca,U+796d,U+7a84,U+7aed,U+7b3c,U+7eb2,U+7f05,U+7f20,U+7f34,U+7f62,U+7fc5,U+7fd8,U+7ff0,U+800d,U+8036,U+80ba,U+80be,U+80c0,U+80c1,U+8155,U+817a,U+8180,U+81e3,U+8206,U+8247,U+8270,U+8299,U+8304,U+8393,U+83b9,U+83ca,U+840d,U+8427,U+8469,U+8471,U+84c4,U+84ec,U+853d,U+8681,U+8682,U+8721,U+8854,U+88d5,U+88f9,U+8bc0,U+8c0a,U+8c29,U+8c2d,U+8d41,U+8dea,U+8eb2,U+8f9f,U+903b,U+903e,U+9102,U+9493,U+94a5,U+94f8,U+95ef,U+95f7,U+9706,U+9709,U+9774,U+9887,U+98a0,U+9e64,U+9f9f; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.83.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+2103,U+4e18,U+4e27,U+4e28,U+4e38,U+4e59,U+4e8f,U+4ead,U+4ec7,U+4fe9,U+503a,U+5085,U+5146,U+51af,U+51f8,U+52ab,U+5339,U+535c,U+5378,U+538c,U+5398,U+53f9,U+5415,U+5475,U+54aa,U+54ac,U+54b8,U+5582,U+5760,U+5764,U+57cb,U+5835,U+5885,U+5951,U+5983,U+59da,U+5a77,U+5b5d,U+5b5f,U+5bb5,U+5bc2,U+5be8,U+5bfa,U+5c2c,U+5c34,U+5c41,U+5c48,U+5c65,U+5cad,U+5e06,U+5e42,U+5ef7,U+5f17,U+5f25,U+5f6d,U+5f79,U+6028,U+6064,U+6068,U+606d,U+607c,U+6094,U+6109,U+6124,U+6247,U+626d,U+6291,U+629a,U+62ac,U+62b9,U+62fe,U+6324,U+6349,U+6367,U+6398,U+6495,U+64a4,U+64b0,U+64bc,U+64ce,U+658c,U+65ed,U+6602,U+6674,U+6691,U+66a8,U+674f,U+679a,U+67ef,U+67f4,U+680b,U+6876,U+68a8,U+6a59,U+6a61,U+6b20,U+6bc5,U+6d12,U+6d46,U+6d8c,U+6dc0,U+6e14,U+6e23,U+6f06,U+7164,U+716e,U+7199,U+71e5,U+72ac,U+742a,U+755c,U+75ab,U+75b2,U+75f4,U+7897,U+78b3,U+78c5,U+7978,U+79fd,U+7a74,U+7b4b,U+7b5b,U+7ece,U+7ed2,U+7ee3,U+7ef3,U+7f50,U+7f55,U+7f9e,U+7fe0,U+809d,U+8106,U+814a,U+8154,U+817b,U+818f,U+81c2,U+81ed,U+821f,U+82a6,U+82d1,U+8302,U+83c7,U+845b,U+848b,U+84c9,U+85e4,U+86ee,U+8700,U+8774,U+886c,U+8881,U+8c1c,U+8c79,U+8d2a,U+8d3c,U+8eba,U+8f70,U+8fa9,U+8fb1,U+900a,U+9017,U+901d,U+9022,U+906e,U+946b,U+94dd,U+94ed,U+953b,U+95fa,U+95fd,U+964c,U+96c0,U+971c,U+971e,U+9753,U+9756,U+97e6,U+9881,U+9b4f,U+9e2d,U+9f0e,U+ff5c; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.84.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+24,U+4e08,U+4e43,U+4e4f,U+4ef0,U+4f2a,U+507f,U+50ac,U+50bb,U+5151,U+51bb,U+51f6,U+51fd,U+5272,U+52fe,U+5362,U+53c9,U+53d4,U+53e0,U+543b,U+54f2,U+5507,U+5524,U+558a,U+55b5,U+561b,U+56ca,U+5782,U+57c3,U+5893,U+5915,U+5949,U+5962,U+59ae,U+59dc,U+59fb,U+5bd3,U+5c38,U+5cb3,U+5d07,U+5d29,U+5de1,U+5dfe,U+5e15,U+5eca,U+5f2f,U+5f7c,U+5fcc,U+6021,U+609f,U+60f9,U+6108,U+6148,U+6155,U+6170,U+61d2,U+6251,U+629b,U+62ab,U+62e8,U+62f3,U+6321,U+6350,U+6566,U+659c,U+65e8,U+6635,U+6655,U+6670,U+66f9,U+6734,U+679d,U+6851,U+6905,U+6b49,U+6b96,U+6c1b,U+6c41,U+6c6a,U+6c83,U+6cf3,U+6d9b,U+6dcb,U+6e1d,U+6e20,U+6e21,U+6eaa,U+6ee4,U+6ee9,U+6f58,U+70e4,U+722c,U+7262,U+7267,U+72b9,U+72e0,U+72ee,U+72f1,U+7334,U+73ab,U+7433,U+7470,U+758f,U+75d5,U+764c,U+7686,U+76c6,U+76fe,U+7720,U+77e2,U+7802,U+7816,U+788d,U+7891,U+7a00,U+7a9d,U+7b52,U+7bad,U+7c98,U+7cca,U+7eba,U+7eea,U+7ef5,U+7f1d,U+7f69,U+806a,U+809a,U+80bf,U+80c3,U+81c0,U+820c,U+82ac,U+82af,U+82cd,U+82d7,U+838e,U+839e,U+8404,U+84b8,U+852c,U+8587,U+85aa,U+8650,U+8679,U+86c7,U+8702,U+87ba,U+886b,U+8870,U+8c10,U+8c23,U+8c6b,U+8d3e,U+8d4b,U+8d4c,U+8d64,U+8d6b,U+8d74,U+8e29,U+8f69,U+8f74,U+8fb0,U+8fdf,U+901b,U+9038,U+9093,U+90aa,U+9171,U+9489,U+94ae,U+94c3,U+9508,U+9510,U+9601,U+9614,U+9675,U+97f5,U+9888,U+98d8,U+9971,U+9aa4,U+9e3f,U+9e45,U+9e4f,U+9e70,U+9f7f; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.85.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+a5,U+2022,U+2192,U+2605,U+4e11,U+4e22,U+4e32,U+4f0d,U+4f0f,U+4f69,U+4ff1,U+50b2,U+5154,U+51dd,U+51f0,U+5211,U+5269,U+533f,U+5366,U+5367,U+5389,U+5413,U+5440,U+5446,U+5561,U+574a,U+5751,U+57ab,U+5806,U+5821,U+582a,U+58f3,U+5938,U+5948,U+5978,U+59d1,U+5a03,U+5a07,U+5ac1,U+5acc,U+5ae9,U+5bb4,U+5bc4,U+5c3f,U+5e3d,U+5e7d,U+5f92,U+5faa,U+5fe0,U+5ffd,U+6016,U+60a0,U+60dc,U+60e8,U+614e,U+6212,U+6284,U+62c6,U+62d3,U+62d4,U+63f4,U+642c,U+6478,U+6491,U+6492,U+64e6,U+6591,U+65a4,U+664b,U+6735,U+6746,U+67f1,U+67f3,U+6842,U+68af,U+68c9,U+68cb,U+6a31,U+6b3a,U+6bc1,U+6c0f,U+6c27,U+6c57,U+6cc4,U+6ce5,U+6d2a,U+6d66,U+6d69,U+6daf,U+6e58,U+6ecb,U+6ef4,U+707e,U+7092,U+70ab,U+71d5,U+7275,U+7384,U+73b2,U+7434,U+74e6,U+74f7,U+75bc,U+76c8,U+76d0,U+7709,U+77ac,U+7855,U+78a7,U+78c1,U+7a77,U+7b79,U+7c92,U+7cae,U+7cd5,U+7ea4,U+7eb5,U+7ebd,U+7f5a,U+7fd4,U+7ffc,U+8083,U+8096,U+80a0,U+80d6,U+80de,U+8102,U+8109,U+810f,U+8179,U+8292,U+82b3,U+8352,U+8361,U+83cc,U+841d,U+8461,U+8482,U+8521,U+857e,U+866b,U+8776,U+8896,U+889c,U+88f8,U+8a9e,U+8bc8,U+8bf8,U+8c0b,U+8c28,U+8d2b,U+8d2f,U+8d37,U+8d3a,U+8d54,U+8dc3,U+8dcc,U+8df5,U+8e0f,U+8e48,U+8f86,U+8f88,U+8f9e,U+8fc1,U+8fc8,U+8feb,U+9065,U+90a6,U+90bb,U+90c1,U+94dc,U+9521,U+9676,U+96d5,U+970d,U+9897,U+997c,U+9a70,U+9a76,U+9a9a,U+9ad4,U+9e23,U+9e7f,U+9f3b,U+ffe5; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.86.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+300c,U+300d,U+4e54,U+4e58,U+4e95,U+4ec1,U+4f2f,U+4f38,U+4fa3,U+4fca,U+503e,U+5141,U+5144,U+517c,U+51cc,U+51ed,U+5242,U+52b2,U+52d2,U+52e4,U+540a,U+5439,U+5448,U+5496,U+54ed,U+5565,U+5761,U+5766,U+58ee,U+593a,U+594b,U+594f,U+5954,U+5996,U+59c6,U+59ff,U+5b64,U+5bff,U+5c18,U+5c1d,U+5c97,U+5ca9,U+5cb8,U+5e9f,U+5ec9,U+5f04,U+5f7b,U+5fa1,U+5fcd,U+6012,U+60a6,U+60ac,U+60b2,U+60ef,U+626e,U+6270,U+6276,U+62d6,U+62dc,U+6316,U+632f,U+633a,U+6355,U+63aa,U+6447,U+649e,U+64c5,U+654c,U+65c1,U+65cb,U+65e6,U+6606,U+6731,U+675c,U+67cf,U+67dc,U+6846,U+6b8b,U+6beb,U+6c61,U+6c88,U+6cbf,U+6cdb,U+6cea,U+6d45,U+6d53,U+6d74,U+6d82,U+6da8,U+6db5,U+6deb,U+6eda,U+6ee8,U+6f0f,U+706d,U+708e,U+70ae,U+70bc,U+70c2,U+70e6,U+7237,U+7238,U+72fc,U+730e,U+731b,U+739b,U+73bb,U+7483,U+74dc,U+74f6,U+7586,U+7626,U+775b,U+77ff,U+788e,U+78b0,U+7956,U+7965,U+79e6,U+7af9,U+7bee,U+7c97,U+7eb1,U+7eb7,U+7ed1,U+7ed5,U+7f6a,U+7f72,U+7fbd,U+8017,U+808c,U+80a9,U+80c6,U+80ce,U+8150,U+8170,U+819c,U+820d,U+8230,U+8239,U+827e,U+8377,U+8389,U+83b2,U+8428,U+8463,U+867e,U+88c2,U+88d9,U+8986,U+8bca,U+8bde,U+8c13,U+8c8c,U+8d21,U+8d24,U+8d56,U+8d60,U+8d8b,U+8db4,U+8e2a,U+8f68,U+8f89,U+8f9b,U+8fa8,U+8fbd,U+9003,U+90ce,U+90ed,U+9189,U+94bb,U+9505,U+95f9,U+963b,U+9655,U+966a,U+9677,U+96fe,U+9896,U+99a8,U+9a71,U+9a82,U+9a91,U+9b45,U+9ece,U+9f20,U+ff0d; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.87.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+4e4c,U+4e88,U+4ea1,U+4ea6,U+4ed3,U+4ed4,U+4eff,U+4f30,U+4fa7,U+4fc4,U+4fd7,U+500d,U+504f,U+5076,U+5077,U+517d,U+5192,U+51c9,U+51ef,U+5238,U+5251,U+526a,U+52c7,U+52df,U+52ff,U+53a6,U+53a8,U+53ec,U+5410,U+559d,U+55b7,U+5634,U+573e,U+5783,U+585e,U+586b,U+58a8,U+5999,U+59d3,U+5a1c,U+5a46,U+5b54,U+5b55,U+5b85,U+5b8b,U+5b8f,U+5bbf,U+5bd2,U+5c16,U+5c24,U+5e05,U+5e45,U+5e7c,U+5e84,U+5f03,U+5f1f,U+5f31,U+5f84,U+5f90,U+5fbd,U+5fc6,U+5fd9,U+5fe7,U+6052,U+6062,U+6089,U+60a3,U+60d1,U+6167,U+622a,U+6234,U+624e,U+6269,U+626c,U+62b5,U+62d2,U+6325,U+63e1,U+643a,U+6446,U+6562,U+656c,U+65e2,U+65fa,U+660c,U+6628,U+6652,U+6668,U+6676,U+66fc,U+66ff,U+6717,U+676d,U+67aa,U+67d4,U+6843,U+6881,U+68d2,U+695a,U+69fd,U+6a2a,U+6b8a,U+6c60,U+6c64,U+6c9f,U+6caa,U+6cc9,U+6ce1,U+6cfd,U+6d1b,U+6d1e,U+6d6e,U+6de1,U+6e10,U+6e7f,U+6f5c,U+704c,U+7070,U+7089,U+70b8,U+718a,U+71c3,U+723d,U+732a,U+73cd,U+7518,U+756a,U+75af,U+75be,U+75c7,U+76d2,U+76d7,U+7763,U+78e8,U+795d,U+79df,U+7c4d,U+7d2f,U+7ee9,U+7f13,U+7f8a,U+8000,U+8010,U+80af,U+80f6,U+80f8,U+8212,U+8273,U+82f9,U+83ab,U+83b1,U+83f2,U+8584,U+871c,U+8861,U+888b,U+88c1,U+88e4,U+8bd1,U+8bf1,U+8c31,U+8d5a,U+8d75,U+8d76,U+8de8,U+8f85,U+8fa3,U+8fc5,U+9006,U+903c,U+904d,U+9075,U+9178,U+9274,U+950b,U+9526,U+95ea,U+9636,U+9686,U+978b,U+987f,U+9a7e,U+9b42,U+9e1f,U+9ea6,U+9f13,U+9f84,U+ff5e; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.88.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+23,U+3d,U+4e01,U+4e39,U+4e73,U+4ecd,U+4ed9,U+4eea,U+4f0a,U+4f1f,U+4f5b,U+4fa0,U+4fc3,U+501f,U+50a8,U+515a,U+5175,U+51a0,U+51c0,U+51e1,U+51e4,U+5200,U+520a,U+5224,U+523a,U+52aa,U+52b1,U+52b3,U+5348,U+5353,U+5360,U+5371,U+5377,U+539a,U+541b,U+5434,U+547c,U+54e6,U+5510,U+5531,U+5609,U+56f0,U+56fa,U+5733,U+574f,U+5851,U+5854,U+5899,U+58c1,U+592e,U+5939,U+5976,U+5986,U+59bb,U+5a18,U+5a74,U+5b59,U+5b87,U+5b97,U+5ba0,U+5bab,U+5bbd,U+5bbe,U+5bf8,U+5c0a,U+5c3a,U+5c4a,U+5e16,U+5e1d,U+5e2d,U+5e8a,U+6015,U+602a,U+6050,U+6069,U+6162,U+61c2,U+6293,U+6297,U+62b1,U+62bd,U+62df,U+62fc,U+6302,U+635f,U+638c,U+63ed,U+6458,U+6469,U+6563,U+6620,U+6653,U+6696,U+6697,U+66dd,U+675f,U+676f,U+6770,U+67d0,U+67d3,U+684c,U+6865,U+6885,U+68b0,U+68ee,U+690d,U+6b23,U+6b32,U+6bd5,U+6c89,U+6d01,U+6d25,U+6d89,U+6da6,U+6db2,U+6df7,U+6ed1,U+6f02,U+70c8,U+70df,U+70e7,U+7126,U+7236,U+7259,U+731c,U+745e,U+74e3,U+751a,U+751c,U+7532,U+7545,U+75db,U+7761,U+7a0d,U+7b51,U+7ca4,U+7cd6,U+7d2b,U+7ea0,U+7eb9,U+7ed8,U+7f18,U+7f29,U+8033,U+804a,U+80a4,U+80a5,U+80e1,U+817f,U+829d,U+82e6,U+8336,U+840c,U+8499,U+864e,U+8651,U+865a,U+88ad,U+89e6,U+8bd7,U+8bfa,U+8c37,U+8d25,U+8d38,U+8ddd,U+8fea,U+9010,U+9012,U+906d,U+907f,U+9080,U+90d1,U+9177,U+91ca,U+94fa,U+9501,U+9634,U+9635,U+9694,U+9707,U+9738,U+9769,U+9a7b,U+9a97,U+9aa8,U+9b3c,U+9c81,U+9ed8; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.89.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+26,U+3c,U+d7,U+4e4e,U+4e61,U+4e71,U+4ebf,U+4ee4,U+4f26,U+5012,U+51ac,U+51b0,U+51b2,U+51b7,U+5218,U+521a,U+5220,U+5237,U+523b,U+526f,U+5385,U+53bf,U+53e5,U+53eb,U+53f3,U+53f6,U+5409,U+5438,U+54c8,U+54e5,U+552f,U+5584,U+5706,U+5723,U+5750,U+575a,U+5987,U+5988,U+59b9,U+59d0,U+59d4,U+5b88,U+5b9c,U+5bdf,U+5bfb,U+5c01,U+5c04,U+5c3e,U+5c4b,U+5c4f,U+5c9b,U+5cf0,U+5ddd,U+5de6,U+5de8,U+5e01,U+5e78,U+5e7b,U+5e9c,U+5ead,U+5ef6,U+5f39,U+5fd8,U+6000,U+6025,U+604b,U+6076,U+613f,U+6258,U+6263,U+6267,U+6298,U+62a2,U+62e5,U+62ec,U+6311,U+6377,U+6388,U+6389,U+63a2,U+63d2,U+641e,U+642d,U+654f,U+6551,U+6597,U+65cf,U+65d7,U+65e7,U+6682,U+66f2,U+671d,U+672b,U+6751,U+6768,U+6811,U+6863,U+6982,U+6bd2,U+6cf0,U+6d0b,U+6d17,U+6d59,U+6dd8,U+6dfb,U+6e7e,U+6f6e,U+6fb3,U+706f,U+719f,U+72af,U+72d0,U+72d7,U+732b,U+732e,U+7389,U+73e0,U+7530,U+7687,U+76d6,U+76db,U+7840,U+786c,U+79cb,U+79d2,U+7a0e,U+7a33,U+7a3f,U+7a97,U+7ade,U+7adf,U+7b26,U+7e41,U+7ec3,U+7f3a,U+8089,U+80dc,U+811a,U+8131,U+8138,U+821e,U+8349,U+83dc,U+8457,U+867d,U+86cb,U+8a89,U+8ba8,U+8bad,U+8bef,U+8bfe,U+8c6a,U+8d1d,U+8d4f,U+8d62,U+8dd1,U+8df3,U+8f6e,U+8ff9,U+900f,U+9014,U+9057,U+9192,U+91ce,U+9488,U+94a2,U+9547,U+955c,U+95f2,U+9644,U+964d,U+96c4,U+96c5,U+96e8,U+96f6,U+96f7,U+9732,U+9759,U+9760,U+987a,U+989c,U+9910,U+996d,U+996e,U+9b54,U+9e21,U+9ebb,U+9f50; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.90.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+7e,U+2026,U+4e03,U+4e25,U+4e30,U+4e34,U+4e45,U+4e5d,U+4e89,U+4eae,U+4ed8,U+4f11,U+4f19,U+4f24,U+4f34,U+4f59,U+4f73,U+4f9d,U+4fb5,U+5047,U+505c,U+5170,U+519c,U+51cf,U+5267,U+5356,U+5374,U+5382,U+538b,U+53e6,U+5426,U+542b,U+542f,U+5462,U+5473,U+554a,U+5566,U+5708,U+571f,U+5757,U+57df,U+57f9,U+5802,U+590f,U+591c,U+591f,U+592b,U+5965,U+5979,U+5a01,U+5a5a,U+5b69,U+5b81,U+5ba1,U+5ba3,U+5c3c,U+5c42,U+5c81,U+5de7,U+5dee,U+5e0c,U+5e10,U+5e55,U+5e86,U+5e8f,U+5ea7,U+5f02,U+5f52,U+5f81,U+5ff5,U+60ca,U+60e0,U+6279,U+62c5,U+62ff,U+63cf,U+6444,U+64cd,U+653b,U+65bd,U+65e9,U+665a,U+66b4,U+66fe,U+6728,U+6740,U+6742,U+677e,U+67b6,U+680f,U+68a6,U+68c0,U+699c,U+6b4c,U+6b66,U+6b7b,U+6bcd,U+6bdb,U+6c38,U+6c47,U+6c49,U+6cb3,U+6cb9,U+6ce2,U+6d32,U+6d3e,U+6d4f,U+6e56,U+6fc0,U+7075,U+7206,U+725b,U+72c2,U+73ed,U+7565,U+7591,U+7597,U+75c5,U+76ae,U+76d1,U+76df,U+7834,U+7968,U+7981,U+79c0,U+7a7f,U+7a81,U+7ae5,U+7b14,U+7c89,U+7d27,U+7eaf,U+7eb3,U+7eb8,U+7ec7,U+7ee7,U+7eff,U+7f57,U+7ffb,U+805a,U+80a1,U+822c,U+82cf,U+82e5,U+8363,U+836f,U+84dd,U+878d,U+8840,U+8857,U+8863,U+8865,U+8b66,U+8bb2,U+8bda,U+8c01,U+8c08,U+8c46,U+8d1f,U+8d35,U+8d5b,U+8d5e,U+8da3,U+8ddf,U+8f93,U+8fdd,U+8ff0,U+8ff7,U+8ffd,U+9000,U+9047,U+9152,U+949f,U+94c1,U+94f6,U+9646,U+9648,U+9669,U+969c,U+96ea,U+97e9,U+987b,U+987e,U+989d,U+9970,U+9986,U+9c7c,U+9c9c; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.91.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+25,U+4e14,U+4e1d,U+4e3d,U+4e49,U+4e60,U+4e9a,U+4eb2,U+4ec5,U+4efd,U+4f3c,U+4f4f,U+4f8b,U+4fbf,U+5019,U+5145,U+514b,U+516b,U+516d,U+5174,U+5178,U+517b,U+5199,U+519b,U+51b3,U+51b5,U+5207,U+5212,U+5219,U+521d,U+52bf,U+533b,U+5343,U+5347,U+534a,U+536b,U+5370,U+53e4,U+53f2,U+5403,U+542c,U+547d,U+54a8,U+54cd,U+54ea,U+552e,U+56f4,U+5747,U+575b,U+5883,U+589e,U+5931,U+5947,U+5956,U+5957,U+5a92,U+5b63,U+5b83,U+5ba4,U+5bb3,U+5bcc,U+5c14,U+5c1a,U+5c3d,U+5c40,U+5c45,U+5c5e,U+5df4,U+5e72,U+5e95,U+5f80,U+5f85,U+5fb7,U+5fd7,U+601d,U+626b,U+627f,U+62c9,U+62cd,U+6309,U+63a7,U+6545,U+65ad,U+65af,U+65c5,U+666e,U+667a,U+670b,U+671b,U+674e,U+677f,U+6781,U+6790,U+6797,U+6821,U+6838,U+6839,U+697c,U+6b27,U+6b62,U+6bb5,U+6c7d,U+6c99,U+6d4e,U+6d6a,U+6e29,U+6e2f,U+6ee1,U+6f14,U+6f2b,U+72b6,U+72ec,U+7387,U+7533,U+753b,U+76ca,U+76d8,U+7701,U+773c,U+77ed,U+77f3,U+7814,U+793c,U+79bb,U+79c1,U+79d8,U+79ef,U+79fb,U+7a76,U+7b11,U+7b54,U+7b56,U+7b97,U+7bc7,U+7c73,U+7d20,U+7eaa,U+7ec8,U+7edd,U+7eed,U+7efc,U+7fa4,U+804c,U+8058,U+80cc,U+8111,U+817e,U+826f,U+8303,U+843d,U+89c9,U+89d2,U+8ba2,U+8bbf,U+8bc9,U+8bcd,U+8be6,U+8c22,U+8c61,U+8d22,U+8d26,U+8d27,U+8d8a,U+8f6f,U+8f7b,U+8f83,U+8f91,U+8fb9,U+8fd4,U+8fdc,U+9002,U+94b1,U+9519,U+95ed,U+961f,U+9632,U+9633,U+963f,U+968f,U+9690,U+96be,U+9876,U+9884,U+98de,U+9988,U+9999,U+9ec4,U+ff1b; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.92.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+2b,U+40,U+3000,U+300a,U+300b,U+4e16,U+4e66,U+4e70,U+4e91,U+4e92,U+4e94,U+4e9b,U+4ec0,U+4eca,U+4f01,U+4f17,U+4f18,U+4f46,U+4f4e,U+4f9b,U+4fee,U+503c,U+5065,U+50cf,U+513f,U+5148,U+518d,U+51c6,U+51e0,U+5217,U+529e,U+529f,U+5341,U+534f,U+5361,U+5386,U+53c2,U+53c8,U+53cc,U+53d7,U+53d8,U+5404,U+5411,U+5417,U+5427,U+5468,U+559c,U+5668,U+56e0,U+56e2,U+56ed,U+5740,U+57fa,U+58eb,U+5904,U+592a,U+59cb,U+5a31,U+5b58,U+5b9d,U+5bc6,U+5c71,U+5dde,U+5df1,U+5e08,U+5e26,U+5e2e,U+5e93,U+5e97,U+5eb7,U+5f15,U+5f20,U+5f3a,U+5f62,U+5f69,U+5f88,U+5f8b,U+5fc5,U+600e,U+620f,U+6218,U+623f,U+627e,U+628a,U+62a4,U+62db,U+62e9,U+6307,U+6362,U+636e,U+64ad,U+6539,U+653f,U+6548,U+6574,U+6613,U+6625,U+663e,U+666f,U+672a,U+6750,U+6784,U+6a21,U+6b3e,U+6b65,U+6bcf,U+6c11,U+6c5f,U+6d4b,U+6df1,U+706b,U+7167,U+724c,U+738b,U+73a9,U+73af,U+7403,U+7537,U+754c,U+7559,U+767d,U+7740,U+786e,U+795e,U+798f,U+79f0,U+7aef,U+7b7e,U+7bb1,U+7ea2,U+7ea6,U+7ec4,U+7ec6,U+7ecd,U+7edc,U+7ef4,U+8003,U+80b2,U+81f3,U+81f4,U+822a,U+827a,U+82f1,U+83b7,U+8425,U+89c2,U+89c8,U+8ba9,U+8bb8,U+8bc6,U+8bd5,U+8be2,U+8be5,U+8bed,U+8c03,U+8d23,U+8d2d,U+8d34,U+8d70,U+8db3,U+8fbe,U+8fce,U+8fd1,U+8fde,U+9001,U+901f,U+9020,U+90a3,U+914d,U+91c7,U+94fe,U+9500,U+952e,U+9605,U+9645,U+9662,U+9664,U+9700,U+9752,U+975e,U+97f3,U+9879,U+9886,U+98df,U+9a6c,U+9a8c,U+9ed1,U+9f99; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.93.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+4e,U+201c,U+201d,U+3010,U+3011,U+4e07,U+4e1c,U+4e24,U+4e3e,U+4e48,U+4e50,U+4e5f,U+4e8b,U+4e8c,U+4ea4,U+4eab,U+4eac,U+4ecb,U+4ece,U+4ed6,U+4ee3,U+4ef6,U+4ef7,U+4efb,U+4f20,U+4f55,U+4f7f,U+4fdd,U+505a,U+5143,U+5149,U+514d,U+5171,U+5177,U+518c,U+51fb,U+521b,U+5229,U+522b,U+52a9,U+5305,U+5317,U+534e,U+5355,U+5357,U+535a,U+5373,U+539f,U+53bb,U+53ca,U+53cd,U+53d6,U+53e3,U+53ea,U+53f0,U+5458,U+5546,U+56db,U+573a,U+578b,U+57ce,U+58f0,U+590d,U+5934,U+5973,U+5b57,U+5b8c,U+5b98,U+5bb9,U+5bfc,U+5c06,U+5c11,U+5c31,U+5c55,U+5df2,U+5e03,U+5e76,U+5e94,U+5efa,U+5f71,U+5f97,U+5feb,U+6001,U+603b,U+60f3,U+611f,U+6216,U+624d,U+6253,U+6295,U+6301,U+6392,U+641c,U+652f,U+653e,U+6559,U+6599,U+661f,U+671f,U+672f,U+6761,U+67e5,U+6807,U+6837,U+683c,U+6848,U+6b22,U+6b64,U+6bd4,U+6c14,U+6c34,U+6c42,U+6ca1,U+6d41,U+6d77,U+6d88,U+6e05,U+6e38,U+6e90,U+7136,U+7231,U+7531,U+767e,U+76ee,U+76f4,U+771f,U+7801,U+793a,U+79cd,U+7a0b,U+7a7a,U+7acb,U+7ae0,U+7b2c,U+7b80,U+7ba1,U+7cbe,U+7d22,U+7ea7,U+7ed3,U+7ed9,U+7edf,U+7f16,U+7f6e,U+8001,U+800c,U+8272,U+8282,U+82b1,U+8350,U+88ab,U+88c5,U+897f,U+89c1,U+89c4,U+89e3,U+8a00,U+8ba1,U+8ba4,U+8bae-8bb0,U+8bbe,U+8bc1,U+8bc4,U+8bfb,U+8d28,U+8d39,U+8d77,U+8d85,U+8def,U+8eab,U+8f66,U+8f6c,U+8f7d,U+8fd0,U+9009,U+90ae,U+90fd,U+91cc,U+91cd,U+91cf,U+95fb,U+9650,U+96c6,U+9891,U+98ce,U+ff1f; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.94.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+3e,U+5f,U+7c,U+a0,U+a9,U+4e09-4e0b,U+4e0d,U+4e0e,U+4e13,U+4e1a,U+4e2a,U+4e3a,U+4e3b,U+4e4b,U+4e86,U+4e8e,U+4ea7,U+4eba,U+4ee5,U+4eec,U+4f1a,U+4f4d,U+4f53,U+4f5c,U+4f60,U+4fe1,U+5165,U+5168,U+516c,U+5173,U+5176,U+5185,U+51fa,U+5206,U+5230,U+5236,U+524d,U+529b,U+52a0,U+52a1,U+52a8,U+5316,U+533a,U+53cb,U+53d1,U+53ef,U+53f7,U+53f8,U+5408,U+540c-540e,U+544a,U+548c,U+54c1,U+56de,U+56fd,U+56fe,U+5728,U+5730,U+5907,U+5916,U+591a,U+5927,U+5929,U+597d,U+5982,U+5b50,U+5b66,U+5b89,U+5b9a,U+5b9e,U+5ba2,U+5bb6,U+5bf9,U+5c0f,U+5de5,U+5e02,U+5e38,U+5e73,U+5e74,U+5e7f,U+5ea6,U+5f00,U+5f0f,U+5f53,U+5f55,U+5fae,U+5fc3,U+6027,U+606f,U+60a8,U+60c5,U+610f,U+6210,U+6211,U+6237,U+6240,U+624b,U+6280,U+62a5,U+63a5,U+63a8,U+63d0,U+6536,U+6570,U+6587,U+65b9,U+65e0,U+65f6,U+660e,U+662d,U+662f,U+66f4,U+6700,U+670d,U+672c,U+673a,U+6743,U+6765,U+679c,U+682a,U+6b21,U+6b63,U+6cbb,U+6cd5,U+6ce8,U+6d3b,U+70ed,U+7247,U+7248,U+7269,U+7279,U+73b0,U+7406,U+751f,U+7528,U+7535,U+767b,U+76f8,U+770b,U+77e5,U+793e,U+79d1,U+7ad9,U+7b49,U+7c7b,U+7cfb,U+7ebf,U+7ecf,U+7f8e,U+8005,U+8054,U+80fd,U+81ea,U+85cf,U+884c,U+8868,U+8981,U+89c6,U+8bba,U+8bdd,U+8bf4,U+8bf7,U+8d44,U+8fc7,U+8fd8,U+8fd9,U+8fdb,U+901a,U+9053,U+90e8,U+91d1,U+957f,U+95e8,U+95ee,U+95f4,U+9762,U+9875,U+9898,U+9996,U+9ad8,U+ff01,U+ff08,U+ff09; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.95.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+20-22,U+27-2a,U+2c-3b,U+3f,U+41-4d,U+4f-5d,U+61-7b,U+7d,U+ab,U+ae,U+b2,U+b7,U+bb,U+2013,U+2014,U+2039,U+203a,U+2122,U+3001,U+3002,U+30fb,U+30fc,U+4e00,U+4e2d,U+65b0,U+65e5,U+6708,U+6709,U+70b9,U+7684,U+7f51,U+ff0c,U+ff0e,U+ff1a; +} +@font-face { + font-family: 'HarmonyOS Sans SC'; + src: url("./HarmonyOS_Sans_SC_Thin.96.woff2") format("woff2"); + font-weight: 100; + font-style: normal; + font-display: swap; + unicode-range: U+df-e5,U+e7-ea,U+ec,U+ed,U+f1-f4,U+f6,U+f9,U+fa,U+fc,U+101,U+103,U+113,U+12b,U+148,U+14d,U+16b,U+1ce,U+1d0,U+300,U+301,U+1ebf,U+1ec7,U+3042,U+3044,U+3046,U+3048,U+304a-3055,U+3057,U+3059-305b,U+305d,U+305f-3061,U+3063-306b,U+306d-3073,U+3075,U+3076,U+3078,U+3079,U+307b,U+307e,U+307f,U+3081-308d,U+308f,U+3092,U+3093,U+30a1-30a4,U+30a6-30bb,U+30bd,U+30bf-30c1,U+30c3,U+30c4,U+30c6-30cb,U+30cd-30d7,U+30d9-30e1,U+30e3-30e7,U+30e9-30ed,U+30ef,U+30f3; +} diff --git a/resources/font/HarmonyOS_Sans_SC_Thin/index.html b/resources/font/HarmonyOS_Sans_SC_Thin/index.html new file mode 100644 index 0000000..3572a84 --- /dev/null +++ b/resources/font/HarmonyOS_Sans_SC_Thin/index.html @@ -0,0 +1,20 @@ + + + + + + Demo + + + + + +
+

Created by voderl ( https://github.com/voderl/font-slice )

+

如果遇到问题可以在 issue 中反馈

+ +
+ + \ No newline at end of file diff --git a/resources/image/admin/default.jpg b/resources/image/admin/default.jpg new file mode 100644 index 0000000..dfa81b6 Binary files /dev/null and b/resources/image/admin/default.jpg differ diff --git a/resources/image/bilibili/bilibili-dark.png b/resources/image/bilibili/bilibili-dark.png new file mode 100644 index 0000000..b7405dd Binary files /dev/null and b/resources/image/bilibili/bilibili-dark.png differ diff --git a/resources/image/bilibili/bilibili-light.png b/resources/image/bilibili/bilibili-light.png new file mode 100644 index 0000000..c0ad8da Binary files /dev/null and b/resources/image/bilibili/bilibili-light.png differ diff --git a/resources/image/bilibili/bilibili.png b/resources/image/bilibili/bilibili.png new file mode 100644 index 0000000..b7405dd Binary files /dev/null and b/resources/image/bilibili/bilibili.png differ diff --git "a/resources/image/bilibili/\347\233\264\346\222\255\344\270\255.png" "b/resources/image/bilibili/\347\233\264\346\222\255\344\270\255.png" new file mode 100644 index 0000000..251a101 Binary files /dev/null and "b/resources/image/bilibili/\347\233\264\346\222\255\344\270\255.png" differ diff --git a/resources/image/douyin/douyin.png b/resources/image/douyin/douyin.png new file mode 100644 index 0000000..9d30058 Binary files /dev/null and b/resources/image/douyin/douyin.png differ diff --git a/resources/image/douyin/dylogo-dark.svg b/resources/image/douyin/dylogo-dark.svg new file mode 100644 index 0000000..0b7b2f6 --- /dev/null +++ b/resources/image/douyin/dylogo-dark.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/resources/image/douyin/dylogo-light.svg b/resources/image/douyin/dylogo-light.svg new file mode 100644 index 0000000..17492c4 --- /dev/null +++ b/resources/image/douyin/dylogo-light.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/resources/image/douyin/search-dark.svg b/resources/image/douyin/search-dark.svg new file mode 100644 index 0000000..489db9a --- /dev/null +++ b/resources/image/douyin/search-dark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/resources/image/douyin/search-light.svg b/resources/image/douyin/search-light.svg new file mode 100644 index 0000000..d376ab0 --- /dev/null +++ b/resources/image/douyin/search-light.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git "a/resources/image/douyin/\346\212\226\351\237\263-\347\233\264\346\222\255\344\270\255.png" "b/resources/image/douyin/\346\212\226\351\237\263-\347\233\264\346\222\255\344\270\255.png" new file mode 100644 index 0000000..87b85c0 Binary files /dev/null and "b/resources/image/douyin/\346\212\226\351\237\263-\347\233\264\346\222\255\344\270\255.png" differ diff --git a/resources/image/help/default.png b/resources/image/help/default.png new file mode 100644 index 0000000..1334c02 Binary files /dev/null and b/resources/image/help/default.png differ diff --git a/resources/image/help/icon.png b/resources/image/help/icon.png new file mode 100644 index 0000000..c268d60 Binary files /dev/null and b/resources/image/help/icon.png differ diff --git a/resources/image/kuaishou/logo.png b/resources/image/kuaishou/logo.png new file mode 100644 index 0000000..a1f5fec Binary files /dev/null and b/resources/image/kuaishou/logo.png differ diff --git a/resources/template/admin/css/index.css b/resources/template/admin/css/index.css new file mode 100644 index 0000000..04d2e23 --- /dev/null +++ b/resources/template/admin/css/index.css @@ -0,0 +1,134 @@ +.container { + background: url('../../../image/admin/default.jpg') #606060 left top no-repeat; + background-size: 520px auto; + padding: 20px 15px 10px 15px; + background-size: contain; + font-size: 45px; + color: #1e1f20; + width: 1440px; +} + +.head-box { + border-radius: 15px; + padding: 10px 20px; + position: relative; + color: #fff; + margin-top: 30px; +} + +.head-box .title { + font-size: 130px; + text-shadow: 6px 5px 13px #4a4a4a, 1px 1px 0px rgba(0, 0, 0, 0.9); + font-weight: bold; +} + +.head-box .title .label { + display: inline-block; + margin-left: 10px; +} + +.head-box .genshin_logo { + position: absolute; + top: 1px; + right: 15px; + width: 97px; +} + +.head-box .label { + font-size: 50px; + text-shadow: 0 0 3px #000, + 1px 1px 3px rgba(0, 0, 0, 0.9); +} + +.head-box .label span { + color: #d3bc8e; + padding: 0 2px; +} + +.head-box { + margin: 0 0 90px 0; +} + +.cfg-box { + border-radius: 15px; + margin-top: 20px; + margin-bottom: 20px; + padding: 15px 20px; + overflow: hidden; + position: relative; + -webkit-backdrop-filter: blur(10px); + backdrop-filter: blur(100px); + background: #d5deff1f; + border-radius: 25px; + box-shadow: 0px 8px 20px 0px rgba(51, 51, 52, 0.5), inset 3px 3px 30px 10px rgba(255, 255, 255, 0.8); +} + +.cfg-group { + color: #ffcfde; + font-size: 65px; + font-weight: bold; + padding: 30px 30px; + text-shadow: 2px 2px 5px #0000008f; +} + +.cfg-li { + min-height: 36px; + position: relative; + list-style: none; + margin-bottom: 15px; + background: rgb(203 196 190 / 0%); +} + +.cfg-line { + color: #303030; + line-height: 69px; + padding-left: 41px; + font-weight: bold; + border-radius: 5px 30px; + box-shadow: 3px 3px 20px 0px rgb(0 0 0 / 50%); + background-image: linear-gradient(90deg, #fceae7a1 40%, #fbf3f1b5 65%, #d5dfff9e); + font-size: 37px; +} + +.cfg-hint { + font-size: 27px; + font-weight: normal; + margin-top: -4px; + margin-bottom: -3px; +} + +.cfg-status { + position: absolute; + top: 0; + right: 0; + height: 36px; + width: 345px; + text-align: center; + /* line-height: 80px; */ + font-size: 37px; + color: #2d5285; + font-weight: bold; + border-radius: 0 16px 16px 0; +} + +.cfg-status.status-off { + color: #b74545; +} + +.cfg-desc { + font-size: 29px; + color: #454444; + margin: 10px 0 14px 23px; +} + +.badge { + display: inline-block; + vertical-align: top; + height: 18px; + padding: 0 6px; + border-radius: 3px; + background: #f4cd00; + color: #fff; + font-size: 14px; + line-height: 18px; +} \ No newline at end of file diff --git a/resources/template/admin/html/index.html b/resources/template/admin/html/index.html new file mode 100644 index 0000000..ee92c0d --- /dev/null +++ b/resources/template/admin/html/index.html @@ -0,0 +1,408 @@ +{{extend defaultLayout}} {{block 'css'}} + +karin-plugin-kkk + +{{/block}} {{block 'main'}} +
+
+
+
kkk管理面板
+
+
+
+
Cookies相关
+
    +
  • +
    + 抖音ck + #kkk设置抖音ck + {{@data.cookies.douyin}} +
    +
    抖音ck,用于请求官方API数据
    +
  • +
  • +
    + B站ck + #kkk设置B站ck + {{@data.cookies.bilibili}} +
    +
    B站ck,用于请求官方API数据
    +
  • +
  • +
    + 快手ck + #kkk设置快手ck + {{@data.cookies.kuaishou}} +
    +
    快手ck,用于请求官方API数据
    +
  • +
+
+
+
应用设置
+
    +
  • +
    + 默认解析 + #kkk设置默认解析 + 开启/关闭 + {{@data.app.defaulttool}} +
    +
    识别最高优先级,修改后重启生效
    +
  • +
  • +
    + 解析优先级 + #kkk设置优先级 + 优先级 + {{@data.app.priority}} +
    +
    自定义优先级,「默认解析」关闭后才会生效。修改后重启生效
    +
  • +
  • +
    + 发送合并转发消息 + #kkk设置转发 + 开启/关闭 + {{@data.app.sendforwardmsg}} +
    +
    发送合并转发消息,可能多用于抖音解析
    +
  • +
  • +
    + 缓存删除 + #kkk设置缓存删除 + 开启/关闭 + {{@data.app.rmmp4}} +
    +
    自动删除下载到本地的视频缓存。保存目录/resources/kkkdownload,若要关闭请随时留意硬盘容量
    +
  • +
  • +
    + API服务 + #kkk设置API服务 + 开启/关闭 + {{@data.app.APIServer}} +
    +
    本地部署一个视频解析API服务,接口范围为本插件用到的所有,默认端口4567
    +
  • +
  • +
    + 主题色 + #kkk设置主题 + 0 ~ 2 + {{@data.app.Theme}} +
    +
    渲染评论图和推送图的主题色。0:早晨和傍晚6点自动切换浅色和深色;1:浅色;2:深色
    +
  • +
+
+
+
抖音相关
+
    +
  • +
    + 抖音解析开关 + #kkk设置抖音解析 + 开启/关闭 + {{@data.douyin.switch}} +
    +
    单独开关,受「总开关」影响
    +
  • +
  • +
    + 抖音解析提示 + #kkk设置抖音解析提示 + 开启/关闭 + {{@data.douyin.tip}} +
    +
    发送提示信息:“检测到抖音链接,开始解析”
    +
  • +
  • +
    + 抖音评论解析 + #kkk设置抖音评论 + 开启/关闭 + {{@data.douyin.comment}} +
    +
    开启抖音评论解析
    +
  • +
  • +
    + 抖音评论数量 + #kkk设置抖音评论数量 + 1 ~ x + {{@data.douyin.numcomment}} +
    +
    设置接口返回的评论数量,范围 x 条
    +
  • +
  • +
    + 抖音推送 + #kkk设置抖音推送 + 开启/关闭 + {{@data.douyin.push.switch}} +
    +
    开启后需重启;使用[#设置抖音推送+抖音号]配置推送列表
    +
  • +
  • +
    + 抖音推送日志 + #kkk设置抖音推送日志 + 开启/关闭 + {{@data.douyin.push.log}} +
    +
    打开或关闭定时任务日志
    +
  • +
  • +
    + 抖音推送设置权限 + #kkk设置抖音推送设置权限 + 权限 + {{@data.douyin.push.permission}} +
    +
    all为所有人,admin为管理员,master为主人,group.owner为群主,group.admin为群管理员
    +
  • +
  • +
    + 抖音推送表达式 + #kkk设置抖音推送表达式 + Cron表达式 + {{@data.douyin.push.cron}} +
    +
    建议使用后台面板设置
    +
  • +
  • +
    + 图集BGM是否使用高清语音发送 + #kkk设置抖音高清语音 + 开启/关闭 + {{@data.douyin.sendHDrecord}} +
    +
    高清语音「ios/PC」系统均无法播放,自行衡量开关
    +
  • +
  • +
    + 抖音推送解析 + #kkk设置抖音推送解析 + 开启/关闭 + {{@data.douyin.push.parsedynamic}} +
    +
    推送新作品时一同解析其中内容并发送
    +
  • +
+
+
+
bilibili相关
+
    +
  • +
    + B站解析开关 + #kkk设置B站解析 + 开启/关闭 + {{@data.bilibili.switch}} +
    +
    单独开关,受「总开关」影响
    +
  • +
  • +
    + B站解析提示 + #kkk设置B站解析提示 + 开启/关闭 + {{@data.bilibili.tip}} +
    +
    发送提示信息:“检测到B站链接,开始解析”
    +
  • +
  • +
    + B站评论解析 + #kkk设置B站评论 + 开启/关闭 + {{@data.bilibili.comment}} +
    +
    开启B站评论解析
    +
  • +
  • +
    + B站评论数量 + #kkk设置B站评论数量 + 1 ~ x + {{@data.bilibili.numcomment}} +
    +
    设置接口返回的评论数量,范围 x 条
    +
  • +
  • +
    + B站推送 + #kkk设置B站推送 + 开启/关闭 + {{@data.bilibili.push.switch}} +
    +
    开启后需重启;使用[#设置B站推送+用户UID]配置推送列表
    +
  • +
  • +
    + B站推送日志 + #kkk设置B站推送日志 + 开启/关闭 + {{@data.bilibili.push.log}} +
    +
    打开或关闭定时任务日志
    +
  • +
  • +
    + B站推送设置权限 + #kkk设置B站推送设置权限 + 权限 + {{@data.bilibili.push.permission}} +
    +
    all为所有人,admin为管理员,master为主人,group.owner为群主,group.admin为群管理员
    +
  • +
  • +
    + B站推送表达式 + #kkk设置B站推送表达式 + Cron表达式 + {{@data.bilibili.push.cron}} +
    +
    建议使用[后台面板]设置
    +
  • +
  • +
    + B站推送解析 + #kkk设置B站推送解析 + 开启/关闭 + {{@data.bilibili.push.parsedynamic}} +
    +
    推送新作品时一同解析其中内容并发送(暂只支持「视频动态」与「图文动态」)
    +
  • +
  • +
    + B站视频解析内容优先 + #kkk设置B站内容优先 + 开启/关闭 + {{@data.bilibili.videopriority}} +
    +
    解析视频是否优先保内容,打开为优先保证上传将使用最低分辨率,关闭为优先保清晰度将使用最高分辨率
    +
  • +
+
+
+
推送相关
+
    +
  • +
    + 抖音推送 + #设置抖音推送 + 抖音号 + {{@data.pushlist.douyin}} +
    +
    再发送此命令一次即可取消在当前群的推送
    +
  • +
  • +
    + B站推送 + #设置B站推送 + 用户UID + {{@data.pushlist.bilibili}} +
    +
    再发送此命令一次即可取消在当前群的推送
    +
  • +
+
+
+
快手相关
+
    +
  • +
    + 快手解析开关 + #kkk设置快手解析 + 开启/关闭 + {{@data.kuaishou.switch}} +
    +
    快手解析开关,单独开关,受「总开关」影响
    +
  • +
+
    +
  • +
    + 快手解析提示 + #kkk设置快手解析提示 + 开启/关闭 + {{@data.kuaishou.kuaishoutip}} +
    +
    发送提示信息:“检测到快手链接,开始解析”
    +
  • +
+
    +
  • +
    + 快手评论数量 + #kkk设置快手评论数量 + 1 ~ 30 + {{@data.kuaishou.kuaishounumcomments}} +
    +
    快手评论数量,范围1 ~ 30条
    +
  • +
+
+
+
上传设置(「视频上传拦截」为最高优先级)
+
    +
  • +
    + 转换为base64格式 + #kkk设置上传base64 + 开启/关闭 + {{@data.upload.sendbase64}} +
    +
    发送视频经本插件转换为base64格式后再发送,适合Karin与Bot不在同一网络环境下开启。若发送的文件过大,可能会卡死系统,酌情开启(2c4g配置实测发送 90MB 左右 + base64格式编码的视频文件将导致系统无响应)
    +
  • +
  • +
    + 视频上传拦截 + #kkk设置上传拦截 + 开启/关闭 + {{@data.upload.usefilelimit}} +
    +
    开启后会根据视频文件大小判断是否需要上传,需配置「视频大小拦截值」。(B站番剧无影响)
    +
  • +
  • +
    + 视频拦截阈值 + #kkk设置上传拦截阈值 + 0 ~ x + {{@data.upload.filelimit}} +
    +
    视频文件大于该数值则直接结束任务,不会上传,单位: MB,「视频上传拦截」开启后才会生效。(B站番剧无影响)
    +
  • +
  • +
    + 压缩视频 + #kkk设置上传压缩 + 开启/关闭 + {{@data.upload.compress}} +
    +
    开启后会将视频文件压缩后再上传,适合上传大文件,任务过程中会吃满CPU,对低配服务器不友好。需配置「压缩触发阈值」与「压缩后的值」
    +
  • +
  • +
    + 压缩触发阈值 + #kkk设置上传压缩触发值 + 0 ~ x + {{@data.upload.compresstrigger}} +
    +
    触发视频压缩的阈值,单位:MB。当文件大小超过该值时,才会压缩视频,「压缩视频」开启后才会生效
    +
  • +
  • +
    + 压缩后的值 + #kkk设置上传压缩后的值 + 0 ~ x + {{@data.upload.compressvalue}} +
    +
    若视频文件大小大于「压缩触发阈值」的值,则会进行压缩至该值(±5%),「压缩视频」开启后才会生效
    +
  • +
  • +
    + 群文件上传 + #kkk设置上传群文件 + 开启/关闭 + {{@data.upload.usegroupfile}} +
    +
    使用群文件上传,开启后会将视频文件上传到群文件中,需配置「群文件上传阈值」
    +
  • +
  • +
    + 群文件上传阈值 + #kkk设置群上传文件阈值 + 0 ~ x + {{@data.upload.groupfilevalue}} +
    +
    群文件上传阈值,当文件大小超过该值时将使用群文件上传,单位:MB,「使用群文件上传」开启后才会生效
    +
  • +
+
+
+
其他设置
+
    +
  • +
    + 渲染精度 + #kkk设置渲染精度 + 100 + {{@data.app.renderScale}} +
    +
    可选值50~200,建议100。设置高精度会提高图片的精细度,过高可能会影响渲染与发送速度
    +
  • +
+
+{{/block}} + + \ No newline at end of file diff --git a/resources/template/bilibili/css/bangumi.css b/resources/template/bilibili/css/bangumi.css new file mode 100644 index 0000000..32a8703 --- /dev/null +++ b/resources/template/bilibili/css/bangumi.css @@ -0,0 +1,863 @@ +@charset "UTF-8"; +@import '../../../font/HarmonyOS_Sans_SC_Black/font.css'; +@import '../../../font/HarmonyOS_Sans_SC_Bold/font.css'; +@import '../../../font/HarmonyOS_Sans_SC_Light/font.css'; +@import '../../../font/HarmonyOS_Sans_SC_Medium/font.css'; +@import '../../../font//HarmonyOS_Sans_SC_Regular/font.css'; +@import '../../../font/HarmonyOS_Sans_SC_Thin/font.css'; + +code[class*='language-'], +pre[class*='language-'] { + color: #333; + background: 0 0; + font-family: 'HarmonyOS Sans SC', Consolas, 'Liberation Mono', Menlo, Courier, monospace; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + line-height: 1.4; + -moz-tab-size: 8; + -o-tab-size: 8; + tab-size: 8; + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +pre[class*='language-'] { + padding: 0.8em; + overflow: auto; + border-radius: 3px; + background: #f4f4f4; +} + +:not(pre)>code[class*='language-'] { + padding: 0.1em; + border-radius: 0.3em; + white-space: normal; + background: #f5f5f5; +} + +.token.blockquote, +.token.comment { + color: #969896; +} + +.token.cdata { + color: #183691; +} + +.token.doctype, +.token.macro.property, +.token.punctuation, +.token.variable { + color: #333; +} + +.token.builtin, +.token.important, +.token.keyword, +.token.operator, +.token.rule { + color: #a71d5d; +} + +.token.attr-value, +.token.regex, +.token.string, +.token.url { + color: #183691; +} + +.token.atrule, +.token.boolean, +.token.code, +.token.command, +.token.constant, +.token.entity, +.token.number, +.token.property, +.token.symbol { + color: #0086b3; +} + +.token.prolog, +.token.selector, +.token.tag { + color: #63a35c; +} + +.token.attr-name, +.token.class, +.token.class-name, +.token.function, +.token.id, +.token.namespace, +.token.pseudo-class, +.token.pseudo-element, +.token.url-reference .token.variable { + color: #795da3; +} + +.token.entity { + cursor: help; +} + +.token.title, +.token.title .token.punctuation { + font-weight: 700; + color: #1d3e81; +} + +.token.list { + color: #ed6a43; +} + +.token.inserted { + background-color: #eaffea; + color: #55a532; +} + +.token.deleted { + background-color: #ffecec; + color: #bd2c00; +} + +.token.bold { + font-weight: 700; +} + +.token.italic { + font-style: italic; +} + +.language-json .token.property { + color: #183691; +} + +.language-markup .token.tag .token.punctuation { + color: #333; +} + +.language-css .token.function, +code.language-css { + color: #0086b3; +} + +.language-yaml .token.atrule { + color: #63a35c; +} + +code.language-yaml { + color: #183691; +} + +.language-ruby .token.function { + color: #333; +} + +.language-markdown .token.url { + color: #795da3; +} + +.language-makefile .token.symbol { + color: #795da3; +} + +.language-makefile .token.variable { + color: #183691; +} + +.language-makefile .token.builtin { + color: #0086b3; +} + +.language-bash .token.keyword { + color: #0086b3; +} + +pre[data-line] { + position: relative; + padding: 1em 0 1em 3em; +} + +pre[data-line] .line-highlight-wrapper { + position: absolute; + top: 0; + left: 0; + background-color: transparent; + display: block; + width: 100%; +} + +pre[data-line] .line-highlight { + position: absolute; + left: 0; + right: 0; + padding: inherit 0; + margin-top: 1em; + background: hsla(24, 20%, 50%, 0.08); + background: -webkit-gradient(linear, left top, right top, color-stop(70%, hsla(24, 20%, 50%, 0.1)), to(hsla(24, 20%, 50%, 0))); + background: -webkit-linear-gradient(left, hsla(24, 20%, 50%, 0.1) 70%, hsla(24, 20%, 50%, 0)); + background: -moz-linear-gradient(left, hsla(24, 20%, 50%, 0.1) 70%, hsla(24, 20%, 50%, 0)); + background: -o-linear-gradient(left, hsla(24, 20%, 50%, 0.1) 70%, hsla(24, 20%, 50%, 0)); + background: linear-gradient(to right, hsla(24, 20%, 50%, 0.1) 70%, hsla(24, 20%, 50%, 0)); + pointer-events: none; + line-height: inherit; + white-space: pre; +} + +pre[data-line] .line-highlight:before, +pre[data-line] .line-highlight[data-end]:after { + content: attr(data-start); + position: absolute; + top: 0.4em; + left: 0.6em; + min-width: 1em; + padding: 0 0.5em; + background-color: hsla(24, 20%, 50%, 0.4); + color: #f4f1ef; + font: bold 65%/1.5 sans-serif; + text-align: center; + vertical-align: 0.3em; + border-radius: 999px; + text-shadow: none; + -webkit-box-shadow: 0 1px #fff; + box-shadow: 0 1px #fff; +} + +pre[data-line] .line-highlight[data-end]:after { + content: attr(data-end); + top: auto; + bottom: 0.4em; +} + +html body { + font-family: 'HarmonyOS_Sans', 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif; + font-size: 16px; + line-height: 1.6; + color: #333; + background-color: #fff; + overflow: initial; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + word-wrap: break-word; +} + +html body> :first-child { + margin-top: 0; +} + +html body h1, +html body h2, +html body h3, +html body h4, +html body h5, +html body h6 { + line-height: 1.2; + margin-top: 1em; + margin-bottom: 16px; + color: #000; +} + +html body h1 { + font-size: 2.25em; + font-weight: 300; + padding-bottom: 0.3em; +} + +html body h2 { + font-size: 1.75em; + font-weight: 400; + padding-bottom: 0.3em; +} + +html body h3 { + font-size: 1.5em; + font-weight: 500; +} + +html body h4 { + font-size: 1.25em; + font-weight: 600; +} + +html body h5 { + font-size: 1.1em; + font-weight: 600; +} + +html body h6 { + font-size: 1em; + font-weight: 600; +} + +html body h1, +html body h2, +html body h3, +html body h4, +html body h5 { + font-weight: 600; +} + +html body h5 { + font-size: 1em; +} + +html body h6 { + color: #5c5c5c; +} + +html body strong { + color: #000; +} + +html body del { + color: #5c5c5c; +} + +html body a:not([href]) { + color: inherit; + text-decoration: none; +} + +html body a { + color: #08c; + text-decoration: none; +} + +html body a:hover { + color: #00a3f5; + text-decoration: none; +} + +html body img { + max-width: 100%; +} + +html body>p { + margin-top: 0; + margin-bottom: 16px; + word-wrap: break-word; +} + +html body>ol, +html body>ul { + margin-bottom: 16px; +} + +html body ol, +html body ul { + padding-left: 2em; +} + +html body ol.no-list, +html body ul.no-list { + padding: 0; + list-style-type: none; +} + +html body ol ol, +html body ol ul, +html body ul ol, +html body ul ul { + margin-top: 0; + margin-bottom: 0; +} + +html body li { + margin-bottom: 0; +} + +html body li.task-list-item { + list-style: none; +} + +html body li>p { + margin-top: 0; + margin-bottom: 0; +} + +html body .task-list-item-checkbox { + margin: 0 0.2em 0.25em -1.8em; + vertical-align: middle; +} + +html body .task-list-item-checkbox:hover { + cursor: pointer; +} + +html body blockquote { + margin: 16px 0; + font-size: inherit; + padding: 0 15px; + color: #5c5c5c; + background-color: #f0f0f0; + border-left: 4px solid #d6d6d6; +} + +html body blockquote> :first-child { + margin-top: 0; +} + +html body blockquote> :last-child { + margin-bottom: 0; +} + +html body hr { + height: 4px; + margin: 32px 0; + background-color: #d6d6d6; + border: 0 none; +} + +html body table { + margin: 10px 0 15px 0; + border-collapse: collapse; + border-spacing: 0; + display: block; + width: 100%; + overflow: auto; + word-break: normal; + word-break: keep-all; +} + +html body table th { + font-weight: 700; + color: #000; +} + +html body table td, +html body table th { + border: 1px solid #d6d6d6; + padding: 6px 13px; +} + +html body dl { + padding: 0; +} + +html body dl dt { + padding: 0; + margin-top: 16px; + font-size: 1em; + font-style: italic; + font-weight: 700; +} + +html body dl dd { + padding: 0 16px; + margin-bottom: 16px; +} + +html body code { + font-family: 'HarmonyOS_Sans', Menlo, Monaco, Consolas, 'Courier New', monospace; + font-size: 0.85em; + color: #000; + background-color: #f0f0f0; + border-radius: 3px; + padding: 0.2em 0; +} + +html body code::after, +html body code::before { + letter-spacing: -0.2em; + content: '\00a0'; +} + +html body pre>code { + padding: 0; + margin: 0; + word-break: normal; + white-space: pre; + background: 0 0; + border: 0; +} + +html body .highlight { + margin-bottom: 16px; +} + +html body .highlight pre, +html body pre { + padding: 1em; + overflow: auto; + line-height: 1.45; + border: #d6d6d6; + border-radius: 3px; +} + +html body .highlight pre { + margin-bottom: 0; + word-break: normal; +} + +html body pre code, +html body pre tt { + display: inline; + max-width: initial; + padding: 0; + margin: 0; + overflow: initial; + line-height: inherit; + word-wrap: normal; + background-color: transparent; + border: 0; +} + +html body pre code:after, +html body pre code:before, +html body pre tt:after, +html body pre tt:before { + content: normal; +} + +html body blockquote, +html body dl, +html body ol, +html body p, +html body pre, +html body ul { + margin-top: 0; + margin-bottom: 16px; +} + +html body kbd { + color: #000; + border: 1px solid #d6d6d6; + border-bottom: 2px solid #c7c7c7; + padding: 2px 4px; + background-color: #f0f0f0; + border-radius: 3px; +} + +@media print { + html body { + background-color: #fff; + } + + html body h1, + html body h2, + html body h3, + html body h4, + html body h5, + html body h6 { + color: #000; + page-break-after: avoid; + } + + html body blockquote { + color: #5c5c5c; + } + + html body pre { + page-break-inside: avoid; + } + + html body table { + display: table; + } + + html body img { + display: block; + max-width: 100%; + max-height: 100%; + } + + html body code, + html body pre { + word-wrap: break-word; + white-space: pre; + } +} + +.markdown-preview { + width: 100%; + height: 100%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +.markdown-preview ul { + list-style: disc; +} + +.markdown-preview ul ul { + list-style: circle; +} + +.markdown-preview ul ul ul { + list-style: square; +} + +.markdown-preview ol { + list-style: decimal; +} + +.markdown-preview ol ol, +.markdown-preview ul ol { + list-style-type: lower-roman; +} + +.markdown-preview ol ol ol, +.markdown-preview ol ul ol, +.markdown-preview ul ol ol, +.markdown-preview ul ul ol { + list-style-type: lower-alpha; +} + +.markdown-preview .newpage, +.markdown-preview .pagebreak { + page-break-before: always; +} + +.markdown-preview pre.line-numbers { + position: relative; + padding-left: 3.8em; + counter-reset: linenumber; +} + +.markdown-preview pre.line-numbers>code { + position: relative; +} + +.markdown-preview pre.line-numbers .line-numbers-rows { + position: absolute; + pointer-events: none; + top: 1em; + font-size: 100%; + left: 0; + width: 3em; + letter-spacing: -1px; + border-right: 1px solid #999; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.markdown-preview pre.line-numbers .line-numbers-rows>span { + pointer-events: none; + display: block; + counter-increment: linenumber; +} + +.markdown-preview pre.line-numbers .line-numbers-rows>span:before { + content: counter(linenumber); + color: #999; + display: block; + padding-right: 0.8em; + text-align: right; +} + +.markdown-preview .mathjax-exps .MathJax_Display { + text-align: center !important; +} + +.markdown-preview:not([data-for='preview']) .code-chunk .code-chunk-btn-group { + display: none; +} + +.markdown-preview:not([data-for='preview']) .code-chunk .status { + display: none; +} + +.markdown-preview:not([data-for='preview']) .code-chunk .output-div { + margin-bottom: 16px; +} + +.markdown-preview .md-toc { + padding: 0; +} + +.markdown-preview .md-toc .md-toc-link-wrapper .md-toc-link { + display: inline; + padding: 0.25rem 0; +} + +.markdown-preview .md-toc .md-toc-link-wrapper .md-toc-link div, +.markdown-preview .md-toc .md-toc-link-wrapper .md-toc-link p { + display: inline; +} + +.markdown-preview .md-toc .md-toc-link-wrapper.highlighted .md-toc-link { + font-weight: 800; +} + +.scrollbar-style::-webkit-scrollbar { + width: 8px; +} + +.scrollbar-style::-webkit-scrollbar-track { + border-radius: 10px; + background-color: transparent; +} + +.scrollbar-style::-webkit-scrollbar-thumb { + border-radius: 5px; + background-color: rgba(150, 150, 150, 0.66); + border: 4px solid rgba(150, 150, 150, 0.66); + background-clip: content-box; +} + +html body[for='html-export']:not([data-presentation-mode]) { + position: relative; + width: 100%; + height: 100%; + top: 0; + left: 0; + margin: 0; + padding: 0; + overflow: auto; +} + +html body[for='html-export']:not([data-presentation-mode]) .markdown-preview { + position: relative; + top: 0; + min-height: 100vh; +} + +@media screen and (min-width: 914px) { + html body[for='html-export']:not([data-presentation-mode]) .markdown-preview { + padding: 2em -webkit-calc(50% - 457px + 2em); + padding: 2em -moz-calc(50% - 457px + 2em); + padding: 2em calc(50% - 457px + 2em); + } +} + +@media screen and (max-width: 914px) { + html body[for='html-export']:not([data-presentation-mode]) .markdown-preview { + padding: 2em; + } +} + +@media screen and (max-width: 450px) { + html body[for='html-export']:not([data-presentation-mode]) .markdown-preview { + font-size: 14px !important; + padding: 1em; + } +} + +@media print { + html body[for='html-export']:not([data-presentation-mode]) #sidebar-toc-btn { + display: none; + } +} + +html body[for='html-export']:not([data-presentation-mode]) #sidebar-toc-btn { + position: fixed; + bottom: 8px; + left: 8px; + font-size: 28px; + cursor: pointer; + color: inherit; + z-index: 99; + width: 32px; + text-align: center; + opacity: 0.4; +} + +html body[for='html-export']:not([data-presentation-mode])[html-show-sidebar-toc] #sidebar-toc-btn { + opacity: 1; +} + +html body[for='html-export']:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc { + position: fixed; + top: 0; + left: 0; + width: 300px; + height: 100%; + padding: 32px 0 48px 0; + font-size: 14px; + -webkit-box-shadow: 0 0 4px rgba(150, 150, 150, 0.33); + box-shadow: 0 0 4px rgba(150, 150, 150, 0.33); + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + overflow: auto; + background-color: inherit; +} + +html body[for='html-export']:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc::-webkit-scrollbar { + width: 8px; +} + +html body[for='html-export']:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc::-webkit-scrollbar-track { + border-radius: 10px; + background-color: transparent; +} + +html body[for='html-export']:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc::-webkit-scrollbar-thumb { + border-radius: 5px; + background-color: rgba(150, 150, 150, 0.66); + border: 4px solid rgba(150, 150, 150, 0.66); + background-clip: content-box; +} + +html body[for='html-export']:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc a { + text-decoration: none; +} + +html body[for='html-export']:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc .md-toc { + padding: 0 16px; +} + +html body[for='html-export']:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc .md-toc .md-toc-link-wrapper .md-toc-link { + display: inline; + padding: 0.25rem 0; +} + +html body[for='html-export']:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc .md-toc .md-toc-link-wrapper .md-toc-link div, +html body[for='html-export']:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc .md-toc .md-toc-link-wrapper .md-toc-link p { + display: inline; +} + +html body[for='html-export']:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc .md-toc .md-toc-link-wrapper.highlighted .md-toc-link { + font-weight: 800; +} + +html body[for='html-export']:not([data-presentation-mode])[html-show-sidebar-toc] .markdown-preview { + left: 300px; + width: -webkit-calc(100% - 300px); + width: -moz-calc(100% - 300px); + width: calc(100% - 300px); + padding: 2em -webkit-calc(50% - 457px - 300px / 2); + padding: 2em -moz-calc(50% - 457px - 300px / 2); + padding: 2em calc(50% - 457px - 300px / 2); + margin: 0; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +@media screen and (max-width: 1274px) { + html body[for='html-export']:not([data-presentation-mode])[html-show-sidebar-toc] .markdown-preview { + padding: 2em; + } +} + +@media screen and (max-width: 450px) { + html body[for='html-export']:not([data-presentation-mode])[html-show-sidebar-toc] .markdown-preview { + width: 100%; + } +} + +html body[for='html-export']:not([data-presentation-mode]):not([html-show-sidebar-toc]) .markdown-preview { + left: 50%; + -webkit-transform: translateX(-50%); + -moz-transform: translateX(-50%); + -ms-transform: translateX(-50%); + -o-transform: translateX(-50%); + transform: translateX(-50%); +} + +html body[for='html-export']:not([data-presentation-mode]):not([html-show-sidebar-toc]) .md-sidebar-toc { + display: none; +} + +/* Please visit the URL below for more information: */ +/* https://shd101wyy.github.io/markdown-preview-enhanced/#/customize-css */ \ No newline at end of file diff --git a/resources/template/bilibili/css/comment.css b/resources/template/bilibili/css/comment.css new file mode 100644 index 0000000..9b66832 --- /dev/null +++ b/resources/template/bilibili/css/comment.css @@ -0,0 +1,446 @@ +body.light-mode .container { + background-color: #f4f4f4; + margin: 0; + padding: 20px; + width: 1440px; + height: auto; +} + +.comment-container { + max-width: 100%; + /* 宽度设置为百分之百,以适应不同屏幕大小 */ + margin: 0 0 70px 0; + /* overflow: auto; */ +} + +.comment { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + /* border-bottom: 1px solid #e7d8d8; */ + padding: 0px 40px 0px 40px; + position: relative; +} + +.user-avatar { + margin-top: 50px; + width: 187.5px; + height: 187.5px; + border-radius: 50%; + margin-right: 33.75px; + -webkit-box-shadow: 0 20px 50px 0 rgb(0 0 0 / 30%); + box-shadow: 0 20px 50px 0 rgb(0 0 0 / 30%); + background: url('https://i0.hdslb.com/bfs/face/member/noface.jpg'); + position: absolute; +} + +.user-avatar-1 { + width: 220px; + height: 220px; + margin-right: 33.75px; + margin-top: 50px; + -webkit-transform: translateY(-7%) translateX(-8%) scale(1.5); + -moz-transform: translateY(-7%) translateX(-8%) scale(1.5); + -ms-transform: translateY(-7%) translateX(-8%) scale(1.5); + -o-transform: translateY(-7%) translateX(-8%) scale(1.5); + transform: translateY(-7%) translateX(-8%) scale(1.5); +} + +.user-avatar-2 { + width: 145px; + height: 145px; + margin-right: -140px; + -webkit-transform: translateY(97%) translateX(-116%) scale(0.5); + -moz-transform: translateY(97%) translateX(-116%) scale(0.5); + -ms-transform: translateY(97%) translateX(-116%) scale(0.5); + -o-transform: translateY(97%) translateX(-116%) scale(0.5); + transform: translateY(97%) translateX(-116%) scale(0.5); +} + +/* 当img元素为空时,设置元素透明度为0,图裂图标将被隐藏 */ +img[src=''], +img:not([src]) { + opacity: 0; +} + +.comment-content { + -webkit-box-flex: 1; + -webkit-flex: 1; + -moz-box-flex: 1; + -ms-flex: 1; + flex: 1; + /* overflow: hidden; */ +} + +.user-info { + margin-bottom: -50px; + font-size: 50px; + position: relative; + /* 将容器设置为相对定位 */ +} + +.user-info svg { + display: inline-block; + vertical-align: middle; + -webkit-transform: translateY(-5%) scale(0.5); + -moz-transform: translateY(-5%) scale(0.5); + -ms-transform: translateY(-5%) scale(0.5); + -o-transform: translateY(-5%) scale(0.5); + transform: translateY(-5%) scale(0.5); +} + +.Z3o6vw6l { + display: inline-block; + /* 使元素在一行显示 */ + padding: 0px 20px 2px 20px; + /* 调整内边距 */ + border-radius: 10px; + /* 添加圆角 */ + margin-left: 10px; + /* 调整左边距 */ + font-size: 45px; +} + +.comment-imgbox { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + margin: 20px 0; + overflow: hidden; + -webkit-box-shadow: 0 20px 50px 0 rgba(0, 0, 0, 0.3); + box-shadow: 0 20px 50px 0 rgba(0, 0, 0, 0.3); + border-radius: 25px; + width: 95%; + -webkit-box-flex: 1; + -webkit-flex: 1; + -moz-box-flex: 1; + -ms-flex: 1; + flex: 1; + /* 让容器自动调整大小 */ +} + +.comment-imgbox_1 { + border-radius: 25px; + -o-object-fit: contain; + object-fit: contain; + /* 图片按原比例完整显示在容器内 */ + width: 100%; + /* 让图片宽度充满父容器 */ + height: 100%; + /* 让图片高度充满父容器 */ +} + +.comment-text { + font-size: 60px; + -webkit-box-align: center; + -webkit-align-items: center; + -moz-box-align: center; + -ms-flex-align: center; + align-items: center; + letter-spacing: 0.5px; + position: relative; + line-height: 1.6; + white-space: pre-wrap; +} + +.comment-text img { + display: inline-block; + vertical-align: middle; + -webkit-transform: translateY(-10%) scale(0.9); + -moz-transform: translateY(-10%) scale(0.9); + -ms-transform: translateY(-10%) scale(0.9); + -o-transform: translateY(-10%) scale(0.9); + transform: translateY(-10%) scale(0.9); +} + +.like-section { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -webkit-align-items: center; + -moz-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: justify; + -webkit-justify-content: space-between; + -moz-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + /* 将子元素分别靠左和靠右 */ + color: #888; + margin-top: 37.5px; + white-space: nowrap; + /* 防止文本换行 */ +} + +.info-content { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -webkit-align-items: center; + -moz-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-flex: 1; + -webkit-flex: 1; + -moz-box-flex: 1; + -ms-flex: 1; + flex: 1; +} + +.additional-info { + font-size: 45px; + letter-spacing: 2px; + /* 调整字间距*/ +} + +.like_info { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + margin-left: auto; +} + +.like-icon { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + margin-left: auto; +} + +.like-count { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -webkit-align-items: center; + -moz-box-align: center; + -ms-flex-align: center; + align-items: center; + font-size: 50px; + /* 调整字体大小 */ + margin-left: auto; +} + +.video_info_container { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: justify; + -webkit-justify-content: space-between; + -moz-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-align: center; + -webkit-align-items: center; + -moz-box-align: center; + -ms-flex-align: center; + align-items: center; + /* 垂直居中 */ + max-width: 1200px; + margin: 0 auto; + padding: 20px; + color: #3a3a3a; +} + +.svg_container { + margin-top: 10px; + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -moz-box-orient: vertical; + -moz-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + margin-left: -40px; +} + +.svg_container img { + width: 580px; + height: auto; + margin-bottom: 20px; +} + +.top-info { + /* margin-top: 50px; 添加顶部间距 */ + -webkit-box-align: center; + -webkit-align-items: center; + -moz-box-align: center; + -ms-flex-align: center; + align-items: center; + padding: 10px; + + letter-spacing: 6px; + /* 调整字间距*/ + font-size: 45px; + white-space: normal; + /* 允许自动换行 */ + word-break: break-all; + /* 如果单词过长,允许在任意位置换行 */ + text-align: left; +} + +.qrcode_box { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -moz-box-orient: vertical; + -moz-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-align: center; + -webkit-align-items: center; + -moz-box-align: center; + -ms-flex-align: center; + align-items: center; + margin-right: -40px; +} + +.qrcode { + margin-top: 80px; +} + +.qrcode_text { + font-size: 45px; + margin-top: 20px; + /* 调整垂直间距 */ +} + +/* 深色模式样式 */ +body.dark-mode { + background-color: #121212; + color: #fff; + /* 其他深色模式下的样式 */ +} + +/* 浅色模式样式 */ +body.light-mode { + background-color: #f4f4f4; + color: #333; + /* 其他浅色模式下的样式 */ +} + +body.dark-mode .container { + background-color: #121212; + color: #fff; +} + +/* 针对特定元素的样式 */ +body.dark-mode .comment-text { + color: #f4f4f4; +} + +body.dark-mode .video_info_container { + color: #c3c3c3; +} + +body.dark-mode .comment-text img { + display: inline-block; + vertical-align: middle; + -webkit-transform: translateY(-10%) scale(0.9); + -moz-transform: translateY(-10%) scale(0.9); + -ms-transform: translateY(-10%) scale(0.9); + -o-transform: translateY(-10%) scale(0.9); + transform: translateY(-10%) scale(0.9); +} + +body.light-mode .comment-text { + color: #333; +} + +body.light-mode .comment-imgbox { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + margin: 20px 0; + overflow: hidden; + -webkit-box-shadow: 0 20px 50px 0 rgba(0, 0, 0, 0.3); + box-shadow: 0 20px 50px 0 rgba(0, 0, 0, 0.3); + border-radius: 25px; + width: 95%; + -webkit-box-flex: 1; + -webkit-flex: 1; + -moz-box-flex: 1; + -ms-flex: 1; + flex: 1; +} + +.user-avatar .comment-imgbox { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + margin: 20px 0; + overflow: hidden; + -webkit-box-shadow: 0 20px 50px 0 rgba(0, 0, 0, 0.3); + box-shadow: 0 20px 50px 0 rgba(0, 0, 0, 0.3); + border-radius: 25px; + width: 95%; + -webkit-box-flex: 1; + -webkit-flex: 1; + -moz-box-flex: 1; + -ms-flex: 1; + flex: 1; +} + +body.dark-mode .comment-imgbox { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + margin: 20px 0; + overflow: hidden; + -webkit-box-shadow: 0px 10px 100px 0px #96969642; + box-shadow: 0px 10px 100px 0px #96969642; + border-radius: 25px; + width: 95%; + -webkit-box-flex: 1; + -webkit-flex: 1; + -moz-box-flex: 1; + -ms-flex: 1; + flex: 1; +} + +.dark-mode .user-avatar { + margin-bottom: 50px; + width: 187.5px; + height: 187.5px; + border-radius: 50%; + margin-right: 33.75px; + -o-object-fit: cover; + object-fit: cover; + -webkit-box-shadow: 0px 10px 20px 0px #96969642; + box-shadow: 0px 10px 20px 0px #96969642; +} \ No newline at end of file diff --git a/resources/template/bilibili/css/dynamic/DYNAMIC_TYPE_LIVE_RCMD.css b/resources/template/bilibili/css/dynamic/DYNAMIC_TYPE_LIVE_RCMD.css new file mode 100644 index 0000000..0c72f85 --- /dev/null +++ b/resources/template/bilibili/css/dynamic/DYNAMIC_TYPE_LIVE_RCMD.css @@ -0,0 +1,372 @@ +body.light-mode .container { + transform: scale(1.4); + transform-origin: 0 0; + position: relative; + background-color: #f4f4f4; + width: fit-content; + height: auto; +} + +body.dark-mode .container { + transform: scale(1.4); + transform-origin: 0 0; + position: relative; + background-color: #1a1a1a; + width: fit-content; + height: auto; +} + +.spacer1 { + height: 20px; +} + +.spacer2 { + height: 70px; +} + +.spacer3 { + height: 10px; +} + +.spacer4 { + height: 20px; +} + +.spacer5 { + height: 25px; +} + +.spacer6 { + height: 80px; +} + +.spacer7 { + height: 120px; +} + +.container { + width: 100% !important; +} + +.bitop { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + -webkit-box-align: center; + -webkit-align-items: center; + -moz-box-align: center; + -ms-flex-align: center; + align-items: center; + padding: 0 0 50px 0; +} + +.bitop svg { + width: 400px; + height: auto; +} + +.cover { + display: flex; + flex-direction: column; + align-items: center; +} + +.imgbox { + margin: 50px 0 0 0; + display: flex; + flex-direction: column; + align-items: center; + overflow: hidden; + box-shadow: 0px 10px 20px 0px #4343434f; + border-radius: 25px; + width: 95%; + flex: 1; +} + +.imgbox_1 { + border-radius: 25px; + object-fit: contain; + width: 100%; + height: 100%; +} + +.info { + display: flex !important; + flex-direction: column; + padding: 0 60px; +} + +body.light-mode .info_title { + font-weight: bolder; + font-size: 65px; + align-items: center; + letter-spacing: 1.5px; + position: relative; + word-wrap: break-word; +} + +body.dark-mode .info_title { + font-weight: bolder; + font-size: 65px; + align-items: center; + letter-spacing: 1.5px; + position: relative; + word-wrap: break-word; + color: #e7e7e7; +} + +body.light-mode .room_id { + color: #3d3d3d; + font-size: 45px; + align-items: center; + letter-spacing: 1.5px; + position: relative; + word-wrap: break-word; + letter-spacing: normal; +} + +body.dark-mode .room_id { + font-size: 45px; + align-items: center; + letter-spacing: 1.5px; + position: relative; + word-wrap: break-word; + color: #bbbbbb; + letter-spacing: normal; +} + +body.light-mode .room_create_time { + color: #3d3d3d; + letter-spacing: normal; + font-size: 35px; +} + +body.dark-mode .room_create_time { + color: #bbbbbb; + letter-spacing: normal; + font-size: 35px; +} + + +.under { + display: flex; + width: auto; + height: 100%; + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -moz-box-orient: vertical; + -moz-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; +} + +body.light-mode .other_text { + width: inherit; + color: #454545; + font-size: 70px; + text-align: right; + margin: 0 20px -45px 0; + z-index: -1; +} + +body.dark-mode .other_text { + width: inherit; + color: #bbbbbb; + font-size: 70px; + text-align: right; + margin: 0 20px -45px 0; + z-index: -1; +} + +.rectangular_box { + height: auto; + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: justify; + -webkit-justify-content: space-between; + -moz-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + padding: 70px 0 0 0; + -webkit-backdrop-filter: blur(3px); + backdrop-filter: blur(5px); + -webkit-box-align: center; + -webkit-align-items: center; + -moz-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +.user { + display: flex; + flex-direction: column; + margin: 0 0 0 45px; +} + +.userinfo { + display: flex; + justify-content: flex-start; + align-items: flex-start; + flex-direction: column; +} + +.userinfo_text { + display: flex; + font-size: 2em; + color: #2f2f2fb8; + padding: 25px 0 0 150px; + flex-direction: column; + align-items: flex-start; + width: 100%; + letter-spacing: 2.5px; +} + +.name_and_followers { + display: flex; + flex-direction: row; + align-items: center; + margin-bottom: 5px; +} + +.livestat { + width: 130px; + height: auto; +} + +body.dark-mode .fans { + color: #4d4d4d; + font-size: 35px; +} + +body.dark-mode .fans { + color: #dbdbdb; + font-size: 35px; +} + +.avatar { + margin: 0 15px 0 0; + border-radius: 50%; + height: auto; + width: 130px; +} + +.avatar-1 { + width: 220px; + height: 220px; + margin-right: -255px; + margin-top: 50px; + transform: translateY(-11%) translateX(-105%) scale(1); +} + +/* 当img元素为空时,设置元素透明度为0,图裂图标将被隐藏 */ +img[src=''], +img:not([src]) { + opacity: 0; +} + +.avatarinfo { + display: flex; + align-items: center; + gap: 40px; +} + +body.light-mode .username { + font-size: 60px; + color: #1a1a1a; +} + +body.dark-mode .username { + font-size: 60px; + color: #e7e7e7; +} + +body.light-mode .fans { + font-size: 35px; + color: #1a1a1a; +} + +body.dark-mode .fans { + font-size: 35px; + color: #e7e7e7; +} + +.qrcode_box { + display: -webkit-box !important; + display: -webkit-flex !important; + display: -moz-box !important; + display: -ms-flexbox !important; + display: flex !important; + margin: 30px 20px 0 0 !important; + -webkit-box-align: center !important; + -webkit-align-items: center !important; + -moz-box-align: center !important; + -ms-flex-align: center !important; + align-items: center !important; + -webkit-box-orient: vertical; + -webkit-box-direction: reverse; + -webkit-flex-direction: column-reverse; + -moz-box-orient: vertical; + -moz-box-direction: reverse; + -ms-flex-direction: column-reverse; + flex-direction: column-reverse; +} + +body.light-mode .qrcode_text { + font-size: 50px; + color: #2f2f2fb8; + margin-left: 10px; + text-align: right; + margin-right: 10px; +} + +body.dark-mode .qrcode_text { + font-size: 50px; + color: #c3c3c3; + margin-left: 10px; + text-align: right; + margin-right: 10px; +} + +body.light-mode .t { + letter-spacing: 10px; + font-size: 50px; + color: #5d5d5d; +} + +body.dark-mode .t { + letter-spacing: 10px; + font-size: 50px; + color: #bbbbbb; +} + +body.light-mode #qrcode { + border: 7px dashed #3a3a3a; + padding: 10px; + border-radius: 2%; +} + +body.dark-mode #qrcode { + border: 7px dashed #C3C3C3; + padding: 10px; + border-radius: 2%; +} + +#qrcode img { + width: 350px; + /* height: 150px; */ +} + +.ftext { + color: #808080; + font-size: 15px; +} \ No newline at end of file diff --git a/resources/template/bilibili/css/dynamic/base.css b/resources/template/bilibili/css/dynamic/base.css new file mode 100644 index 0000000..23f27c8 --- /dev/null +++ b/resources/template/bilibili/css/dynamic/base.css @@ -0,0 +1,329 @@ +body.light-mode .container { + position: relative; + background-color: #f4f4f4; + width: 1440px; + height: auto; +} + +body.dark-mode .container { + position: relative; + background-color: #1A1A1A; + width: 1440px; + height: auto; +} + +.spacer1 { + height: 60px; +} + +.spacer2 { + height: 82px; +} + +.spacer3 { + height: 50px; +} + +.spacer4 { + height: 60px; +} + +.spacer5 { + height: 10px; +} + +.spacer6 { + height: 30px; +} + +.container { + width: 100% !important; + margin: 0 auto; +} + +body.light-mode .bitop { + color: #3e3e3eb8; + font-size: 65px; + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -webkit-align-items: center; + -moz-box-align: center; + -ms-flex-align: center; + align-items: center; + padding: 0 0 0 80px; +} + +body.dark-mode .bitop { + color: #d3d3d3; + font-size: 65px; + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -webkit-align-items: center; + -moz-box-align: center; + -ms-flex-align: center; + align-items: center; + padding: 0 0 0 50px; +} + +.bitop img { + width: 470px; + height: auto; +} + +.cover { + display: flex; + flex-direction: column; + align-items: center; +} + +.imgbox { + display: flex; + flex-direction: column; + align-items: center; + overflow: hidden; + box-shadow: 0px 10px 20px 0px #4343434f; + border-radius: 25px; + width: 90%; + flex: 1; +} + +.imgbox_1 { + border-radius: 25px; + object-fit: contain; + width: 100%; + height: 100%; +} + +.info { + width: 100% !important; + display: flex !important; + flex-direction: column; + padding: 0 85px !important; + line-height: 1.5; +} + +body.light-mode .info_text { + font-size: 50px; + align-items: center; + letter-spacing: 1.5px; + position: relative; + word-wrap: break-word; +} + +body.dark-mode .info_text { + font-size: 50px; + align-items: center; + letter-spacing: 1.5px; + position: relative; + word-wrap: break-word; + color: #e9e9e9; +} + +body.light-mode .video_info_text { + font-size: 80px; + font-weight: bold; + align-items: center; + letter-spacing: 1.5px; + position: relative; + word-wrap: break-word; +} + +body.dark-mode .video_info_text { + font-size: 80px; + font-weight: bold; + align-items: center; + letter-spacing: 1.5px; + position: relative; + word-wrap: break-word; + color: #e7e7e7; +} + +body.light-mode .intro { + color: #555555; + font-size: 60px; +} + +body.dark-mode .intro { + color: #ababab; + font-size: 60px; +} + +.work_status { + color: #808080; + letter-spacing: normal; + font-size: 45px; + font-weight: lighter; +} + +.dynamic_create_time { + white-space: nowrap; + color: #808080; + font-size: 35px; + font-weight: lighter; +} + +.under { + display: flex; + height: 100%; + flex-direction: column; +} + +.rectangular_box { + height: auto; + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: justify; + -webkit-justify-content: space-between; + -moz-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + padding: 100px 0 45px 0; + -webkit-backdrop-filter: blur(3px); + backdrop-filter: blur(5px); + -webkit-box-align: center; + -webkit-align-items: center; + -moz-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +.user { + display: flex; + flex-direction: column; + padding-left: 65px; +} + +.userinfo { + display: flex; + align-items: center; +} + +body.light-mode .userinfo_text { + display: flex; + font-size: 35px; + color: #2f2f2fb8; + padding: 25px 0 0 20px; + flex-direction: column; + align-items: flex-start; + width: 100%; + letter-spacing: 2.5px; +} + +body.dark-mode .userinfo_text { + display: flex; + font-size: 35px; + color: #cfcfcf; + padding: 25px 0 0 20px; + flex-direction: column; + align-items: flex-start; + width: 100%; + letter-spacing: 2.5px; +} + +.name_and_followers { + display: flex; + font-size: 30px; + flex-direction: column; +} + +.name_and_followers_text { + font-size: 20px; + color: #2f2f2fb8; + margin-left: 10px; + text-align: right; + margin-right: 10px; +} + +.avatar { + margin: 0px 20px 0 0; + border-radius: 50%; + height: auto; + width: 200px; + box-shadow: 0px 10px 20px 0px #4343434f; +} + +.avatar-1 { + width: 220px; + height: 220px; + margin-right: -160px; + margin-top: 50px; + transform: translateY(-13%) translateX(-105%) scale(1.6); +} + +/* 当img元素为空时,设置元素透明度为0,图裂图标将被隐藏 */ +img[src=''], +img:not([src]) { + opacity: 0; +} + +.username { + font-weight: bolder; + font-size: 80px; +} + +.qrcode_box { + display: flex !important; + margin: 0 75px -50px 0 !important; + align-items: center !important; + flex-direction: column-reverse; +} + +body.light-mode .qrcode_text { + font-size: 45px; + color: #2f2f2fb8; + margin-left: 10px; + text-align: right; + margin: 20px 0 0 0; +} + +body.dark-mode .qrcode_text { + font-size: 45px; + color: #d7d7d7; + margin-left: 10px; + text-align: right; + margin: 20px 0 0 0; +} + +body.light-mode #qrcode { + border: 7px dashed #3a3a3a; + padding: 10px; + border-radius: 2%; +} + +body.dark-mode #qrcode { + border: 7px dashed #C3C3C3; + padding: 10px; + border-radius: 2%; +} + +#qrcode img { + width: 350px; + height: auto; +} + +body.light-mode .other_text { + color: #575757; + font-size: 70px; + text-align: right; + margin: 0 80px -45px 0; + z-index: -1; +} + +body.dark-mode .other_text { + color: #c1c1c1; + font-size: 70px; + text-align: right; + margin: 0 80px -45px 0; + z-index: -1; +} \ No newline at end of file diff --git a/resources/template/bilibili/html/bangumi.html b/resources/template/bilibili/html/bangumi.html new file mode 100644 index 0000000..217b26d --- /dev/null +++ b/resources/template/bilibili/html/bangumi.html @@ -0,0 +1,51 @@ + + + + text + + + + + + + + +
+

{{title}}

+
+
+ {{each bangumiData val}} +
+

第 {{val.id}} 集

+

+
+ 标题: {{val.long_title}} +
+ 🔒 播放要求: {{if val.badge === '会员'}} + {{val.badge}} + {{else}} + {{val.badge}} + {{/if}} +
+ 🔗 分享链接: + {{val.short_link}} +

+
+ {{/each}} +
+
+

+ 输入 + 第?集 + 进行选集 +
+ 温馨提示: + 你有 60 秒的时间进行选择 +

+
+ + diff --git a/resources/template/bilibili/html/comment.html b/resources/template/bilibili/html/comment.html new file mode 100644 index 0000000..47000ea --- /dev/null +++ b/resources/template/bilibili/html/comment.html @@ -0,0 +1,90 @@ +{{extend defaultLayout}} {{block 'css'}} + + +{{/block}} {{block 'main'}} + + +
+
+ +
作品类型:{{Type}}
+
评论数量:{{CommentLength}}条
+ {{if Type == '视频'}} +
视频大小:{{VideoSize}}MB
+
视频画质:{{Clarity}}
+ {{else if Type == '图集'}} +
图片数量:{{ImageLength}}张
+ {{else if Type == '动态'}} +
附带图片:{{ImageLength}}张
+ {{/if}} +
+
+
+
{{shareurl}}
+
+
+ +
+ + {{each CommentsData val}} +
+ + + +
+ +
{{@val.message}}
+ {{if (val.img_src || val.sticker) != null}} +
+ +
+ {{/if}} + +
+
+ {{/each}} +
+ +{{/block}} \ No newline at end of file diff --git a/resources/template/bilibili/html/dynamic/DYNAMIC_TYPE_AV.html b/resources/template/bilibili/html/dynamic/DYNAMIC_TYPE_AV.html new file mode 100644 index 0000000..62d28e5 --- /dev/null +++ b/resources/template/bilibili/html/dynamic/DYNAMIC_TYPE_AV.html @@ -0,0 +1,64 @@ +{{extend defaultLayout}} {{block 'css'}} + + +{{/block}} {{block 'main'}} + +
+
+ bilibili +      + 你感兴趣的视频都在哔哩哔哩 +
+
+{{each image_url val}} +
+
+ 封面 +
+
+
+{{/each}} +
+
{{@text}}
+
+
{{@desc}}
+
+
{{dianzan}}点赞 · {{pinglun}}评论 · {{share}}分享
+
+
发布于{{create_time}}
+
+
+
哔哩哔哩{{dynamicTYPE}}
+
+
+
+
+
头像
+ +
+
{{@username}}
+
+
+
+ UID: {{user_shortid}} + 获赞: {{total_favorited}} + 关注: {{following_count}} + 粉丝: {{fans}} +
+
+
+
动态分享链接
+
+
+
+
+ +{{/block}} \ No newline at end of file diff --git a/resources/template/bilibili/html/dynamic/DYNAMIC_TYPE_DRAW.html b/resources/template/bilibili/html/dynamic/DYNAMIC_TYPE_DRAW.html new file mode 100644 index 0000000..19f16ac --- /dev/null +++ b/resources/template/bilibili/html/dynamic/DYNAMIC_TYPE_DRAW.html @@ -0,0 +1,63 @@ +{{extend defaultLayout}} {{block 'css'}} + + +{{/block}} {{block 'main'}} +
+
+ +      + 你感兴趣的视频都在哔哩哔哩 +
+
+
+
{{@text}}
+
+
+{{each image_url val}} +
+
+ 封面 +
+
+
+{{/each}} +
+
{{dianzan}}点赞 · {{pinglun}}评论 · {{share}}分享
+
+
发布于{{create_time}}
+
+
+
哔哩哔哩{{dynamicTYPE}}
+
+
+
+
+
头像
+ +
+
{{@username}}
+
+
+
+ UID: {{user_shortid}} + 获赞: {{total_favorited}} + 关注: {{following_count}} + 粉丝: {{fans}} +
+
+
+
动态分享链接
+
+
+
+
+ +{{/block}} \ No newline at end of file diff --git a/resources/template/bilibili/html/dynamic/DYNAMIC_TYPE_LIVE_RCMD.html b/resources/template/bilibili/html/dynamic/DYNAMIC_TYPE_LIVE_RCMD.html new file mode 100644 index 0000000..c6f803e --- /dev/null +++ b/resources/template/bilibili/html/dynamic/DYNAMIC_TYPE_LIVE_RCMD.html @@ -0,0 +1,75 @@ +{{extend defaultLayout}} {{block 'css'}} + + +{{/block}} {{block 'main'}} + +
+{{each image_url val}} +
+
+ 封面 +
+
+
+{{/each}} +
+
+
{{@text}}
+
+
{{liveinf}}
+
直播开始时间: {{create_time}}
+
+
+ 头像 + +
+
+
{{@username}}
+      + 直播中 +
+
+ {{fans}}粉丝 +
+
+
+
+
+
哔哩哔哩{{dynamicTYPE}}
+
+
+
+
+ + + + +
+ +
+ 你感兴趣的视频都在B站 +
+
+
+
+
动态分享链接
+
+
+
+
+
+ +{{/block}} \ No newline at end of file diff --git a/resources/template/bilibili/html/dynamic/DYNAMIC_TYPE_WORD.html b/resources/template/bilibili/html/dynamic/DYNAMIC_TYPE_WORD.html new file mode 100644 index 0000000..107a785 --- /dev/null +++ b/resources/template/bilibili/html/dynamic/DYNAMIC_TYPE_WORD.html @@ -0,0 +1,62 @@ +{{extend defaultLayout}} {{block 'css'}} + + +{{/block}} {{block 'main'}} + +
+
+ bilibili +      + 你感兴趣的视频都在哔哩哔哩 +
+
+{{each image_url val}} +
+
+ 封面 +
+
+
+{{/each}} +
+
{{@text}}
+
+
{{dianzan}}点赞 · {{pinglun}}评论 · {{share}}分享
+
+
发布于{{create_time}}
+
+
+
哔哩哔哩{{dynamicTYPE}}
+
+
+
+
+
头像
+ +
+
{{@username}}
+
+
+
+ UID: {{user_shortid}} + 获赞: {{total_favorited}} + 关注: {{following_count}} + 粉丝: {{fans}} +
+
+
+
动态分享链接
+
+
+
+
+ +{{/block}} \ No newline at end of file diff --git a/resources/template/douyin/css/base.css b/resources/template/douyin/css/base.css new file mode 100644 index 0000000..8066ef0 --- /dev/null +++ b/resources/template/douyin/css/base.css @@ -0,0 +1,459 @@ +.spacer1 { + height: 60px; +} + +.spacer2 { + height: 109px; +} + +.spacer3 { + height: 90px; +} + +.spacer4 { + height: 35px; +} + +.spacer5 { + height: 10px; +} + +.spacer6 { + height: 100px; +} + +body.light-mode .container { + background-color: #f4f4f4; + width: 1440px; + height: auto; +} + +body.dark-mode .container { + background-color: #1a1a1a; + width: 1440px; + height: auto; +} + +body.dark-mode .logo { + width: 39%; + height: 200px; + margin: 0 0 0 15px; + background-size: cover; + background-position: center; + background-attachment: fixed; + background-image: url(../../../image/douyin/dylogo-light.svg); +} + +body.light-mode .logo { + width: 39%; + height: 200px; + margin: 0 0 0 15px; + background-size: cover; + background-position: center; + background-attachment: fixed; + background-image: url(../../../image/douyin/dylogo-dark.svg); +} + +body.light-mode .bitop { + color: #3e3e3eb8; + font-size: 65px; + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -webkit-align-items: center; + -moz-box-align: center; + -ms-flex-align: center; + align-items: center; + padding: 0 0 0 50px; +} + +body.dark-mode .bitop { + color: #d3d3d3; + font-size: 65px; + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -webkit-align-items: center; + -moz-box-align: center; + -ms-flex-align: center; + align-items: center; + padding: 0 0 0 50px; +} + +.bitop img { + width: 375px; + height: auto; + margin-right: -15px; +} + +.cover { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -moz-box-orient: vertical; + -moz-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-align: center; + -webkit-align-items: center; + -moz-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +.imgbox { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -moz-box-orient: vertical; + -moz-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-align: center; + -webkit-align-items: center; + -moz-box-align: center; + -ms-flex-align: center; + align-items: center; + overflow: hidden; + -webkit-box-shadow: 0px 10px 20px 0px #4343434f; + box-shadow: 0px 10px 20px 0px #4343434f; + border-radius: 25px; + width: 90%; + -webkit-box-flex: 1; + -webkit-flex: 1; + -moz-box-flex: 1; + -ms-flex: 1; + flex: 1; +} + +.imgbox_1 { + border-radius: 25px; + -o-object-fit: contain; + object-fit: contain; + width: 100%; + height: 100%; +} + +.info { + display: -webkit-box !important; + display: -webkit-flex !important; + display: -moz-box !important; + display: -ms-flexbox !important; + display: flex !important; + -webkit-box-orient: vertical !important; + -webkit-box-direction: normal !important; + -webkit-flex-direction: column !important; + -moz-box-orient: vertical !important; + -moz-box-direction: normal !important; + -ms-flex-direction: column !important; + flex-direction: column !important; + padding: 0 65px !important; + word-wrap: normal !important; +} + +body.light-mode .info_text { + font-size: 70px; + letter-spacing: 1.5px; + position: relative; + word-wrap: break-word; + font-weight: bold; +} + +body.dark-mode .info_text { + font-size: 70px; + letter-spacing: 1.5px; + position: relative; + word-wrap: break-word; + color: #e9e9e9; + font-weight: bold; +} + +.work_status { + font-size: 45px; + color: #808080; + font-weight: lighter; +} + +body.light-mode .decorate_dynamic { + margin: -143px 0 10px 20px; + color: #1f1f1f; + letter-spacing: 60.5px; + white-space: nowrap; + font-weight: 300; +} + +body.dark-mode .decorate_dynamic { + margin: -143px 0 10px 20px; + color: #ededed; + letter-spacing: 60.5px; + white-space: nowrap; + font-weight: 300; +} + +body.light-mode .decorate_music { + margin: -143px 0 10px 20px; + color: #1f1f1f; + letter-spacing: 56.5px; + white-space: nowrap; + font-weight: 300; +} + +body.dark-mode .decorate_music { + margin: -143px 0 10px 20px; + color: #ededed; + letter-spacing: 56.5px; + white-space: nowrap; + font-weight: 300; +} + +.under { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + height: 100%; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -moz-box-orient: vertical; + -moz-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; +} + +.rectangular_box { + height: auto; + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: justify; + -webkit-justify-content: space-between; + -moz-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + padding: 100px 0 45px 0; + -webkit-backdrop-filter: blur(3px); + backdrop-filter: blur(5px); + -webkit-box-align: center; + -webkit-align-items: center; + -moz-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +.user { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -moz-box-orient: vertical; + -moz-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + padding-left: 65px; +} + +.userinfo { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -webkit-align-items: center; + -moz-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +body.light-mode .userinfo_text { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + font-size: 35px; + color: #2f2f2fb8; + padding: 25px 0 0 0; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -moz-box-orient: vertical; + -moz-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-align: start; + -webkit-align-items: flex-start; + -moz-box-align: start; + -ms-flex-align: start; + align-items: flex-start; + width: 100%; + letter-spacing: 2.5px; +} + +body.dark-mode .userinfo_text { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + font-size: 35px; + color: #d1d1d1; + padding: 25px 0 0 0; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -moz-box-orient: vertical; + -moz-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-align: start; + -webkit-align-items: flex-start; + -moz-box-align: start; + -ms-flex-align: start; + align-items: flex-start; + width: 100%; + letter-spacing: 2.5px; +} + +.name_and_followers { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + font-size: 30px; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -moz-box-orient: vertical; + -moz-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; +} + +.name_and_followers_text { + font-size: 20px; + color: #2f2f2fb8; + margin-left: 10px; + text-align: right; + margin-right: 10px; +} + +.avatar { + margin: 0px 30px 0 0; + border-radius: 50%; + height: auto; + width: 200px; + -webkit-box-shadow: 0px 10px 20px 0px #4343434f; + box-shadow: 0px 10px 20px 0px #4343434f; +} + +.username { + font-weight: bolder; + color: #606060; + font-size: 80px; +} + +.qrcode_box { + display: -webkit-box !important; + display: -webkit-flex !important; + display: -moz-box !important; + display: -ms-flexbox !important; + display: flex !important; + margin: 0 75px -50px 0 !important; + -webkit-box-align: center !important; + -webkit-align-items: center !important; + -moz-box-align: center !important; + -ms-flex-align: center !important; + align-items: center !important; + -webkit-box-orient: vertical; + -webkit-box-direction: reverse; + -webkit-flex-direction: column-reverse; + -moz-box-orient: vertical; + -moz-box-direction: reverse; + -ms-flex-direction: column-reverse; + flex-direction: column-reverse; +} + +body.ligth-mode .qrcode_text { + font-size: 45px; + color: #2f2f2fb8; + text-align: right; + margin: 20px 0 0 0; +} + +body.dark-mode .qrcode_text { + font-size: 45px; + color: #dbdbdb; + text-align: right; + margin: 20px 0 0 0; +} + +body.ligth-mode .username { + font-weight: bolder; + color: #606060; + font-size: 80px; +} + +body.dark-mode .username { + font-weight: bolder; + color: #ededed; + font-size: 80px; +} + +body.light-mode #qrcode { + border: 7px dashed #3a3a3a; + padding: 10px; + border-radius: 2%; +} + +body.dark-mode #qrcode { + border: 7px dashed #C3C3C3; + padding: 10px; + border-radius: 2%; +} + +#qrcode img { + width: 350px; + height: 350px; +} + +body.light-mode .other_text { + color: #808080; + font-size: 70px; + text-align: right; + margin: 0 85px -45px 0; + z-index: -1; +} + +body.dark-mode .other_text { + color: #c1c1c1; + font-size: 70px; + text-align: right; + margin: 0 85px -45px 0; + z-index: -1; +} \ No newline at end of file diff --git a/resources/template/douyin/css/commnet.css b/resources/template/douyin/css/commnet.css new file mode 100644 index 0000000..c6da733 --- /dev/null +++ b/resources/template/douyin/css/commnet.css @@ -0,0 +1,478 @@ +.container { + background-color: #f4f4f4; + margin: 0; + padding: 20px; + width: 1440px; + height: auto; +} + +.comment-container { + max-width: 100%; + /* 宽度设置为百分之百,以适应不同屏幕大小 */ + margin: 0 auto; + overflow: auto; + /* 添加滚动条以处理大量评论 */ +} + +.comment { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + /* border-bottom: 1px solid #e7d8d8; */ + padding: 40px; + /* 调整填充以改善间距 */ +} + +.user-avatar { + margin-bottom: 50px; + width: 187.5px; + /* 调整尺寸 */ + height: 187.5px; + /* 调整尺寸 */ + border-radius: 50%; + margin-right: 33.75px; + /* 调整边距 */ + -o-object-fit: cover; + object-fit: cover; + -webkit-box-shadow: 0 20px 50px 0 rgb(0 0 0 / 30%); + box-shadow: 0 20px 50px 0 rgb(0 0 0 / 30%); +} + +.comment-content { + -webkit-box-flex: 1; + -webkit-flex: 1; + -moz-box-flex: 1; + -ms-flex: 1; + flex: 1; + /* overflow: hidden; */ +} + +.user-info { + margin-bottom: 50px; + font-size: 50px; + color: #888; + position: relative; + /* 将容器设置为相对定位 */ +} + +.Z3o6vw6l { + display: inline-block; + padding: 2px 20px 2px 20px; + border-radius: 13px; + margin-left: 10px; + font-size: 45px; +} + +.author-label { + background: rgb(254, 44, 85); + color: #f4f4f4; +} + +body.dark-mode .status-label { + background: #262425; + color: #888686; +} + +body.light-mode .status-label { + background: rgb(230, 230, 230); + color: #777" + +} + +body.dark-mode .search_text { + color: #FACE15; + position: relative; + display: inline-block; +} + +.search-ico { + position: absolute; + top: 17px; + right: -45px; + width: 44px; + height: 50px; + background-image: url(../../../image/douyin/search-light.svg); + background-size: contain; + background-repeat: no-repeat; +} + +body.dark-mode .logo { + width: 133%; + height: 245px; + margin: 0 0 50px -55px; + background-size: cover; + background-position: center; + background-attachment: fixed; + background-image: url(../../../image/douyin/dylogo-light.svg); +} + +body.light-mode .logo { + width: 133%; + height: 245px; + margin: 0 0 50px -55px; + background-size: cover; + background-position: center; + background-attachment: fixed; + background-image: url(../../../image/douyin/dylogo-dark.svg); +} + +body.dark-mode .search-ico { + position: absolute; + top: 17px; + right: -45px; + width: 44px; + height: 50px; + background-image: url(../../../image/douyin/search-dark.svg); + background-size: contain; + background-repeat: no-repeat; +} + +body.light-mode .handling_at { + color: rgb(3, 72, 141) +} + +body.dark-mode .handling_at { + color: #FACE15 +} + +.comment-imgbox { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + margin: 20px 0; + overflow: hidden; + -webkit-box-shadow: 0 20px 50px 0 rgba(0, 0, 0, 0.3); + box-shadow: 0 20px 50px 0 rgba(0, 0, 0, 0.3); + border-radius: 25px; + width: 95%; + -webkit-box-flex: 1; + -webkit-flex: 1; + -moz-box-flex: 1; + -ms-flex: 1; + flex: 1; + /* 让容器自动调整大小 */ +} + +.comment-imgbox_1 { + border-radius: 25px; + -o-object-fit: contain; + object-fit: contain; + /* 图片按原比例完整显示在容器内 */ + width: 100%; + /* 让图片宽度充满父容器 */ + height: 100%; + /* 让图片高度充满父容器 */ +} + +.comment-text { + font-size: 60px; + -webkit-box-align: center; + -webkit-align-items: center; + -moz-box-align: center; + -ms-flex-align: center; + align-items: center; + letter-spacing: 0.5px; + position: relative; + line-height: 1.6; +} + +.comment-text img { + display: inline-block; + vertical-align: middle; + -webkit-transform: translateY(-10%) scale(0.9); + -moz-transform: translateY(-10%) scale(0.9); + -ms-transform: translateY(-10%) scale(0.9); + -o-transform: translateY(-10%) scale(0.9); + transform: translateY(-10%) scale(0.9); +} + +.like-section { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -webkit-align-items: center; + -moz-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: justify; + -webkit-justify-content: space-between; + -moz-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + /* 将子元素分别靠左和靠右 */ + color: #888; + margin-top: 37.5px; + white-space: nowrap; + /* 防止文本换行 */ +} + +.info-content { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -webkit-align-items: center; + -moz-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-flex: 1; + -webkit-flex: 1; + -moz-box-flex: 1; + -ms-flex: 1; + flex: 1; +} + +.additional-info { + font-size: 45px; + letter-spacing: 2px; + /* 调整字间距*/ +} + +.like_info { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + margin-left: auto; +} + +.like-icon { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + margin-left: auto; +} + +.like-count { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -webkit-align-items: center; + -moz-box-align: center; + -ms-flex-align: center; + align-items: center; + font-size: 50px; + /* 调整字体大小 */ + margin-left: auto; +} + +.video_info_container { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: justify; + -webkit-justify-content: space-between; + -moz-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-align: center; + -webkit-align-items: center; + -moz-box-align: center; + -ms-flex-align: center; + align-items: center; + /* 垂直居中 */ + max-width: 1200px; + margin: 0 auto; + padding: 20px; + color: #3a3a3a; +} + +.svg_container { + margin-top: 10px; + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -moz-box-orient: vertical; + -moz-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + margin-left: -40px; +} + +.svg_container img { + width: 650px; + height: auto; + margin-bottom: 20px; +} + +.top-info { + /* margin-top: 50px; 添加顶部间距 */ + -webkit-box-align: center; + -webkit-align-items: center; + -moz-box-align: center; + -ms-flex-align: center; + align-items: center; + padding: 10px; + letter-spacing: 6px; + /* 调整字间距*/ + font-size: 45px; + white-space: normal; + /* 允许自动换行 */ + word-break: break-all; + /* 如果单词过长,允许在任意位置换行 */ + text-align: left; +} + +.qrcode_box { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -moz-box-orient: vertical; + -moz-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-align: center; + -webkit-align-items: center; + -moz-box-align: center; + -ms-flex-align: center; + align-items: center; + margin-right: -40px; +} + +.qrcode { + margin-top: 80px; +} + +.qrcode_text { + font-size: 45px; + margin-top: 20px; + /* 调整垂直间距 */ +} + +/* 深色模式样式 */ +body.dark-mode { + background-color: #121212; + color: #fff; + /* 其他深色模式下的样式 */ +} + +/* 浅色模式样式 */ +body.light-mode { + background-color: #f4f4f4; + color: #333; + /* 其他浅色模式下的样式 */ +} + +body.dark-mode .container { + background-color: #121212; + color: #fff; +} + +/* 针对特定元素的样式 */ +body.dark-mode .comment-text { + color: #f4f4f4; +} + +body.dark-mode .video_info_container { + color: #c3c3c3; +} + +body.dark-mode .comment-text img { + display: inline-block; + vertical-align: middle; + -webkit-transform: translateY(-10%) scale(0.9); + -moz-transform: translateY(-10%) scale(0.9); + -ms-transform: translateY(-10%) scale(0.9); + -o-transform: translateY(-10%) scale(0.9); + transform: translateY(-10%) scale(0.9); +} + +body.light-mode .comment-text { + color: #333; +} + +body.light-mode .comment-imgbox { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + margin: 20px 0; + overflow: hidden; + -webkit-box-shadow: 0 20px 50px 0 rgba(0, 0, 0, 0.3); + box-shadow: 0 20px 50px 0 rgba(0, 0, 0, 0.3); + border-radius: 25px; + width: 95%; + -webkit-box-flex: 1; + -webkit-flex: 1; + -moz-box-flex: 1; + -ms-flex: 1; + flex: 1; +} + +.user-avatar .comment-imgbox { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + margin: 20px 0; + overflow: hidden; + -webkit-box-shadow: 0 20px 50px 0 rgba(0, 0, 0, 0.3); + box-shadow: 0 20px 50px 0 rgba(0, 0, 0, 0.3); + border-radius: 25px; + width: 95%; + -webkit-box-flex: 1; + -webkit-flex: 1; + -moz-box-flex: 1; + -ms-flex: 1; + flex: 1; +} + +body.dark-mode .comment-imgbox { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + margin: 20px 0; + overflow: hidden; + -webkit-box-shadow: 0px 10px 100px 0px #ffffff1f; + box-shadow: 0px 10px 100px 0px #ffffff1f; + border-radius: 25px; + width: 95%; + -webkit-box-flex: 1; + -webkit-flex: 1; + -moz-box-flex: 1; + -ms-flex: 1; + flex: 1; +} + +body.dark-mode .user-avatar { + margin-bottom: 50px; + width: 187.5px; + height: 187.5px; + border-radius: 50%; + margin-right: 33.75px; + -o-object-fit: cover; + object-fit: cover; + -webkit-box-shadow: 0px 10px 20px 0px #ffffff1a; + box-shadow: 0px 10px 20px 0px #ffffff1a; +} \ No newline at end of file diff --git a/resources/template/douyin/css/live.css b/resources/template/douyin/css/live.css new file mode 100644 index 0000000..dc64180 --- /dev/null +++ b/resources/template/douyin/css/live.css @@ -0,0 +1,316 @@ +body.light-mode .container { + transform: scale(1.4); + transform-origin: 0 0; + position: relative; + background-color: #f4f4f4; + width: fit-content; + height: auto; +} + +body.dark-mode .container { + transform: scale(1.4); + transform-origin: 0 0; + position: relative; + background-color: #111111; + width: fit-content; + height: auto; +} + +.spacer1 { + height: 20px; +} + +.spacer2 { + height: 70px; +} + +.spacer3 { + height: 10px; +} + +.spacer4 { + height: 20px; +} + +.spacer5 { + height: 25px; +} + +.spacer6 { + height: 80px; +} + +.spacer7 { + height: 120px; +} + +.container { + width: 100% !important; +} + +body.dark-mode .logo { + width: 107%; + height: 239px; + margin: 0 0 52px 0; + background-size: cover; + background-position: center; + background-attachment: fixed; + background-image: url(../../../image/douyin/dylogo-light.svg); +} + +body.light-mode .logo { + width: 107%; + height: 200px; + margin: 0 0 52px 0; + background-size: cover; + background-position: center; + background-attachment: fixed; + background-image: url(../../../image/douyin/dylogo-dark.svg); +} + + +.bitop svg { + width: 250px; + height: auto; +} + +.cover { + display: flex; + flex-direction: column; + align-items: center; +} + +.imgbox { + display: flex; + flex-direction: column; + align-items: center; + overflow: hidden; + box-shadow: 0px 10px 20px 0px #4343434f; + border-radius: 25px; + width: 95%; + flex: 1; + margin: 90px 0 0 0; +} + +.imgbox_1 { + border-radius: 25px; + object-fit: contain; + width: 100%; + height: 100%; +} + +.info { + display: flex !important; + flex-direction: column; + padding: 0 80px; +} + +body.light-mode .info_title { + font-size: 65px; + align-items: center; + letter-spacing: 1.5px; + position: relative; + word-wrap: break-word; +} + +body.dark-mode .info_title { + font-size: 65px; + align-items: center; + letter-spacing: 1.5px; + position: relative; + word-wrap: break-word; + color: #e7e7e7e7; +} + +.info_text { + font-size: 45px; + align-items: center; + letter-spacing: 1.5px; + position: relative; + word-wrap: break-word; +} + +.under { + display: flex; + width: auto; + height: 100%; + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -moz-box-orient: vertical; + -moz-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; +} + +body.light-mode .other_text { + width: inherit; + color: #3e3e3e; + font-size: 70px; + text-align: right; + margin: 0 20px -45px 0; + z-index: -1; +} + +body.dark-mode .other_text { + width: inherit; + color: #dddddd; + font-size: 70px; + text-align: right; + margin: 0 20px -45px 0; + z-index: -1; +} + +.rectangular_box { + height: auto; + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: justify; + -webkit-justify-content: space-between; + -moz-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + padding: 60px 0 0 0; + -webkit-backdrop-filter: blur(3px); + backdrop-filter: blur(5px); + -webkit-box-align: center; + -webkit-align-items: center; + -moz-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +.user { + display: flex; + flex-direction: column; + margin: 0 0 0 45px; +} + +.userinfo { + display: flex; + justify-content: flex-start; + align-items: flex-start; + flex-direction: column; +} + +.userinfo_text { + display: flex; + font-size: 2em; + color: #2f2f2fb8; + padding: 25px 0 0 150px; + flex-direction: column; + align-items: flex-start; + width: 100%; + letter-spacing: 2.5px; +} + +.name_and_followers { + display: flex; + flex-direction: row; + align-items: center; + margin-bottom: 5px; +} + +.livestat { + width: 170px; + height: auto; +} + +.avatar { + margin: 0 15px 0 0; + border-radius: 50%; + height: auto; + width: 130px; +} + +.avatarinfo { + display: flex; + align-items: center; + gap: 40px; +} + +body.light-mode .extext { + letter-spacing: 10px; + color: #212121; +} + +body.dark-mode .extext { + letter-spacing: 10px; + color: #dddddd; +} + +body.light-mode .username { + font-size: 60px; +} + +body.dark-mode .username { + font-size: 60px; + color: #dddddd; +} + +.qrcode_box { + display: -webkit-box !important; + display: -webkit-flex !important; + display: -moz-box !important; + display: -ms-flexbox !important; + display: flex !important; + margin: 30px 20px 0 0 !important; + -webkit-box-align: center !important; + -webkit-align-items: center !important; + -moz-box-align: center !important; + -ms-flex-align: center !important; + align-items: center !important; + -webkit-box-orient: vertical; + -webkit-box-direction: reverse; + -webkit-flex-direction: column-reverse; + -moz-box-orient: vertical; + -moz-box-direction: reverse; + -ms-flex-direction: column-reverse; + flex-direction: column-reverse; +} + +body.light-mode .qrcode_text { + font-size: 50px; + color: #2f2f2ff9; + margin-left: 10px; + text-align: right; + margin-right: 10px; +} + +body.dark-mode .qrcode_text { + font-size: 50px; + color: #e1e1e1b8; + margin-left: 10px; + text-align: right; + margin-right: 10px; +} + +body.light-mode #qrcode { + border: 7px dashed #3a3a3a; + padding: 10px; + border-radius: 2%; +} + +body.dark-mode #qrcode { + border: 7px dashed #C3C3C3; + padding: 10px; + border-radius: 2%; +} + +#qrcode img { + width: 350px; + /* height: 150px; */ +} + +.ftext { + color: #808080; + font-size: 50px; +} \ No newline at end of file diff --git a/resources/template/douyin/html/comment.html b/resources/template/douyin/html/comment.html new file mode 100644 index 0000000..67a00aa --- /dev/null +++ b/resources/template/douyin/html/comment.html @@ -0,0 +1,88 @@ +{{extend defaultLayout}} {{block 'css'}} + + +{{/block}} {{block 'main'}} + +
+
+ +
作品类型:{{Type}}
+
评论数量:{{CommentLength}}条
+ {{if Type == '视频'}} +
视频大小:{{VideoSize}}MB
+
视频帧率:{{VideoFPS}}Hz
+ {{else if Type == '图集'}} +
图片数量:{{ImageLength}}张
+ {{/if}} +
+
+
+ {{if Type == '视频'}} +
视频直链(永久)
+ {{else if Type == '图集'}} +
图集分享链接 共{{ImageLength}}张
+ {{/if}} +
+
+ +
+ {{each CommentsData.jsonArray val}} + +
+ +
+ +
{{@val.text}}
+ {{if (val.commentimage || val.sticker) != null}} +
+ +
+ {{/if}} + +
+
+ {{/each}} +
+ +{{/block}} \ No newline at end of file diff --git a/resources/template/douyin/html/dynamic.html b/resources/template/douyin/html/dynamic.html new file mode 100644 index 0000000..09edcb3 --- /dev/null +++ b/resources/template/douyin/html/dynamic.html @@ -0,0 +1,60 @@ +{{extend defaultLayout}} {{block 'css'}} + + +{{/block}} {{block 'main'}} + +
+
+ +     记录美好生活 +
+
+
+
+ 封面 +
+
+
+
+
+ {{@desc}} +
+
+
{{dianzan}}点赞 · {{pinglun}}评论 · {{shouchang}}收藏 · {{share}}分享
+
+
发布于{{create_time}}
+
+
+
抖音作品推送
+
+
+
+
+
头像
+
+ {{username}} +
+
+
+ 抖音号: {{抖音号}} + 获赞: {{获赞}} + 关注: {{关注}} + 粉丝: {{粉丝}} +
+
+
+
作品直链:永久有效
+
+
+
+
+ +{{/block}} \ No newline at end of file diff --git a/resources/template/douyin/html/live.html b/resources/template/douyin/html/live.html new file mode 100644 index 0000000..c5cce2c --- /dev/null +++ b/resources/template/douyin/html/live.html @@ -0,0 +1,63 @@ +{{extend defaultLayout}} {{block 'css'}} + + +{{/block}} {{block 'main'}} + +
+{{each image_url val}} +
+
+ 封面 +
+
+
+{{/each}} +
+
+
{{@text}}
+
+
{{liveinf}}
+
观看总人数{{总观看次数}} | 在线观众{{在线观众}}
+
+
+ 头像 +
+
+
{{@username}}
+      + 直播中 +
+
+ {{fans}}粉丝 +
+
+
+
+
+
抖音{{dynamicTYPE}}
+
+
+
+ +
+ 抖音 记录美好生活 +
+
+
+
+
直播分享链接
+
+
+
+
+
+ +{{/block}} \ No newline at end of file diff --git a/resources/template/douyin/html/musicinfo.html b/resources/template/douyin/html/musicinfo.html new file mode 100644 index 0000000..648cca0 --- /dev/null +++ b/resources/template/douyin/html/musicinfo.html @@ -0,0 +1,62 @@ +{{extend defaultLayout}} {{block 'css'}} + + +{{/block}} {{block 'main'}} + +
+
+ +     抖音 记录美好生活 +
+
+
+
+ 封面 +
+
+
+
+
+ {{@desc}} +
+
+
音乐ID: {{music_id}}
+
{{user_count}} 人使用过
+
+
图片生成于{{create_time}}
+
+
+
抖音音乐信息
+
+
+
+
+
头像
+
+
+ {{username}} +
+
+
+ ID: {{user_shortid}} + 获赞: {{total_favorited}} + 关注: {{following_count}} + 粉丝: {{fans}} +
+
+
+
文件直链:永久有效
+
+
+
+
+ +{{/block}} \ No newline at end of file diff --git a/resources/template/extend/css/common.css b/resources/template/extend/css/common.css new file mode 100644 index 0000000..f7489a1 --- /dev/null +++ b/resources/template/extend/css/common.css @@ -0,0 +1,421 @@ +@charset "UTF-8"; +@import '../../../font/HarmonyOS_Sans_SC_Black/font.css'; +@import '../../../font/HarmonyOS_Sans_SC_Bold/font.css'; +@import '../../../font/HarmonyOS_Sans_SC_Light/font.css'; +@import '../../../font/HarmonyOS_Sans_SC_Medium/font.css'; +@import '../../../font//HarmonyOS_Sans_SC_Regular/font.css'; +@import '../../../font/HarmonyOS_Sans_SC_Thin/font.css'; + +* { + margin: 0; + padding: 0; + box-sizing: border-box; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; +} + +body { + color: #1e1f20; + font-family: "HarmonyOS Sans SC", "FZB", Number, "汉仪文黑-65W", YS, PingFangSC-Medium, "PingFang SC", sans-serif; + transform-origin: 0 0; + width: 1440px; +} + +body.light-mode .container { + background-color: #f4f4f4; + width: 1440px; + padding: 20px 15px 10px 15px; + background-size: contain; +} + +body.dark-mode .container { + background-color: #202021; + width: 1440px; + padding: 20px 15px 10px 15px; + background-size: contain; +} + +.head-box { + border-radius: 15px; + padding: 10px 20px; + position: relative; + color: #fff; + margin-top: 30px; +} + +.head-box .label { + font-size: 16px; + text-shadow: 0 0 1px #000, 1px 1px 3px rgba(0, 0, 0, 0.9); +} + +.head-box .label span { + color: #d3bc8e; + padding: 0 2px; +} + +.notice { + color: #888; + font-size: 12px; + text-align: right; + padding: 12px 5px 5px; +} + +.notice-center { + color: #fff; + text-align: center; + margin-bottom: 10px; + text-shadow: 1px 1px 1px #333; +} + +body.light-mode .copyright { + font-weight: bold; + font-size: 50px; + text-align: center; + color: #b4b4b4; + position: relative; + padding-left: 10px; + margin: 40px 0; +} + +body.light-mode .copyright .version { + padding: 0 10px; + margin: 0 0 0 5px; + font-size: 25px; + color: #666666; + text-shadow: 0px 0px 20px #00000000; + background-color: #d7d7d7; + border-radius: 10px; + vertical-align: super; +} + +body.light-mode .copyright .name { + color: #666666; +} + +body.dark-mode .copyright { + font-weight: bold; + font-size: 50px; + text-align: center; + color: #666666; + position: relative; + padding-left: 10px; + margin: 40px 0; +} + +body.dark-mode .copyright .version { + padding: 0 10px; + margin: 0 0 0 5px; + font-size: 25px; + color: #d6d6d6; + text-shadow: 0px 0px 20px #00000000; + background-color: #666666; + border-radius: 10px; + vertical-align: super; +} + +body.dark-mode .copyright .name { + color: #d6d6d6; +} + +.copyright .commit_id_old { + color: #808080; +} + +.copyright .tip { + color: #ff0000; +} + +/* cont */ +.cont { + border-radius: 20px; + background: url("../common/cont/card-bg.png") top left repeat-x; + background-size: auto 100%; + margin: 5px 15px 5px 10px; + position: relative; + box-shadow: 0 0 1px 0 #ccc, 2px 2px 4px 0 rgba(50, 50, 50, 0.8); + overflow: hidden; + color: #fff; + font-size: 10px; +} + +.cont>ul.cont-msg { + display: block; + padding: 5px 10px; + background: rgba(0, 0, 0, 0.5); +} + +.cont-title { + background: rgba(0, 0, 0, 0.4); + box-shadow: 0 0 1px 0 #fff; + color: #d3bc8e; + padding: 10px 20px; + text-align: left; + border-radius: 10px 10px 0 0; +} + +.cont-title span { + font-size: 12px; + color: #aaa; + margin-left: 10px; + font-weight: normal; +} + +.cont-title.border-less { + background: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); + box-shadow: none; + padding-bottom: 5px; +} + +.cont-body { + padding: 10px 15px; + font-size: 12px; + background: rgba(0, 0, 0, 0.5); + box-shadow: 0 0 1px 0 #fff; + font-weight: normal; +} + +.cont-footer { + padding: 10px 15px; + font-size: 12px; + background: rgba(0, 0, 0, 0.5); + font-weight: normal; +} + +ul.cont-msg, +.cont-footer ul { + padding-left: 15px; +} + +ul.cont-msg li, +.cont-footer ul li { + margin: 5px 0; + margin-left: 15px; +} + +ul.cont-msg li strong, +.cont-footer ul li strong { + font-weight: normal; + margin: 0 2px; + color: #d3bc8e; +} + +.cont-table { + display: table; + width: 100%; +} + +.cont-table .tr { + display: table-row; +} + +.cont-table .tr:nth-child(even) { + background: rgba(0, 0, 0, 0.4); +} + +.cont-table .tr:nth-child(odd) { + background: rgba(50, 50, 50, 0.4); +} + +.cont-table .tr>div.value-full { + display: table; + width: 200%; +} + +.cont-table .tr>div.value-none { + box-shadow: none; +} + +.cont-table .thead { + text-align: center; +} + +.cont-table .tr>div, +.cont-table .tr>td { + display: table-cell; + box-shadow: 0 0 1px 0 #fff; +} + +.cont-table .thead>div, +.cont-table .thead>td { + color: #d3bc8e; + background: rgba(0, 0, 0, 0.4); + line-height: 40px; + height: 40px; +} + +.cont-table .title, +.cont-table .th { + color: #d3bc8e; + padding-right: 15px; + text-align: right; + background: rgba(0, 0, 0, 0.4); + min-width: 100px; + vertical-align: middle; +} + +.logo { + font-size: 18px; + text-align: center; + color: #fff; + margin: 20px 0 10px 0; +} + +/* */ +.cons { + display: inline-block; + vertical-align: middle; + padding: 0 5px; + border-radius: 4px; +} + +.cons-0 { + background: #666; + color: #fff; +} + +.cons-n0 { + background: #404949; + color: #fff; +} + +.cons-1 { + background: #5cbac2; + color: #fff; +} + +.cons-2 { + background: #339d61; + color: #fff; +} + +.cons-3 { + background: #3e95b9; + color: #fff; +} + +.cons-4 { + background: #3955b7; + color: #fff; +} + +.cons-5 { + background: rgba(83, 27, 169, 0.8117647059); + color: #fff; +} + +.cons-6 { + background: #ff5722; + color: #fff; +} + +.cons2-0 { + border-radius: 4px; + background: #666; + color: #fff; +} + +.cons2-1 { + border-radius: 4px; + background: #71b1b7; + color: #fff; +} + +.cons2-2 { + border-radius: 4px; + background: #369961; + color: #fff; +} + +.cons2-3 { + border-radius: 4px; + background: #4596b9; + color: #fff; +} + +.cons2-4 { + border-radius: 4px; + background: #4560b9; + color: #fff; +} + +.cons2-5 { + border-radius: 4px; + background: rgba(83, 27, 169, 0.8117647059); + color: #fff; +} + +.cons2-6 { + border-radius: 4px; + background: #ff5722; + color: #fff; +} + +.logo { + font-size: 18px; + text-align: center; + color: #fff; + margin: 20px 0 10px 0; +} + +/* item-icon */ +.item-icon { + width: 100%; + height: 100%; + border-radius: 4px; + position: relative; + overflow: hidden; +} + +.item-icon .img { + width: 100%; + height: 100%; + display: block; + background-size: contain; + background-position: center; + background-repeat: no-repeat; +} + +.item-icon.artis .img { + width: 84%; + height: 84%; + margin: 8%; +} + +.item-list { + display: flex; +} + +.item-list .item-card { + width: 70px; + background: #e7e5d9; +} + +.item-list .item-icon { + border-bottom-left-radius: 0; + border-bottom-right-radius: 12px; + height: initial; +} + +.item-list .item-title { + color: #222; + font-size: 13px; + text-align: center; + padding: 2px; + white-space: nowrap; + overflow: hidden; +} + +.item-list .item-badge { + position: absolute; + display: block; + left: 0; + top: 0; + background: rgba(0, 0, 0, 0.6); + font-size: 12px; + color: #fff; + padding: 4px 5px 3px; + border-radius: 0 0 6px 0; +} + +/*# sourceMappingURL=common.css.map */ \ No newline at end of file diff --git a/resources/template/extend/html/default.html b/resources/template/extend/html/default.html new file mode 100644 index 0000000..24a168d --- /dev/null +++ b/resources/template/extend/html/default.html @@ -0,0 +1,39 @@ + + + + + + + + + karin-plugin-kkk + {{block 'css'}} {{/block}} + + + +
+ {{block 'main'}}{{/block}} + + +
+ + + \ No newline at end of file diff --git a/resources/template/extend/js/qrcode.min.js b/resources/template/extend/js/qrcode.min.js new file mode 100644 index 0000000..993e88f --- /dev/null +++ b/resources/template/extend/js/qrcode.min.js @@ -0,0 +1 @@ +var QRCode;!function(){function a(a){this.mode=c.MODE_8BIT_BYTE,this.data=a,this.parsedData=[];for(var b=[],d=0,e=this.data.length;e>d;d++){var f=this.data.charCodeAt(d);f>65536?(b[0]=240|(1835008&f)>>>18,b[1]=128|(258048&f)>>>12,b[2]=128|(4032&f)>>>6,b[3]=128|63&f):f>2048?(b[0]=224|(61440&f)>>>12,b[1]=128|(4032&f)>>>6,b[2]=128|63&f):f>128?(b[0]=192|(1984&f)>>>6,b[1]=128|63&f):b[0]=f,this.parsedData=this.parsedData.concat(b)}this.parsedData.length!=this.data.length&&(this.parsedData.unshift(191),this.parsedData.unshift(187),this.parsedData.unshift(239))}function b(a,b){this.typeNumber=a,this.errorCorrectLevel=b,this.modules=null,this.moduleCount=0,this.dataCache=null,this.dataList=[]}function i(a,b){if(void 0==a.length)throw new Error(a.length+"/"+b);for(var c=0;c=f;f++){var h=0;switch(b){case d.L:h=l[f][0];break;case d.M:h=l[f][1];break;case d.Q:h=l[f][2];break;case d.H:h=l[f][3]}if(h>=e)break;c++}if(c>l.length)throw new Error("Too long data");return c}function s(a){var b=encodeURI(a).toString().replace(/\%[0-9a-fA-F]{2}/g,"a");return b.length+(b.length!=a?3:0)}a.prototype={getLength:function(){return this.parsedData.length},write:function(a){for(var b=0,c=this.parsedData.length;c>b;b++)a.put(this.parsedData[b],8)}},b.prototype={addData:function(b){var c=new a(b);this.dataList.push(c),this.dataCache=null},isDark:function(a,b){if(0>a||this.moduleCount<=a||0>b||this.moduleCount<=b)throw new Error(a+","+b);return this.modules[a][b]},getModuleCount:function(){return this.moduleCount},make:function(){this.makeImpl(!1,this.getBestMaskPattern())},makeImpl:function(a,c){this.moduleCount=4*this.typeNumber+17,this.modules=new Array(this.moduleCount);for(var d=0;d=7&&this.setupTypeNumber(a),null==this.dataCache&&(this.dataCache=b.createData(this.typeNumber,this.errorCorrectLevel,this.dataList)),this.mapData(this.dataCache,c)},setupPositionProbePattern:function(a,b){for(var c=-1;7>=c;c++)if(!(-1>=a+c||this.moduleCount<=a+c))for(var d=-1;7>=d;d++)-1>=b+d||this.moduleCount<=b+d||(this.modules[a+c][b+d]=c>=0&&6>=c&&(0==d||6==d)||d>=0&&6>=d&&(0==c||6==c)||c>=2&&4>=c&&d>=2&&4>=d?!0:!1)},getBestMaskPattern:function(){for(var a=0,b=0,c=0;8>c;c++){this.makeImpl(!0,c);var d=f.getLostPoint(this);(0==c||a>d)&&(a=d,b=c)}return b},createMovieClip:function(a,b,c){var d=a.createEmptyMovieClip(b,c),e=1;this.make();for(var f=0;f=g;g++)for(var h=-2;2>=h;h++)this.modules[d+g][e+h]=-2==g||2==g||-2==h||2==h||0==g&&0==h?!0:!1}},setupTypeNumber:function(a){for(var b=f.getBCHTypeNumber(this.typeNumber),c=0;18>c;c++){var d=!a&&1==(1&b>>c);this.modules[Math.floor(c/3)][c%3+this.moduleCount-8-3]=d}for(var c=0;18>c;c++){var d=!a&&1==(1&b>>c);this.modules[c%3+this.moduleCount-8-3][Math.floor(c/3)]=d}},setupTypeInfo:function(a,b){for(var c=this.errorCorrectLevel<<3|b,d=f.getBCHTypeInfo(c),e=0;15>e;e++){var g=!a&&1==(1&d>>e);6>e?this.modules[e][8]=g:8>e?this.modules[e+1][8]=g:this.modules[this.moduleCount-15+e][8]=g}for(var e=0;15>e;e++){var g=!a&&1==(1&d>>e);8>e?this.modules[8][this.moduleCount-e-1]=g:9>e?this.modules[8][15-e-1+1]=g:this.modules[8][15-e-1]=g}this.modules[this.moduleCount-8][8]=!a},mapData:function(a,b){for(var c=-1,d=this.moduleCount-1,e=7,g=0,h=this.moduleCount-1;h>0;h-=2)for(6==h&&h--;;){for(var i=0;2>i;i++)if(null==this.modules[d][h-i]){var j=!1;g>>e));var k=f.getMask(b,d,h-i);k&&(j=!j),this.modules[d][h-i]=j,e--,-1==e&&(g++,e=7)}if(d+=c,0>d||this.moduleCount<=d){d-=c,c=-c;break}}}},b.PAD0=236,b.PAD1=17,b.createData=function(a,c,d){for(var e=j.getRSBlocks(a,c),g=new k,h=0;h8*l)throw new Error("code length overflow. ("+g.getLengthInBits()+">"+8*l+")");for(g.getLengthInBits()+4<=8*l&&g.put(0,4);0!=g.getLengthInBits()%8;)g.putBit(!1);for(;;){if(g.getLengthInBits()>=8*l)break;if(g.put(b.PAD0,8),g.getLengthInBits()>=8*l)break;g.put(b.PAD1,8)}return b.createBytes(g,e)},b.createBytes=function(a,b){for(var c=0,d=0,e=0,g=new Array(b.length),h=new Array(b.length),j=0;j=0?p.get(q):0}}for(var r=0,m=0;mm;m++)for(var j=0;jm;m++)for(var j=0;j=0;)b^=f.G15<=0;)b^=f.G18<>>=1;return b},getPatternPosition:function(a){return f.PATTERN_POSITION_TABLE[a-1]},getMask:function(a,b,c){switch(a){case e.PATTERN000:return 0==(b+c)%2;case e.PATTERN001:return 0==b%2;case e.PATTERN010:return 0==c%3;case e.PATTERN011:return 0==(b+c)%3;case e.PATTERN100:return 0==(Math.floor(b/2)+Math.floor(c/3))%2;case e.PATTERN101:return 0==b*c%2+b*c%3;case e.PATTERN110:return 0==(b*c%2+b*c%3)%2;case e.PATTERN111:return 0==(b*c%3+(b+c)%2)%2;default:throw new Error("bad maskPattern:"+a)}},getErrorCorrectPolynomial:function(a){for(var b=new i([1],0),c=0;a>c;c++)b=b.multiply(new i([1,g.gexp(c)],0));return b},getLengthInBits:function(a,b){if(b>=1&&10>b)switch(a){case c.MODE_NUMBER:return 10;case c.MODE_ALPHA_NUM:return 9;case c.MODE_8BIT_BYTE:return 8;case c.MODE_KANJI:return 8;default:throw new Error("mode:"+a)}else if(27>b)switch(a){case c.MODE_NUMBER:return 12;case c.MODE_ALPHA_NUM:return 11;case c.MODE_8BIT_BYTE:return 16;case c.MODE_KANJI:return 10;default:throw new Error("mode:"+a)}else{if(!(41>b))throw new Error("type:"+b);switch(a){case c.MODE_NUMBER:return 14;case c.MODE_ALPHA_NUM:return 13;case c.MODE_8BIT_BYTE:return 16;case c.MODE_KANJI:return 12;default:throw new Error("mode:"+a)}}},getLostPoint:function(a){for(var b=a.getModuleCount(),c=0,d=0;b>d;d++)for(var e=0;b>e;e++){for(var f=0,g=a.isDark(d,e),h=-1;1>=h;h++)if(!(0>d+h||d+h>=b))for(var i=-1;1>=i;i++)0>e+i||e+i>=b||(0!=h||0!=i)&&g==a.isDark(d+h,e+i)&&f++;f>5&&(c+=3+f-5)}for(var d=0;b-1>d;d++)for(var e=0;b-1>e;e++){var j=0;a.isDark(d,e)&&j++,a.isDark(d+1,e)&&j++,a.isDark(d,e+1)&&j++,a.isDark(d+1,e+1)&&j++,(0==j||4==j)&&(c+=3)}for(var d=0;b>d;d++)for(var e=0;b-6>e;e++)a.isDark(d,e)&&!a.isDark(d,e+1)&&a.isDark(d,e+2)&&a.isDark(d,e+3)&&a.isDark(d,e+4)&&!a.isDark(d,e+5)&&a.isDark(d,e+6)&&(c+=40);for(var e=0;b>e;e++)for(var d=0;b-6>d;d++)a.isDark(d,e)&&!a.isDark(d+1,e)&&a.isDark(d+2,e)&&a.isDark(d+3,e)&&a.isDark(d+4,e)&&!a.isDark(d+5,e)&&a.isDark(d+6,e)&&(c+=40);for(var k=0,e=0;b>e;e++)for(var d=0;b>d;d++)a.isDark(d,e)&&k++;var l=Math.abs(100*k/b/b-50)/5;return c+=10*l}},g={glog:function(a){if(1>a)throw new Error("glog("+a+")");return g.LOG_TABLE[a]},gexp:function(a){for(;0>a;)a+=255;for(;a>=256;)a-=255;return g.EXP_TABLE[a]},EXP_TABLE:new Array(256),LOG_TABLE:new Array(256)},h=0;8>h;h++)g.EXP_TABLE[h]=1<h;h++)g.EXP_TABLE[h]=g.EXP_TABLE[h-4]^g.EXP_TABLE[h-5]^g.EXP_TABLE[h-6]^g.EXP_TABLE[h-8];for(var h=0;255>h;h++)g.LOG_TABLE[g.EXP_TABLE[h]]=h;i.prototype={get:function(a){return this.num[a]},getLength:function(){return this.num.length},multiply:function(a){for(var b=new Array(this.getLength()+a.getLength()-1),c=0;cf;f++)for(var g=c[3*f+0],h=c[3*f+1],i=c[3*f+2],k=0;g>k;k++)e.push(new j(h,i));return e},j.getRsBlockTable=function(a,b){switch(b){case d.L:return j.RS_BLOCK_TABLE[4*(a-1)+0];case d.M:return j.RS_BLOCK_TABLE[4*(a-1)+1];case d.Q:return j.RS_BLOCK_TABLE[4*(a-1)+2];case d.H:return j.RS_BLOCK_TABLE[4*(a-1)+3];default:return void 0}},k.prototype={get:function(a){var b=Math.floor(a/8);return 1==(1&this.buffer[b]>>>7-a%8)},put:function(a,b){for(var c=0;b>c;c++)this.putBit(1==(1&a>>>b-c-1))},getLengthInBits:function(){return this.length},putBit:function(a){var b=Math.floor(this.length/8);this.buffer.length<=b&&this.buffer.push(0),a&&(this.buffer[b]|=128>>>this.length%8),this.length++}};var l=[[17,14,11,7],[32,26,20,14],[53,42,32,24],[78,62,46,34],[106,84,60,44],[134,106,74,58],[154,122,86,64],[192,152,108,84],[230,180,130,98],[271,213,151,119],[321,251,177,137],[367,287,203,155],[425,331,241,177],[458,362,258,194],[520,412,292,220],[586,450,322,250],[644,504,364,280],[718,560,394,310],[792,624,442,338],[858,666,482,382],[929,711,509,403],[1003,779,565,439],[1091,857,611,461],[1171,911,661,511],[1273,997,715,535],[1367,1059,751,593],[1465,1125,805,625],[1528,1190,868,658],[1628,1264,908,698],[1732,1370,982,742],[1840,1452,1030,790],[1952,1538,1112,842],[2068,1628,1168,898],[2188,1722,1228,958],[2303,1809,1283,983],[2431,1911,1351,1051],[2563,1989,1423,1093],[2699,2099,1499,1139],[2809,2213,1579,1219],[2953,2331,1663,1273]],o=function(){var a=function(a,b){this._el=a,this._htOption=b};return a.prototype.draw=function(a){function g(a,b){var c=document.createElementNS("http://www.w3.org/2000/svg",a);for(var d in b)b.hasOwnProperty(d)&&c.setAttribute(d,b[d]);return c}var b=this._htOption,c=this._el,d=a.getModuleCount();Math.floor(b.width/d),Math.floor(b.height/d),this.clear();var h=g("svg",{viewBox:"0 0 "+String(d)+" "+String(d),width:"100%",height:"100%",fill:b.colorLight});h.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink","http://www.w3.org/1999/xlink"),c.appendChild(h),h.appendChild(g("rect",{fill:b.colorDark,width:"1",height:"1",id:"template"}));for(var i=0;d>i;i++)for(var j=0;d>j;j++)if(a.isDark(i,j)){var k=g("use",{x:String(i),y:String(j)});k.setAttributeNS("http://www.w3.org/1999/xlink","href","#template"),h.appendChild(k)}},a.prototype.clear=function(){for(;this._el.hasChildNodes();)this._el.removeChild(this._el.lastChild)},a}(),p="svg"===document.documentElement.tagName.toLowerCase(),q=p?o:m()?function(){function a(){this._elImage.src=this._elCanvas.toDataURL("image/png"),this._elImage.style.display="block",this._elCanvas.style.display="none"}function d(a,b){var c=this;if(c._fFail=b,c._fSuccess=a,null===c._bSupportDataURI){var d=document.createElement("img"),e=function(){c._bSupportDataURI=!1,c._fFail&&_fFail.call(c)},f=function(){c._bSupportDataURI=!0,c._fSuccess&&c._fSuccess.call(c)};return d.onabort=e,d.onerror=e,d.onload=f,d.src="data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==",void 0}c._bSupportDataURI===!0&&c._fSuccess?c._fSuccess.call(c):c._bSupportDataURI===!1&&c._fFail&&c._fFail.call(c)}if(this._android&&this._android<=2.1){var b=1/window.devicePixelRatio,c=CanvasRenderingContext2D.prototype.drawImage;CanvasRenderingContext2D.prototype.drawImage=function(a,d,e,f,g,h,i,j){if("nodeName"in a&&/img/i.test(a.nodeName))for(var l=arguments.length-1;l>=1;l--)arguments[l]=arguments[l]*b;else"undefined"==typeof j&&(arguments[1]*=b,arguments[2]*=b,arguments[3]*=b,arguments[4]*=b);c.apply(this,arguments)}}var e=function(a,b){this._bIsPainted=!1,this._android=n(),this._htOption=b,this._elCanvas=document.createElement("canvas"),this._elCanvas.width=b.width,this._elCanvas.height=b.height,a.appendChild(this._elCanvas),this._el=a,this._oContext=this._elCanvas.getContext("2d"),this._bIsPainted=!1,this._elImage=document.createElement("img"),this._elImage.style.display="none",this._el.appendChild(this._elImage),this._bSupportDataURI=null};return e.prototype.draw=function(a){var b=this._elImage,c=this._oContext,d=this._htOption,e=a.getModuleCount(),f=d.width/e,g=d.height/e,h=Math.round(f),i=Math.round(g);b.style.display="none",this.clear();for(var j=0;e>j;j++)for(var k=0;e>k;k++){var l=a.isDark(j,k),m=k*f,n=j*g;c.strokeStyle=l?d.colorDark:d.colorLight,c.lineWidth=1,c.fillStyle=l?d.colorDark:d.colorLight,c.fillRect(m,n,f,g),c.strokeRect(Math.floor(m)+.5,Math.floor(n)+.5,h,i),c.strokeRect(Math.ceil(m)-.5,Math.ceil(n)-.5,h,i)}this._bIsPainted=!0},e.prototype.makeImage=function(){this._bIsPainted&&d.call(this,a)},e.prototype.isPainted=function(){return this._bIsPainted},e.prototype.clear=function(){this._oContext.clearRect(0,0,this._elCanvas.width,this._elCanvas.height),this._bIsPainted=!1},e.prototype.round=function(a){return a?Math.floor(1e3*a)/1e3:a},e}():function(){var a=function(a,b){this._el=a,this._htOption=b};return a.prototype.draw=function(a){for(var b=this._htOption,c=this._el,d=a.getModuleCount(),e=Math.floor(b.width/d),f=Math.floor(b.height/d),g=[''],h=0;d>h;h++){g.push("");for(var i=0;d>i;i++)g.push('');g.push("")}g.push("
"),c.innerHTML=g.join("");var j=c.childNodes[0],k=(b.width-j.offsetWidth)/2,l=(b.height-j.offsetHeight)/2;k>0&&l>0&&(j.style.margin=l+"px "+k+"px")},a.prototype.clear=function(){this._el.innerHTML=""},a}();QRCode=function(a,b){if(this._htOption={width:256,height:256,typeNumber:4,colorDark:"#000000",colorLight:"#ffffff",correctLevel:d.H},"string"==typeof b&&(b={text:b}),b)for(var c in b)this._htOption[c]=b[c];"string"==typeof a&&(a=document.getElementById(a)),this._android=n(),this._el=a,this._oQRCode=null,this._oDrawing=new q(this._el,this._htOption),this._htOption.text&&this.makeCode(this._htOption.text)},QRCode.prototype.makeCode=function(a){this._oQRCode=new b(r(a,this._htOption.correctLevel),this._htOption.correctLevel),this._oQRCode.addData(a),this._oQRCode.make(),this._el.title=a,this._oDrawing.draw(this._oQRCode),this.makeImage()},QRCode.prototype.makeImage=function(){"function"==typeof this._oDrawing.makeImage&&(!this._android||this._android>=3)&&this._oDrawing.makeImage()},QRCode.prototype.clear=function(){this._oDrawing.clear()},QRCode.CorrectLevel=d}(); \ No newline at end of file diff --git a/resources/template/help/css/index.css b/resources/template/help/css/index.css new file mode 100644 index 0000000..7198792 --- /dev/null +++ b/resources/template/help/css/index.css @@ -0,0 +1,88 @@ +.menu-container { + display: flex; + justify-content: space-around; + padding: 20px; +} + +body.light-mode .menu-column { + flex-basis: 88%; + background-color: #f4f4f4; + padding: 45px; + border-radius: 70px 15px 70px 15px; + box-shadow: 0 2px 20px 3px rgb(0 0 0 / 21%); +} + +body.dark-mode .menu-column { + flex-basis: 88%; + background-color: #303030; + padding: 45px; + border-radius: 70px 15px 70px 15px; + box-shadow: 0 2px 20px 3px rgb(0 0 0 / 21%); +} + +body.light-mode .menu-column h2 { + color: #333; + font-size: 50px; + margin: 0 0 15px 0; +} + +body.dark-mode .menu-column h2 { + color: cornsilk; + font-size: 50px; + margin: 0 0 15px 0; +} + +body.dark-mode .menu-column h3 { + color: cornsilk; + margin: 0 0 25px 0; +} + +body.light-mode .menu-column h3 { + color: #333; + margin: 0 0 25px 0; +} + +body.light-mode .menu-item { + display: flex; + font-size: 34px; + padding: 20px; + background-color: #e9e9e9; + border-radius: 26px; + cursor: pointer; + justify-content: center; + font-weight: bold; +} + +body.dark-mode .menu-item { + color: cornsilk; + display: flex; + font-size: 34px; + padding: 20px; + background-color: #1e1e1e; + border-radius: 26px; + cursor: pointer; + justify-content: center; + font-weight: bold; +} + +.menu-item:hover { + background-color: #d6d6d6; +} + +body.light-mode .menu-description { + display: flex; + font-size: 27px; + color: #666; + margin: 10px 0 20px 15px; +} + +body.dark-mode .menu-description { + display: flex; + font-size: 27px; + color: #b4b4b4; + margin: 10px 0 20px 15px; +} + +.spacer { + height: 100px; +} \ No newline at end of file diff --git a/resources/template/help/html/index.html b/resources/template/help/html/index.html new file mode 100644 index 0000000..892d5c9 --- /dev/null +++ b/resources/template/help/html/index.html @@ -0,0 +1,36 @@ +{{extend defaultLayout}} {{block 'css'}} + + +{{/block}} {{block 'main'}} +
+ + + +{{/block}} \ No newline at end of file diff --git a/resources/template/kuaishou/css/commnet.css b/resources/template/kuaishou/css/commnet.css new file mode 100644 index 0000000..126adea --- /dev/null +++ b/resources/template/kuaishou/css/commnet.css @@ -0,0 +1,426 @@ +.container { + background-color: #f4f4f4; + margin: 0; + padding: 20px; + width: 1440px; + height: auto; +} + +body.dark-mode .logo { + width: 133%; + height: 245px; + margin: 0 0 50px -55px; + background-size: cover; + background-position: center; + background-attachment: fixed; + background-image: url(../../../image/kuaishou/logo.png); +} + +body.light-mode .logo { + width: 133%; + height: 245px; + margin: 0 0 50px -55px; + background-size: cover; + background-position: center; + background-attachment: fixed; + background-image: url(../../../image/kuaishou/logo.png); +} + +.comment-container { + max-width: 100%; + /* 宽度设置为百分之百,以适应不同屏幕大小 */ + margin: 0 auto; + overflow: auto; + /* 添加滚动条以处理大量评论 */ +} + +.comment { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + /* border-bottom: 1px solid #e7d8d8; */ + padding: 40px; + /* 调整填充以改善间距 */ +} + +.user-avatar { + margin-bottom: 50px; + width: 187.5px; + /* 调整尺寸 */ + height: 187.5px; + /* 调整尺寸 */ + border-radius: 50%; + margin-right: 33.75px; + /* 调整边距 */ + -o-object-fit: cover; + object-fit: cover; + -webkit-box-shadow: 0 20px 50px 0 rgb(0 0 0 / 30%); + box-shadow: 0 20px 50px 0 rgb(0 0 0 / 30%); +} + +.comment-content { + -webkit-box-flex: 1; + -webkit-flex: 1; + -moz-box-flex: 1; + -ms-flex: 1; + flex: 1; + /* overflow: hidden; */ +} + +.user-info { + margin-bottom: 50px; + font-size: 50px; + color: #888; + position: relative; + /* 将容器设置为相对定位 */ +} + +.Z3o6vw6l { + display: inline-block; + padding: 2px 20px 2px 20px; + border-radius: 13px; + margin-left: 10px; + font-size: 45px; +} + +.comment-imgbox { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + margin: 20px 0; + overflow: hidden; + -webkit-box-shadow: 0 20px 50px 0 rgba(0, 0, 0, 0.3); + box-shadow: 0 20px 50px 0 rgba(0, 0, 0, 0.3); + border-radius: 25px; + width: 95%; + -webkit-box-flex: 1; + -webkit-flex: 1; + -moz-box-flex: 1; + -ms-flex: 1; + flex: 1; + /* 让容器自动调整大小 */ +} + +.comment-imgbox_1 { + border-radius: 25px; + -o-object-fit: contain; + object-fit: contain; + /* 图片按原比例完整显示在容器内 */ + width: 100%; + /* 让图片宽度充满父容器 */ + height: 100%; + /* 让图片高度充满父容器 */ +} + +.comment-text { + font-size: 60px; + -webkit-box-align: center; + -webkit-align-items: center; + -moz-box-align: center; + -ms-flex-align: center; + align-items: center; + letter-spacing: 0.5px; + position: relative; + line-height: 1.6; +} + +.comment-text img { + display: inline-block; + vertical-align: middle; + -webkit-transform: translateY(-10%) scale(0.9); + -moz-transform: translateY(-10%) scale(0.9); + -ms-transform: translateY(-10%) scale(0.9); + -o-transform: translateY(-10%) scale(0.9); + transform: translateY(-10%) scale(0.9); +} + +.like-section { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -webkit-align-items: center; + -moz-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: justify; + -webkit-justify-content: space-between; + -moz-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + /* 将子元素分别靠左和靠右 */ + color: #888; + margin-top: 37.5px; + white-space: nowrap; + /* 防止文本换行 */ +} + +.info-content { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -webkit-align-items: center; + -moz-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-flex: 1; + -webkit-flex: 1; + -moz-box-flex: 1; + -ms-flex: 1; + flex: 1; +} + +.additional-info { + font-size: 45px; + letter-spacing: 2px; + /* 调整字间距*/ +} + +.like_info { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + margin-left: auto; +} + +.like-icon { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + margin-left: auto; +} + +.like-count { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -webkit-align-items: center; + -moz-box-align: center; + -ms-flex-align: center; + align-items: center; + font-size: 50px; + /* 调整字体大小 */ + margin-left: auto; +} + +.video_info_container { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: justify; + -webkit-justify-content: space-between; + -moz-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-align: center; + -webkit-align-items: center; + -moz-box-align: center; + -ms-flex-align: center; + align-items: center; + /* 垂直居中 */ + max-width: 1200px; + margin: 0 auto; + padding: 20px; + color: #3a3a3a; +} + +.svg_container { + margin-top: 10px; + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -moz-box-orient: vertical; + -moz-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + margin: 0 30px 0 -45px; +} + +.svg_container img { + width: 650px; + height: auto; + margin-bottom: 20px; +} + +.top-info { + /* margin-top: 50px; 添加顶部间距 */ + -webkit-box-align: center; + -webkit-align-items: center; + -moz-box-align: center; + -ms-flex-align: center; + align-items: center; + padding: 10px; + letter-spacing: 6px; + /* 调整字间距*/ + font-size: 45px; + white-space: normal; + /* 允许自动换行 */ + word-break: break-all; + /* 如果单词过长,允许在任意位置换行 */ + text-align: left; +} + +.qrcode_box { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -moz-box-orient: vertical; + -moz-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-align: center; + -webkit-align-items: center; + -moz-box-align: center; + -ms-flex-align: center; + align-items: center; + margin-right: -40px; +} + +.qrcode { + margin-top: 80px; +} + +.qrcode_text { + font-size: 45px; + margin-top: 20px; + /* 调整垂直间距 */ +} + +/* 深色模式样式 */ +body.dark-mode { + background-color: #121212; + color: #fff; + /* 其他深色模式下的样式 */ +} + +/* 浅色模式样式 */ +body.light-mode { + background-color: #f4f4f4; + color: #333; + /* 其他浅色模式下的样式 */ +} + +body.dark-mode .container { + background-color: #121212; + color: #fff; +} + +/* 针对特定元素的样式 */ +body.dark-mode .comment-text { + color: #f4f4f4; +} + +body.dark-mode .video_info_container { + color: #c3c3c3; +} + +body.dark-mode .comment-text img { + display: inline-block; + vertical-align: middle; + -webkit-transform: translateY(-10%) scale(0.9); + -moz-transform: translateY(-10%) scale(0.9); + -ms-transform: translateY(-10%) scale(0.9); + -o-transform: translateY(-10%) scale(0.9); + transform: translateY(-10%) scale(0.9); +} + +body.light-mode .comment-text { + color: #333; +} + +body.light-mode .comment-imgbox { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + margin: 20px 0; + overflow: hidden; + -webkit-box-shadow: 0 20px 50px 0 rgba(0, 0, 0, 0.3); + box-shadow: 0 20px 50px 0 rgba(0, 0, 0, 0.3); + border-radius: 25px; + width: 95%; + -webkit-box-flex: 1; + -webkit-flex: 1; + -moz-box-flex: 1; + -ms-flex: 1; + flex: 1; +} + +.user-avatar .comment-imgbox { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + margin: 20px 0; + overflow: hidden; + -webkit-box-shadow: 0 20px 50px 0 rgba(0, 0, 0, 0.3); + box-shadow: 0 20px 50px 0 rgba(0, 0, 0, 0.3); + border-radius: 25px; + width: 95%; + -webkit-box-flex: 1; + -webkit-flex: 1; + -moz-box-flex: 1; + -ms-flex: 1; + flex: 1; +} + +body.dark-mode .comment-imgbox { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -ms-flexbox; + display: flex; + margin: 20px 0; + overflow: hidden; + -webkit-box-shadow: 0px 10px 100px 0px #ffffff1f; + box-shadow: 0px 10px 100px 0px #ffffff1f; + border-radius: 25px; + width: 95%; + -webkit-box-flex: 1; + -webkit-flex: 1; + -moz-box-flex: 1; + -ms-flex: 1; + flex: 1; +} + +body.dark-mode .user-avatar { + margin-bottom: 50px; + width: 187.5px; + height: 187.5px; + border-radius: 50%; + margin-right: 33.75px; + -o-object-fit: cover; + object-fit: cover; + -webkit-box-shadow: 0px 10px 20px 0px #ffffff1a; + box-shadow: 0px 10px 20px 0px #ffffff1a; +} \ No newline at end of file diff --git a/resources/template/kuaishou/html/comment.html b/resources/template/kuaishou/html/comment.html new file mode 100644 index 0000000..6aa4bfe --- /dev/null +++ b/resources/template/kuaishou/html/comment.html @@ -0,0 +1,84 @@ +{{extend defaultLayout}} {{block 'css'}} + + +{{/block}} {{block 'main'}} + +
+
+ Logo +
评论数量:{{CommentLength}}条
+ {{if Type == '视频'}} +
视频大小:{{VideoSize}}MB
+
点赞数量:{{likeCount}}
+
观看次数:{{viewCount}}
+ {{else if Type == '图集'}} +
图片数量:{{ImageLength}}张
+ {{/if}} +
+
+
+ {{if Type == '视频'}} +
视频直链(永久)
+ {{else if Type == '图集'}} +
图集分享链接 共{{ImageLength}}张
+ {{/if}} +
+
+ +
+ {{each CommentsData val}} + +
+ +
+ +
{{@val.text}}
+ {{if (val.commentimage || val.sticker) != null}} +
+ +
+ {{/if}} + +
+
+ {{/each}} +
+ +{{/block}} \ No newline at end of file diff --git a/src/apps/admin.ts b/src/apps/admin.ts new file mode 100644 index 0000000..2445c5e --- /dev/null +++ b/src/apps/admin.ts @@ -0,0 +1,306 @@ +import { Config, Render, Common } from '@/module' +import karin, { Plugin, KarinMessage, logger } from 'node-karin' +import { bilibiliLogin, douyinLogin } from '@/platform' +import path from 'path' +import fs from 'node:fs' + +export const task = Config.app.rmmp4 && karin.task('[kkk-视频缓存自动删除]', '0 0 4 * * *', async () => { + try { + await removeAllFiles(Common.tempDri.video) + logger.mark(Common.tempDri.video + '目录下所有文件已删除') + } catch (err) { + console.error('删除文件时出错:', err) + } +}) + +export const biLogin = karin.command(new RegExp(/^#?(kkk)?\s*B站\s*(扫码)?\s*登录$/i), async (e) => { + await bilibiliLogin(e) + return true +}, { permission: 'group.admin', name: 'kkk-ck管理' }) + +export const dylogin = karin.command(/^#?(kkk)?抖音(扫码)?登录$/, async (e) => { + await douyinLogin(e) + return true +}, { permission: 'group.admin', name: 'kkk-ck管理' }) + +export const setdyck = karin.command(new RegExp(/^#?(kkk)?s*设置抖音ck$/i), async (e) => { + const msg = await e.reply('请发在120秒内送抖音ck\n教程:https://ikenxuan.github.io/kkkkkk-10086/docs/intro/other#%E9%85%8D%E7%BD%AE%E4%B8%8D%E5%90%8C%E5%B9%B3%E5%8F%B0%E7%9A%84-cookies\n') + const context = await karin.ctx(e) + Config.modify('cookies', 'douyin', context.msg) + await e.bot.RecallMessage(e.contact, msg.message_id) + await e.reply('设置成功!', { at: true }) + return true +}, { permission: 'master', name: 'kkk-ck管理', event: 'message.private_message' }) + +export const setbilick = karin.command(new RegExp(/^#?(kkk)?s*设置s*(B站)ck$/i), async (e) => { + const msg = await e.reply('请发在120秒内送B站ck\n教程:https://ikenxuan.github.io/kkkkkk-10086/docs/intro/other#%E9%85%8D%E7%BD%AE%E4%B8%8D%E5%90%8C%E5%B9%B3%E5%8F%B0%E7%9A%84-cookies\n') + const context = await karin.ctx(e) + Config.modify('cookies', 'bilibili', context.msg) + await e.bot.RecallMessage(e.contact, msg.message_id) + await e.reply('设置成功!', { at: true }) + return true +}, { permission: 'master', name: 'kkk-ck管理', event: 'message.private_message' }) + + +// 插件类 +export class Admin extends Plugin { + constructor () { + super({ + name: 'kkk-管理', + rule: [ + { reg: createSwitchRegExp('app'), fnc: 'ConfigSwitch', permission: 'master' }, + { reg: createNumberRegExp('app'), fnc: 'ConfigNumber', permission: 'master' }, + { reg: createCustomRegExp('app'), fnc: 'ConfigCustom', permission: 'master' }, + { reg: createSwitchRegExp('douyin'), fnc: 'ConfigSwitch', permission: 'master' }, + { reg: createNumberRegExp('douyin'), fnc: 'ConfigNumber', permission: 'master' }, + { reg: createNumberRegExp('douyin'), fnc: 'ConfigCustom', permission: 'master' }, + { reg: createSwitchRegExp('bilibili'), fnc: 'ConfigSwitch', permission: 'master' }, + { reg: createNumberRegExp('bilibili'), fnc: 'ConfigNumber', permission: 'master' }, + { reg: createNumberRegExp('bilibili'), fnc: 'ConfigCustom', permission: 'master' }, + { reg: createSwitchRegExp('upload'), fnc: 'ConfigSwitch', permission: 'master' }, + { reg: createNumberRegExp('upload'), fnc: 'ConfigNumber', permission: 'master' }, + { reg: createNumberRegExp('upload'), fnc: 'ConfigCustom', permission: 'master' }, + { reg: createSwitchRegExp('kuaishou'), fnc: 'ConfigSwitch', permission: 'master' }, + { reg: createNumberRegExp('kuaishou'), fnc: 'ConfigNumber', permission: 'master' }, + { reg: createNumberRegExp('kuaishou'), fnc: 'ConfigCustom', permission: 'master' }, + { reg: /^#kkk设置$/, fnc: 'index_Settings', permission: 'master' }, + { reg: /^#?kkk删除缓存$/, fnc: 'deleteCache', permission: 'master' } + ] + }) + } + async deleteCache (e: KarinMessage): Promise { + await removeAllFiles(Common.tempDri.video) + await e.reply(Common.tempDri.video + '目录下所有文件已删除') + return true + } + // 配置开关 + async ConfigSwitch (e: any): Promise { + const platform = this.getPlatformFromMessage(e.msg) + const regRet = createSwitchRegExp(platform).exec(e.msg) + if (regRet) { + const key = regRet[1] + const isOn = regRet[2] === '开启' + Config.modify(platform, PlatformTypeConfig[platform].types[key], isOn) + await this.index_Settings(e) + return true + } + return false + } + + // 修改数值配置 + async ConfigNumber (e: KarinMessage): Promise { + const platform = this.getPlatformFromMessage(e.msg) + const regRet = createNumberRegExp(platform).exec(e.msg) + if (regRet) { + const configType = PlatformTypeConfig[platform].numberConfig[regRet[1]] + const number = this.checkNumberValue(Number(regRet[2]), configType.limit) + Config.modify(platform, configType.key, number) + await this.index_Settings(e) + return true + } + return true + } + + // 处理自定义内容 + async ConfigCustom (e: KarinMessage): Promise { + const platform = this.getPlatformFromMessage(e.msg) + const regRet = createCustomRegExp(platform).exec(e.msg) + + if (regRet) { + const key = regRet[1] // 提取设置的关键字 + const customValue = regRet[2].trim() // 提取后方的内容 + + // 检查 customConfig 是否存在 + const customConfig = PlatformTypeConfig[platform]?.customConfig + if (!customConfig || !customConfig[key]) { + await e.reply(`无效的设置项:${key}`) + return false + } + const configKey = customConfig[key].key // 提取实际的 key + Config.modify(platform, configKey, customValue) + await this.index_Settings(e) + return true + } + return false + } + + // 渲染设置图片 + async index_Settings (e: KarinMessage): Promise { + let _cfg = Config.All() + const statusData = getStatus(_cfg) // 获取状态对象 + const img = await Render('admin/index', { data: statusData }) + await e.reply(img) + return true + } + + // 根据消息判断平台 + getPlatformFromMessage (msg: string): 'app' | 'douyin' | 'bilibili' | 'upload' | 'kuaishou' { + if (/抖音/.test(msg)) return 'douyin' + if (/B站/.test(msg)) return 'bilibili' + if (/上传/.test(msg)) return 'upload' + if (/快手/.test(msg)) return 'kuaishou' + return 'app' + } + + // 检查数值范围 + checkNumberValue (value: number, limit: string): number { + const [ min, max ] = limit.split('-').map(Number) + return Math.min(Math.max(value, min), max) + } +} + +// 文件删除工具 +async function removeAllFiles (dir: string): Promise { + const files = await fs.promises.readdir(dir) + for (const file of files) { + const filePath = path.join(dir, file) + const stats = await fs.promises.stat(filePath) + if (stats.isDirectory()) { + await removeAllFiles(filePath) + await fs.promises.rmdir(filePath) + } else { + await fs.promises.unlink(filePath) + } + } +} + +// 获取状态渲染 +function getStatus (data: Record): Record { + const result: Record = {} + + const processValue = (value: any): string => { + if (typeof value === 'boolean') { + return `
${value ? '已开启' : '已关闭'}
` + } else if (typeof value === 'number') { + return `
${value !== null ? value : '未配置'}
` + } else if (typeof value === 'string') { + return `
${value.length > 12 ? `${value.slice(0, 12)}...` : value}
` + } else if (Array.isArray(value)) { + return value.length === 0 + ? `
未配置
` + : `
已配置 ${value.length} 项
` + } else if (value === null) { + return `
未配置
` + } + return `
未知类型
` + } + + const processObject = (obj: any): Record => { + const res: Record = {} + for (const key in obj) { + const value = obj[key] + if (value !== null && typeof value === 'object' && !Array.isArray(value)) { + // 如果是子对象,递归处理 + res[key] = processObject(value) + } else { + // 处理基础类型 + res[key] = processValue(value) + } + } + return res + } + + for (const key in data) { + result[key] = processObject(data[key]) + } + + return result +} + + +// 定义开关类型配置的接口 +interface PlatformType { + name: string + types: Record + numberConfig: Record + customConfig?: Record +} + +const PlatformTypeConfig: Record = { + upload: { + name: '上传', + types: { + 上传拦截: 'usefilelimit', + 上传base64: 'sendbase64', + 上传压缩: 'compress', + 上传群文件: 'usegroupfile' + }, + numberConfig: { + 上传拦截阈值: { key: 'filelimit', limit: '0-1000000' }, + 上传压缩触发值: { key: 'compresstrigger', limit: '0-1000000' }, + 上传压缩后的值: { key: 'compressvalue', limit: '0-1000000' }, + 上传群文件阈值: { key: 'groupfilevalue', limit: '0-1000000' } + } + }, + app: { + name: 'APP', + types: { + 缓存删除: 'rmmp4', + 视频解析: 'videotool', + 默认解析: 'defaulttool', + 转发: 'sendforwardmsg', + 上传限制: 'usefilelimit', + API服务: 'APIServer', + base64: 'sendbase64' + }, + numberConfig: { + 渲染精度: { key: 'renderScale', limit: '50-200' }, + 优先级: { key: 'priority', limit: '0-114514' }, + 限制: { key: 'filelimit', limit: '5-114514' }, + 主题: { key: 'Theme', limit: '0-2' } + } + }, + douyin: { + name: '抖音', + types: { + 抖音解析: 'switch', + 抖音评论: 'comment', + 抖音推送: 'push.switch', + 抖音推送日志: 'push.log', + 抖音解析提示: 'tip', + 抖音高清语音: 'sendHDrecord', + 抖音动态解析: 'push.parsedynamic' + }, + numberConfig: { + 抖音评论数量: { key: 'numcomment', limit: '0-999999' } + }, + customConfig: { + 抖音推送表达式: { key: 'push.cron', type: 'string' }, + 抖音推送权限: { key: 'push.permission', type: 'string' } + } + }, + bilibili: { + name: 'B站', + types: { + B站解析: 'switch', + B站评论: 'comment', + B站推送: 'push.switch', + B站推送日志: 'push.log', + B站解析提示: 'tip', + B站动态解析: 'push.parsedynamic', + B站内容优先: 'videopriority' + }, + numberConfig: { + B站评论数量: { key: 'numcomment', limit: '0-999999' } + }, + customConfig: { + B站推送表达式: { key: 'push.cron', type: 'string' }, + B站推送权限: { key: 'push.permission', type: 'string' } + } + }, + kuaishou: { + name: '快手', + types: { + 快手解析: 'switch', + 快手解析提示: 'tip' + }, + numberConfig: { + 快手评论数量: { key: 'numcomment', limit: '0-30' } + } + } +} + +// 创建正则表达式的函数 +const createSwitchRegExp = (platform: string): RegExp => new RegExp(`^#kkk设置(${Object.keys(PlatformTypeConfig[platform].types).join('|')})(开启|关闭)$`) +const createNumberRegExp = (platform: string): RegExp => new RegExp(`^#kkk设置(${Object.keys(PlatformTypeConfig[platform].numberConfig).join('|')})(\\d+)$`) +const createCustomRegExp = (platform: string): RegExp => new RegExp(`^#kkk设置(${Object.keys(PlatformTypeConfig[platform].customConfig ?? {}).join('|')})(.+)$`) \ No newline at end of file diff --git a/src/apps/help.ts b/src/apps/help.ts new file mode 100644 index 0000000..2ef5661 --- /dev/null +++ b/src/apps/help.ts @@ -0,0 +1,103 @@ +import karin, { render, segment, restart, Update, common } from 'node-karin' +import { Render, Version, Common } from '@/module' +import { markdown } from '@karinjs/md-html' +import fs from 'node:fs' +import { execSync } from 'node:child_process' + +export const help = karin.command(/^#?(kkk)?帮助$/, async (e) => { + const img = await Render('help/index') + await e.reply(img) + return true +}, { name: 'kkk-帮助' }) + +export const version = karin.command(/^#?kkk版本$/, async (e) => { + const changelogs = fs.readFileSync(Version.pluginPath + '/CHANGELOG.md', 'utf8') + const html = markdown(changelogs, { + gitcss: Common.useDarkTheme() ? 'github-markdown-dark.css' : 'github-markdown-light.css' + }) + const htmlPath = `${Version.karinPath}/temp/html/${Version.pluginName}/help/version.html` + fs.writeFileSync(htmlPath, html) + const img = await render.renderHtml(htmlPath) + await e.reply(segment.image(img)) + return true +}, { name: 'kkk-版本' }) + +export const changelogs = karin.command(/^#?kkk更新日志$/, async (e) => { + const commits = getLatestCommitsSync() + let htmlString = '' + + for (const commit of commits) { + htmlString += ` +
+

${commit.message}

+

COMMITTER: ${commit.committer}

+

SHA: ${commit.sha}

+

+` + } + const html = markdown(htmlString, { + gitcss: Common.useDarkTheme() ? 'github-markdown-dark.css' : 'github-markdown-light.css' + }) + const htmlPath = `${Version.karinPath}/temp/html/${Version.pluginName}/help/changelogs.html` + fs.writeFileSync(htmlPath, html) + const img = await render.renderHtml(htmlPath) + await e.reply(segment.image(img)) + return true +}, { name: 'kkk-更新日志', permission: 'master' }) + +export const update = karin.command(/^#?kkk更新$/, async (e) => { + let [ name, cmd ] = [ Version.pluginName, 'git pull' ] + if (e.msg.includes('强制')) cmd = 'git reset --hard && git pull --allow-unrelated-histories' + const { data, status } = await Update.update(Version.pluginPath, cmd) + await e.bot.sendForwardMessage(e.contact, common.makeForward([ segment.text(`更新${name}...${data}`) ], e.sender.uid, e.sender.nick)) + if (status === 'ok') { + try { + await e.reply(`\n更新完成,开始重启 本次运行时间:${common.uptime()}`, { at: true }) + await restart(e.self_id, e.contact, e.message_id) + return true + } catch (error) { + await e.reply(`${Version.pluginName}重启失败,请手动重启以应用更新!`) + } + } + return true +}, { name: 'kkk-更新', permission: 'master' }) + +interface CommitLog { + sha: string + committer: string + message: string +} + +const getLatestCommitsSync = (): CommitLog[] => { + const command = 'git log -150 --pretty=format:"%h %an %s"' + const output = execSync(command, { cwd: Version.pluginPath }).toString() + + // 将输出分割成数组,每一项是一个commit记录 + const commits: string[] = output.trim().split('\n') + + return commits.map((commit) => { + // 分割SHA和其他信息 + const [ sha, ...rest ] = commit.split(' ') + // 找到冒号的位置,分割提交者和提交信息 + const spaceIndex = rest.findIndex(word => word.includes(':')) + const committerAndMessage = rest.slice(0, spaceIndex) + const committer = committerAndMessage.join(' ') + const message = rest.slice(spaceIndex).join(' ').replace(/^:/, '').trim() // 修复:移除冒号 + return { sha, committer, message } + }).slice(0, 50) // 只取前30个commit +} + +const setColor = (message: string): string => { + switch (true) { + case message.includes('feat'): + return '10px solid #a9ffb9' + case message.includes('fix'): + return '10px solid #ffe96e;' + case message.includes('perf'): + return '10px solid #928eff' + case message.includes('refactor'): + return '10px solid #ff3b3b' + default: + return '2px solid' + } +} \ No newline at end of file diff --git a/src/apps/push.ts b/src/apps/push.ts new file mode 100644 index 0000000..9e6a48b --- /dev/null +++ b/src/apps/push.ts @@ -0,0 +1,40 @@ +import karin from 'node-karin' +import { Config } from '@/module' +import { getDouyinData, getBilibiliData } from '@ikenxuan/amagi' +import { DouYinpush, Bilibilipush } from '@/platform' + +export const douyinPush = Config.douyin.push.switch && karin.task('抖音推送', Config.douyin.push.cron, async () => { + await new DouYinpush().action() + return true +}, { name: 'kkk-推送功能-抖音', notAdapter: [ 'QQBot' ], log: Config.douyin.push.log }) + +export const bilibiliPush = Config.bilibili.push.switch && karin.task('B站推送', Config.bilibili.push.cron, async () => { + await new Bilibilipush().action() + return true +}, { name: 'kkk-推送功能-B站', notAdapter: [ 'QQBot' ], log: Config.bilibili.push.log }) + +export const forcePush = karin.command(new RegExp(/#(抖音|B站)全部?强制推送/), async (e) => { + if (e.msg.includes('抖音')) { + await new DouYinpush(e, true).action() + return true + } else if (e.msg.includes('B站')) { + await new Bilibilipush(e, true).action() + return true + } + return true +}, { name: 'Ciallo~(∠・ω< )⌒☆' ,permission: 'master'}) + +export const setdyPush = Config.bilibili.push.switch && karin.command(new RegExp(/^#设置抖音推送/), async (e) => { + const data = await getDouyinData('搜索数据', Config.cookies.douyin, { query: e.msg.replace(/^#设置抖音推送/, '') }) + await e.reply(await new DouYinpush(e).setting(data)) + return true +}, { name: 'kkk-推送功能-设置', event: 'message.group_message' }) + +export const setbiliPush = Config.bilibili.push.switch && karin.command(new RegExp(/^#设置[bB]站推送(?:[Uu][Ii][Dd]:)?(\d+)$/), async (e) => { + const match = /^#设置[bB]站推送(?:UID:)?(\d+)$/.exec(e.msg) + if (match && match[1]) { + const data = await getBilibiliData('用户主页数据', Config.cookies.bilibili, { host_mid: match[1] }) + await e.reply(await new Bilibilipush(e).setting(data)) + } + return true +}, { name: 'kkk-推送功能-设置', event: 'message.group_message', permission: Config.bilibili.push.permission }) \ No newline at end of file diff --git a/src/apps/tools.ts b/src/apps/tools.ts new file mode 100644 index 0000000..33ac026 --- /dev/null +++ b/src/apps/tools.ts @@ -0,0 +1,61 @@ +import karin from 'node-karin' +import { Config, Common } from '@/module' +import { getDouyinID, fetchDouyinData, DouYin } from '@/platform/douyin' +import { getBilibiliID, fetchBilibiliData, Bilibili } from '@/platform/bilibili' +import { getKuaishouID, fetchKuaishouData, Kuaishou } from '@/platform/kuaishou' + +const reg = { + douyin: new RegExp('^.*((www|v|jx)\\.(douyin|iesdouyin)\\.com|douyin\\.com\\/(video|note)).*'), + bilibili: new RegExp(/(bilibili.com|b23.tv|t.bilibili.com|^BV[a-zA-Z0-9]{10}$)/), + kuaishou: new RegExp('^((.*)快手(.*)快手(.*)|(.*)v.kuaishou(.*))$') +} + +const douyin = karin.command(reg.douyin, async (e) => { + const url = String(e.msg.match(/(http|https):\/\/.*\.(douyin|iesdouyin)\.com\/[^ ]+/g)) + const iddata = await getDouyinID(url) + const data = await fetchDouyinData(iddata.type, iddata) + await new DouYin(e, iddata).RESOURCES(data) + return true +}, { name: 'kkk-视频功能-抖音', priority: Config.app.defaulttool ? -Infinity : 800 }) + +const bilibili = karin.command(reg.bilibili, async (e) => { + e.msg = e.msg.replace(/\\/g, '') + const urlRex = /(https?:\/\/)?(www\.bilibili\.com|m\.bilibili\.com)\/[a-zA-Z0-9._%&+=\-\/?]*[a-zA-Z0-9_\/?=&#%+]*$/g + const bShortRex = /https?:\/\/b23\.tv\/([a-zA-Z0-9]+)/ + let url: string | null = '' + + if (urlRex.test(e.msg)) { + const matchResult = e.msg.match(urlRex) + url = matchResult ? matchResult[0] : null + } else if (bShortRex.test(e.msg)) { + const match = bShortRex.exec(e.msg) + url = match && match[0] + } else if (/^BV[1-9a-zA-Z]{10}$/.test(e.msg)) { + url = `https://www.bilibili.com/video/${e.msg}` + } + const iddata = await getBilibiliID(url as string) + const data = await fetchBilibiliData(iddata.type, iddata) + await new Bilibili(e, data).RESOURCES(data) + return true +}, { name: 'kkk-视频功能-B站', priority: Config.app.defaulttool ? -Infinity : 800 }) + +const kuaishou = karin.command(reg.kuaishou, async (e) => { + const iddata = await getKuaishouID(String(e.msg.replaceAll('\\', '').match(/https:\/\/v\.kuaishou\.com\/\w+/g))) + const WorkData = await fetchKuaishouData(iddata.type, iddata) + await new Kuaishou(e, iddata).RESOURCES(WorkData) + return true +}, { name: 'kkk-视频功能-快手', priority: Config.app.defaulttool ? -Infinity : 800 }) + +export const prefix = karin.command(new RegExp('^#?(解析|kkk解析)'), async (e) => { + e.msg = await Common.getReplyMessage(e) + if (reg.douyin.test(e.msg)) { + return await douyin.fn(e) + } else if (reg.bilibili.test(e.msg)) { + return await bilibili.fn(e) + } + return true +}, { name: 'kkk-视频功能-引用解析' }) + +export const douyinAPP = Config.douyin.switch && douyin +export const bilibiliAPP = Config.bilibili.switch && bilibili +export const kuaishouAPP = Config.kuaishou.switch && kuaishou \ No newline at end of file diff --git a/src/clean.ts b/src/clean.ts new file mode 100644 index 0000000..9ddfed8 --- /dev/null +++ b/src/clean.ts @@ -0,0 +1,30 @@ +#!/usr/bin/env node + +import fs from 'node:fs' + +/** + * @description 获取package.json路径 + */ +const getPkgPath = () => process.cwd() + '/package.json' + +/** + * @description 读取package.json + */ +const readPkg = () => JSON.parse(fs.readFileSync(getPkgPath(), 'utf-8')) + +/** + * @description 写入package.json + * @param pkg package.json + */ +const writePkg = (pkg: any) => fs.writeFileSync(getPkgPath(), JSON.stringify(pkg, null, 2)) + +/** + * @description 删除devDependencies + */ +const clean = () => { + const pkg = readPkg() + delete pkg.devDependencies + writePkg(pkg) +} + +clean() \ No newline at end of file diff --git a/src/index.ts b/src/index.ts new file mode 100644 index 0000000..d5e6475 --- /dev/null +++ b/src/index.ts @@ -0,0 +1,14 @@ +import { logger, common } from 'node-karin' +import { Version, Config } from '@/module' +import amagi from '@ikenxuan/amagi' + +const haha = new amagi({ + bilibili: Config.cookies.bilibili, + douyin: Config.cookies.douyin, + kuaishou: Config.cookies.kuaishou +}) +Config.app.APIServer && haha.startClient(Config.app.APIServerPort) + +common.mkdir(`${Version.karinPath}/temp/${Version.pluginName}/kkkdownload/video/`) +common.mkdir(`${Version.karinPath}/temp/${Version.pluginName}/kkkdownload/images/`) +logger.info(`${logger.green(`[插件:${Version.pluginName}]`)} ${logger.violet(`${Version.pluginVersion}`)} 初始化完成~`) \ No newline at end of file diff --git a/src/module/db/base.ts b/src/module/db/base.ts new file mode 100644 index 0000000..b692094 --- /dev/null +++ b/src/module/db/base.ts @@ -0,0 +1,20 @@ +import { join } from 'path' +import { Sequelize, DataTypes } from 'sequelize' +import { Version } from '@/module' +import { common } from 'node-karin' + +common.mkdir(`${Version.karinPath}/data/${Version.pluginName}`) + +const dataPath = join(Version.karinPath, 'data', Version.pluginName, 'push.db') + +/** 创建 Sequelize 实例,需要传入配置对象。 */ +const sequelize = new Sequelize({ + dialect: 'sqlite', + storage: dataPath, + logging: false +}) + +/** 测试数据库连接是否成功 */ +await sequelize.authenticate() + +export { sequelize, DataTypes } \ No newline at end of file diff --git a/src/module/db/index.ts b/src/module/db/index.ts new file mode 100644 index 0000000..3e2052c --- /dev/null +++ b/src/module/db/index.ts @@ -0,0 +1,197 @@ +import { sequelize, DataTypes } from './base' +import { Model } from 'sequelize' + + +export interface BilibiliDBType { + /** UP主UID */ + [host_mid: string]: { + /** 该UP主的昵称 */ + remark: string + /** UP主UID */ + host_mid: string + /** 动态发布时间,时间戳 */ + create_time: number + /** 要推送到的群组 */ + group_id: string[] + /** UP主头像url */ + avatar_img: string + /** 动态类型 */ + dynamic_type: string + /** 已缓存的动态ID列表 */ + dynamic_idlist: string[] + } +} + +export interface DouyinDBType { + [sec_uid: string]: { + /** 该博主的昵称 */ + remark: string + /** 博主UID */ + sec_uid: string + /** 作品发布时间,时间戳 */ + create_time: number + /** 要推送到的群组 */ + group_id: string[] + /** 已缓存的作品ID列表 */ + aweme_idlist: string[], + /** 博主头像url */ + avatar_img: string + /** 是否正在直播 */ + living: boolean + } +} + +interface ModelNameMap { + douyin: 'douyin' + bilibili: 'bilibili' +} + +export type AllDataType = { + douyin: { + [group_id: string]: DouyinDBType + }, + bilibili: { + [group_id: string]: BilibiliDBType + } +} + +sequelize.define( + 'douyin', + { + id: { + type: DataTypes.INTEGER, + primaryKey: true, + autoIncrement: true, + comment: '主键ID' + }, + group_id: { + type: DataTypes.STRING, + comment: '群组标识符' + }, + data: { + type: DataTypes.STRING, // 存储为字符串,JSON 格式 + defaultValue: '{}', + comment: '缓存数据' + } + }, + { + timestamps: true + } +) + +sequelize.define( + 'bilibili', + { + id: { + type: DataTypes.INTEGER, + primaryKey: true, + autoIncrement: true, + comment: '主键ID' + }, + group_id: { + type: DataTypes.STRING, + comment: '群组标识符' + }, + data: { + type: DataTypes.STRING, // 存储为字符串,JSON 格式 + defaultValue: '{}', + comment: '缓存数据' + } + }, + { + timestamps: true + } +) + +export class db { + /** + * 创建一个新的群组记录,具有默认值的新条目 + * @param ModelName 表单名称 + * @param group_id 群号 + * @param data 数据体 + * @returns + */ + async CreateSheet (ModelName: T, group_id: any, data: AllDataType[T][string]): Promise { + const Model = sequelize.models[ModelName] + const resolve = ( + await Model.create( + { + group_id: String(group_id), + data: JSON.stringify(data) + }, + { + raw: true + } + ) + ).dataValues + + return resolve + } + /** + * 获取对应表单的所有群组原始数据 + * @param ModelName 表单名称 + * @returns + */ + async FindAll (ModelName: T): Promise[T]> { + const Model = sequelize.models[ModelName] + + const groups = await Model.findAll({ + raw: true + }) + // 使用reduce方法将数组转换为对象 + const result = groups.reduce((accumulator: any, group: any) => { + // 将group_id作为键名,data作为键值 + accumulator[group.group_id] = JSON.parse(group.data) + return accumulator + }, {} as Record) + + return result as AllDataType[T] + } + + /** + * 获取指定群组的数据 + * @param ModelName 表单名称 + * @param Group_ID 群号 + * @returns + */ + async FindGroup (ModelName: T, Group_ID: string): Promise[T][string]> { + // AllDataType<'douyin'> 表示 { douyin: { [group_id: string]: DouyinDBType } }, + // AllDataType<'douyin'>['douyin'] 或 AllDataType<'douyin'>[T] 表示 { [group_id: string]: DouyinDBType },也就是 'douyin' 模型下,按照 group_id 索引的 DouyinDBType 对象。 + + const AllData = await this.FindAll(ModelName) + const groupData = AllData[Group_ID] // 获取对应群组数据 + + // 返回获取的群组数据,类型推导将根据 ModelName 自动选择 + return groupData as AllDataType[T][string] + } + + + /** + * 更新指定群组的数据 + * @param ModelName 表单名称 + * @param Group_ID 群号 + * @param NewData 新的数据对象 + * @returns + */ + async UpdateGroupData (ModelName: T, Group_ID: any, NewData: object = {}): Promise { + const Model = sequelize.models[ModelName] + const [ affectedRowsData ] = await Model.update( + { + data: JSON.stringify(NewData) + }, + { + where: { + group_id: Group_ID + }, + individualHooks: true + } + ) + return affectedRowsData + } + +} + +export const DB = new db() + +/** 每次调用都将强制同步已定义的模型 */ +await sequelize.sync({ alter: true }) \ No newline at end of file diff --git a/src/module/index.ts b/src/module/index.ts new file mode 100644 index 0000000..61f9f08 --- /dev/null +++ b/src/module/index.ts @@ -0,0 +1,2 @@ +export * from './utils' +export * from './db' \ No newline at end of file diff --git a/src/module/utils/Base.ts b/src/module/utils/Base.ts new file mode 100644 index 0000000..c908793 --- /dev/null +++ b/src/module/utils/Base.ts @@ -0,0 +1,257 @@ +import { Config, Common } from '@/module/utils' +import { Networks, mergeFile } from '@/module/utils' +import karin, { segment, logger, KarinMessage, KarinAdapter } from 'node-karin' +import fs from 'node:fs' + +interface uploadFileOptions { + /** 是否使用群文件上传 */ + useGroupFile?: boolean + /** 消息ID,如果有,则将使用该消息ID制作回复元素 */ + message_id?: string + /** 是否为主动消息 */ + active?: boolean + /** 主动消息参数 */ + activeOption?: { + /** 机器人账号 */ + uin: string + /** 群号 */ + group_id: string + } +} + +interface downloadFileOptions { + /** 视频链接 */ + video_url: string + /** 文件名 */ + title: title + /** 下载文件类型,默认为'.mp4'。 */ + filetype?: string + /** 自定义请求头,将使用该请求头下载文件。 */ + headers?: object + +} + +interface fileInfo { + /** 视频文件的绝对路径 */ + filepath: string + /** 视频文件大小 */ + totalBytes: number + /** 文件名:自定义 */ + originTitle?: title['originTitle'] + /** 文件名:tmp + 时间戳 */ + timestampTitle?: title['timestampTitle'] +} + +/** 最少都要传一个 */ +interface title { + /** 文件名:自定义 */ + originTitle?: string + /** 文件名:tmp + 时间戳 */ + timestampTitle?: string +} + +interface downLoadFileOptions { + /** 文件名 */ + title: string + /** + * 将使用该请求头下载文件。 + * @default {} + */ + headers?: object + /** + * 下载文件类型,默认为'.mp4'。 + * @default '.mp4' + */ + filetype?: string +} +export class Base { + e: KarinMessage + headers: any + _path: string + constructor (e: KarinMessage) { + this.e = e + this.headers = { + Accept: '*/*', + 'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6', + 'User-Agent': + 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36' + } + this._path = process.cwd()?.replace(/\\/g, '/') + } + + /** 检查是或否设置抖音ck */ + get allow (): boolean { + return Config.cookies.douyin !== '' + } + + /** 获取适配器名称 */ + get botadapter (): string { + return this.e.bot?.adapter?.name + } + + /** + * 上传视频文件 + * @param file - 包含本地视频文件信息的对象。 + * @param video_url 视频直链,无则传空字符串 + * @param options 上传参数 + * @returns + */ + async upload_file (file: fileInfo, video_url: string, options?: uploadFileOptions): Promise { + let sendStatus: boolean = true + let File: Buffer | string, newFileSize = file.totalBytes + + // 判断是否使用群文件上传 + if (options) { + options.useGroupFile = Config.upload.usegroupfile && (file.totalBytes > Config.upload.groupfilevalue) + } + + if (Config.upload.compress && (file.totalBytes > Config.upload.compresstrigger)) { + const Duration = await mergeFile('获取指定视频文件时长', { path: file.filepath }) + logger.warn(logger.yellow(`视频大小 (${file.totalBytes} MB) 触发压缩条件(设定值:${Config.upload.compresstrigger} MB),正在进行压缩至${Config.upload.compressvalue} MB...`)) + const msg1 = await karin.sendMsg( + String(this.e.self_id || options?.activeOption?.uin), + karin.contactGroup(this.e.group_id || String(options?.activeOption?.group_id)), + [ + segment.text(`视频大小 (${file.totalBytes} MB) 触发压缩条件(设定值:${Config.upload.compresstrigger} MB),正在进行压缩至${Config.upload.compressvalue} MB...`), + options?.message_id ? segment.reply(options.message_id) : segment.text('') + ] + ) + // 计算目标视频平均码率 + const targetBitrate = Common.calculateBitrate(Config.upload.compresstrigger, Duration) * 0.75 + // 执行压缩 + const startTime = Date.now() + file.filepath = await mergeFile('压缩视频', { path: file.filepath, targetBitrate, resultPath: `${Common.tempDri.video}tmp_${Date.now()}.mp4` }) + const endTime = Date.now() + // 再次检查大小 + newFileSize = await Common.getVideoFileSize(file.filepath) + logger.debug(`原始视频大小为: ${file.totalBytes.toFixed(2)} MB, ${logger.green(`经 FFmpeg 压缩后最终视频大小为: ${newFileSize.toFixed(2)} MB,原视频文件已删除`)}`) + await karin.sendMsg( + String(this.e.self_id || options?.activeOption?.uin), + karin.contactGroup(this.e.group_id || String(options?.activeOption?.group_id)), + [ + segment.text(`压缩后最终视频大小为: ${newFileSize.toFixed(2)} MB,压缩耗时:${((endTime - startTime) / 1000).toFixed(2)} 秒`), + segment.reply(msg1.message_id) + ] + ) + } + + // 是否先转换为base64 + if (Config.upload.sendbase64) { + const videoBuffer = await fs.promises.readFile(file.filepath) + File = `base64://${videoBuffer.toString('base64')}` + } else File = file.filepath + try { + // 是主动消息 + if (options?.active) { + if (options.useGroupFile) { // 是群文件 + const bot = karin.getBot(String(options.activeOption?.uin)) as KarinAdapter + const status = await bot.UploadGroupFile(String(options.activeOption?.group_id), File, file.originTitle ? file.originTitle : `tmp_${Date.now()}`) + status ? sendStatus = true : sendStatus = false + } else { // 不是群文件 + const status = await karin.sendMsg(String(options?.activeOption?.uin), karin.contactGroup(String(options?.activeOption?.group_id)), [ segment.video(File) ]) + status.message_id ? sendStatus = true : sendStatus = false + } + } + else { // 不是主动消息 + if (options?.useGroupFile) { // 是群文件 + const status = await this.e.bot.UploadGroupFile(this.e.group_id, File, file.originTitle ? file.originTitle : `tmp_${Date.now()}`) + status ? sendStatus = true : sendStatus = false + } else { // 不是群文件 + const status = await this.e.reply(segment.video(File) || video_url) + status.message_id ? sendStatus = true : sendStatus = false + } + } + return sendStatus + } catch (error) { + logger.error('视频文件上传错误,' + error) + return false + } finally { + await this.removeFile(file.filepath) + } + } + + + /** + * 下载视频并上传到群 + * @param video_url 视频链接 + * @param title 文件名,是一个对象,时间戳或自定义 + * @param opt 上传参数 + * @returns + */ + async DownLoadVideo (downloadOpt: downloadFileOptions, uploadOpt?: uploadFileOptions): Promise { + /** 获取文件大小 */ + const fileHeaders = await new Networks({ url: downloadOpt.video_url, headers: downloadOpt.headers || this.headers }).getHeaders() + const fileSizeContent = fileHeaders['content-range']?.match(/\/(\d+)/) ? parseInt(fileHeaders['content-range']?.match(/\/(\d+)/)[1], 10) : 0 + const fileSizeInMB = (fileSizeContent / (1024 * 1024)).toFixed(2) + const fileSize = parseInt(parseFloat(fileSizeInMB).toFixed(2)) + if (Config.upload.usefilelimit && fileSize > Config.upload.filelimit) { + await karin.sendMsg( + String(this.e.self_id || uploadOpt?.activeOption?.uin), + karin.contactGroup(this.e.group_id || String(uploadOpt?.activeOption?.group_id)), + [ segment.text(`视频:「${downloadOpt.title.originTitle ? downloadOpt.title.originTitle : 'Error: 文件名获取失败'}」大小 (${fileSizeInMB} MB) 超出最大限制(设定值:${Config.upload.filelimit} MB),已取消上传`) ] + ) + return false + } + + // 下载文件,视频URL,标题和自定义headers + let res = await this.DownLoadFile(downloadOpt.video_url, { + title: Config.app.rmmp4 ? downloadOpt.title.timestampTitle as string : downloadOpt.title.originTitle as string, + headers: downloadOpt.headers || this.headers, + filetype: '.mp4' + }) + res = { ...res, ...downloadOpt.title } + // 将下载的文件大小转换为MB并保留两位小数 + res.totalBytes = Number((res.totalBytes / (1024 * 1024)).toFixed(2)) + /** 上传视频 */ + return await this.upload_file(res, downloadOpt.video_url, uploadOpt) + } + + /** + * 异步下载文件的函数。 + * @param video_url 下载地址。 + * @param title 文件名。 + * @param headers 请求头,可选参数,默认为空对象。 + * @param filetype 下载文件的类型,默认为'.mp4'。 + * @returns 返回一个包含文件路径和总字节数的对象。 + */ + async DownLoadFile (video_url: string, opt: downLoadFileOptions): Promise { + // 使用networks类进行文件下载,并通过回调函数实时更新下载进度 + const { filepath, totalBytes } = await new Networks({ + url: video_url, // 视频地址 + headers: opt.headers || this.headers, // 请求头 + filepath: Common.tempDri.video + `${opt.title}${opt.filetype || '.mp4'}`, // 文件保存路径 + timeout: 30000, // 设置30秒超时 + maxRetries: 3 // 最多重试3次 + }).downloadStream((downloadedBytes, totalBytes) => { + // 定义进度条长度及生成进度条字符串的函数 + const barLength = 45 + function generateProgressBar (progressPercentage: number) { + // 根据进度计算填充的'#'字符数量,并生成进度条样式 + const filledLength = Math.floor((progressPercentage / 100) * barLength) + let progress = '' + progress += '#'.repeat(filledLength) + progress += '-'.repeat(Math.max(0, barLength - filledLength - 1)) + const formattedProgress = progressPercentage.toFixed(2) + '%' + console.log(`正在下载 ${opt.title}${opt.filetype || '.mp4'} [${progress}] ${formattedProgress}\r`) + } + // 计算并打印当前下载进度 + const progressPercentage = (downloadedBytes / totalBytes) * 100 + generateProgressBar(progressPercentage) + }) + return { filepath, totalBytes } + } + + /** 删文件 */ + async removeFile (path: string, force: boolean = false): Promise { + return Common.removeFile(path, force) + } + + /** 过万整除 */ + count (count: number): string { + if (count > 10000) { + return (count / 10000).toFixed(1) + '万' + } else { + return count?.toString() || '无法获取' + } + } +} diff --git a/src/module/utils/Common.ts b/src/module/utils/Common.ts new file mode 100644 index 0000000..84e9d4d --- /dev/null +++ b/src/module/utils/Common.ts @@ -0,0 +1,207 @@ +import { KarinMessage, logger } from 'node-karin' +import { Config, Version } from '@/module/utils' +import fs from 'node:fs' + +/** 常用工具合集 */ +export const Common = { + /** + * 获取引用消息 + * @param e event 消息事件 + * @returns 被引用的消息 + */ + getReplyMessage: async (e: KarinMessage): Promise => { + if (e.reply_id) { + const reply = await e.bot.GetMessage(e.contact, e.reply_id) + for (const v of reply.elements) { + if (v.type === 'text') { + return v.text + } else if (v.type === 'json') { + return v.data + } + } + } + return '' + }, + + /** + * 插件缓存文件夹 + */ + tempDri: { + /** 视频缓存文件 */ + video: `${Version.karinPath}/temp/${Version.pluginName}/kkkdownload/video/`, + /** 图片缓存文件 */ + images: `${Version.karinPath}/temp/${Version.pluginName}/kkkdownload/images/` + }, + + /** + * 将中文数字转换为阿拉伯数字的函数 + * @param chineseNumber 数字的中文 + * @returns 中文数字对应的阿拉伯数字映射 + */ + chineseToArabic: (chineseNumber: string): number => { + // 映射表,定义基础的中文数字 + const chineseToArabicMap: { [key: string]: number } = { + '零': 0, '一': 1, '二': 2, '三': 3, '四': 4, '五': 5, '六': 6, '七': 7, '八': 8, '九': 9 + } + // 对应中文单位映射 + const units: { [key: string]: number } = { + '十': 10, '百': 100, '千': 1000, '万': 10000, '亿': 100000000 + } + let result = 0 + let temp = 0 // 存储每一段的临时结果 + let unit = 1 // 当前处理的单位,初始为1 + + for (let i = chineseNumber.length - 1; i >= 0; i--) { + const char = chineseNumber[i] + + // 如果是单位字符 + if (units[char] !== undefined) { + unit = units[char] + if (unit === 10000 || unit === 100000000) { + result += temp * unit + temp = 0 + } + } + // 如果是数字字符 + else { + const num = chineseToArabicMap[char] + if (unit > 1) { + temp += num * unit + } else { + temp += num + } + unit = 1 // 重置单位 + } + } + return result + temp + }, + /** + * 格式化cookie字符串 + * @param cookies cookie数组 + * @returns 格式化后的cookie字符串 + */ + formatCookies: (cookies: any[]): string => { + return cookies.map(cookie => { + // 分割每个cookie字符串以获取名称和值 + const [ nameValue, ...attributes ] = cookie.split(';').map((part: string) => part.trim()) + const [ name, value ] = nameValue.split('=') + + // 重新组合名称和值,忽略其他属性 + return `${name}=${value}` + }).join('; ') + }, + /** + * 计算目标视频平均码率(单位:Kbps) + * @param targetSizeMB 目标视频大小(MB) + * @param duration 视频时长(秒) + * @returns + */ + calculateBitrate: (targetSizeMB: number, duration: number): number => { + // 将目标大小转换为字节 + const targetSizeBytes = targetSizeMB * 1024 * 1024 // 转换为字节 + // 计算比特率并返回单位 Mbps + return (targetSizeBytes * 8) / duration / 1024 // Kbps + }, + /** + * 获取视频文件大小(单位MB) + * @param filePath 视频文件绝对路径 + * @returns + */ + getVideoFileSize: async (filePath: string): Promise => { + try { + const stats = await fs.promises.stat(filePath) // 获取文件信息 + const fileSizeInBytes = stats.size // 文件大小(字节) + const fileSizeInMB = fileSizeInBytes / (1024 * 1024) // 转换为MB + return fileSizeInMB + } catch (error) { + console.error('获取文件大小时发生错误:', error) + throw error + } + }, + /** + * 根据配置文件的配置项,删除缓存文件 + * @param path 文件的绝对路径 + * @param force 是否强制删除,默认false + * @returns + */ + removeFile: async (path: string, force: boolean = false): Promise => { + path = path.replace(/\\/g, '/') + if (Config.app.rmmp4) { + try { + fs.promises.unlink(path) + logger.mark('缓存文件: ', path + ' 删除成功!') + return true + } catch (err) { + logger.error('缓存文件: ', path + ' 删除失败!', err) + return false + } + } else if (force) { + try { + fs.promises.unlink(path) + logger.mark('缓存文件: ', path + ' 删除成功!') + return true + } catch (err) { + logger.error('缓存文件: ', path + ' 删除失败!', err) + return false + } + } + return true + }, + /** + * 将时间戳转换为日期时间字符串 + * @param timestamp 时间戳 + * @returns 格式为YYYY-MM-DD HH:MM的日期时间字符串 + */ + convertTimestampToDateTime: (timestamp: number): string => { + // 创建一个Date对象,时间戳乘以1000是为了转换为毫秒 + const date = new Date(timestamp * 1000) + const year = date.getFullYear() // 获取年份 + const month = String(date.getMonth() + 1).padStart(2, '0') // 获取月份,确保两位数显示 + const day = String(date.getDate()).padStart(2, '0') // 获取日,确保两位数显示 + const hours = String(date.getHours()).padStart(2, '0') // 获取小时,确保两位数显示 + const minutes = String(date.getMinutes()).padStart(2, '0') // 获取分钟,确保两位数显示 + // 返回格式化后的日期时间字符串 + return `${year}-${month}-${day} ${hours}:${minutes}` + }, + /** + * 获取当前时间:年-月-日 时:分:秒 + * @returns + */ + getCurrentTime: () => { + // 创建一个Date对象以获取当前时间 + const now = new Date() + // 获取年、月、日、时、分、秒 + const year = now.getFullYear() + let month = now.getMonth() + 1 // month 是 number 类型 + let day = now.getDate() + let hour = now.getHours() + let minute = now.getMinutes() + let second = now.getSeconds() + + const formattedMonth = month < 10 ? '0' + month : '' + month + const formattedDay = day < 10 ? '0' + day : '' + day + const formattedHour = hour < 10 ? '0' + hour : '' + hour + const formattedMinute = minute < 10 ? '0' + minute : '' + minute + const formattedSecond = second < 10 ? '0' + second : '' + second + return `${year}-${formattedMonth}-${formattedDay} ${formattedHour}:${formattedMinute}:${formattedSecond}` + }, + /** + * 评论图、推送图是否使用深色模式 + * @returns + */ + useDarkTheme: (): boolean => { + let dark = true + const configTheme = Config.app.Theme + if (configTheme === 0) { // 自动 + const date = new Date().getHours() + if (date >= 6 && date < 18) { + dark = false + } + } else if (configTheme === 1) { + dark = false + } else if (configTheme === 2) { + dark = true + } + return dark + } +} \ No newline at end of file diff --git a/src/module/utils/Config.ts b/src/module/utils/Config.ts new file mode 100644 index 0000000..2446b95 --- /dev/null +++ b/src/module/utils/Config.ts @@ -0,0 +1,280 @@ +import _ from 'lodash' +import YAML from 'yaml' +import fs from 'node:fs' +import { logger } from 'node-karin' +import { Version } from './Version' +import chokidar, { FSWatcher } from 'chokidar' +import { ConfigType } from '@/types' + +type ConfigDirType = 'config' | 'default_config' + +class config { + private config: Record = {} + private watcher: Record = { config: {} as FSWatcher, defSet: {} as FSWatcher } + + constructor () { + this.initCfg() + } + + /** 初始化配置 */ + private initCfg () { + let path: string + path = `${Version.karinPath}/config/plugin/${Version.pluginName}/` + if (!fs.existsSync(path)) fs.mkdirSync(path) + const pathDef = `${Version.pluginPath}/config/default_config/` + const files = fs.readdirSync(pathDef).filter(file => file.endsWith('.yaml')) + for (const file of files) { + if (!fs.existsSync(`${path}${file}`)) { + fs.copyFileSync(`${pathDef}${file}`, `${path}${file}`) + } else { + const config = YAML.parseDocument(fs.readFileSync(`${path}${file}`, 'utf8')) + const defConfig = YAML.parseDocument(fs.readFileSync(`${pathDef}${file}`, 'utf8')) + const { differences, result } = this.mergeObjectsWithPriority(config, defConfig) + if (differences) { + fs.writeFileSync(`${path}${file}`, result.toString()) + } + } + this.watch(`${path}${file}`, file.replace('.yaml', ''), 'config') + } + } + + /** 插件相关配置 */ + get app (): ConfigType['app'] { + return this.getDefOrConfig('app') + } + + /** ck相关配置 */ + get cookies (): ConfigType['cookies'] { + return this.getDefOrConfig('cookies') + } + + /** 抖音相关配置 */ + get douyin (): ConfigType['douyin'] { + return this.getDefOrConfig('douyin') + } + + /** B站相关配置 */ + get bilibili (): ConfigType['bilibili'] { + return this.getDefOrConfig('bilibili') + } + + /** 推送列表 */ + get pushlist (): ConfigType['pushlist'] { + return this.getDefOrConfig('pushlist') + } + + /** 上传相关配置 */ + get upload (): ConfigType['upload'] { + return this.getDefOrConfig('upload') + } + + /** 快手相关配置 */ + get kuaishou (): ConfigType['kuaishou'] { + return this.getDefOrConfig('kuaishou') + } + + + All (): ConfigType { + return { + cookies: this.cookies, + app: this.app, + douyin: this.douyin, + bilibili: this.bilibili, + pushlist: this.pushlist, + upload: this.upload, + kuaishou: this.kuaishou + } + } + + /** 默认配置和用户配置 */ + private getDefOrConfig (name: string) { + const def = this.getdefSet(name) + const config = this.getConfig(name) + return { ...def, ...config } + } + + /** 默认配置 */ + private getdefSet (name: string) { + return this.getYaml('default_config', name) + } + + /** 用户配置 */ + private getConfig (name: string) { + return this.getYaml('config', name) + } + + /** + * 获取配置yaml + * @param type 默认跑配置-defSet,用户配置-config + * @param name 名称 + */ + private getYaml (type: ConfigDirType, name: string) { + let file: string = '' + if (type === 'config') { + file = `${Version.karinPath}/config/plugin/${Version.pluginName}/${name}.yaml` + } else { file = `${Version.pluginPath}/config/default_config/${name}.yaml` } + + const key = `${type}.${name}` + + if (this.config[key]) return this.config[key] + + this.config[key] = YAML.parse( + fs.readFileSync(file, 'utf8') + ) + + this.watch(file, name, type) + + return this.config[key] + } + + /** 监听配置文件 */ + private watch (file: string, name: string, type: ConfigDirType = 'default_config') { + const key = `${type}.${name}` + if (this.watcher[key]) return + + const watcher = chokidar.watch(file) + watcher.on('change', async () => { + delete this.config[key] + logger.mark(`[${Version.pluginName}][修改配置文件][${type}][${name}]`) + }) + + this.watcher[key] = watcher + } + + /** + * 修改设置 + * @param name 文件名 + * @param key 修改的key值 + * @param value 修改的value值 + * @param type 配置文件或默认 + */ + modify ( + name: 'cookies' | 'app' | 'douyin' | 'bilibili' | 'pushlist' | 'upload' | 'kuaishou', + key: string, + value: any, + type: ConfigDirType = 'config' + ) { + let path = '' + if (type === 'config') { + path = `${Version.karinPath}/config/plugin/${Version.pluginName}/${name}.yaml` + } else { + path = `${Version.pluginPath}/config/default_config/${name}.yaml` + } + + // 读取 YAML 文件 + const yamlData = YAML.parseDocument(fs.readFileSync(path, 'utf8')) + + // 处理嵌套路径 + const keys = key.split('.') + let current: YAML.YAMLMap | undefined = yamlData.contents as YAML.YAMLMap + + // 遍历键并确保每个子键都有对应的结构 + for (let i = 0; i < keys.length - 1; i++) { + const subKey = keys[i] + if (current instanceof YAML.YAMLMap) { + let subValue: YAML.YAMLMap | YAML.Scalar | any | undefined = current.get(subKey) + + // 类型保护,确保 subValue 是 YAMLMap + if (!YAML.isMap(subValue)) { + subValue = new YAML.YAMLMap() // 创建新的 YAMLMap + current.set(subKey, subValue) // 设置新的子值 + } + + current = subValue // 更新 current 为子结构 + } else { + throw new Error(`Invalid YAML structure: ${subKey} is not a YAMLMap.`) + } + } + + // 设置最终值 + if (current instanceof YAML.YAMLMap) { + current.set(keys[keys.length - 1], value) + } else { + throw new Error('Invalid YAML structure: Unable to set value.') + } + + // 写回 YAML 文件并保留注释 + fs.writeFileSync(path, yamlData.toString(), 'utf8') + + // 删除缓存 + delete this.config[`${type}.${name}`] + } + + + private mergeObjectsWithPriority ( + userDoc: YAML.Document.Parsed, + defaultDoc: YAML.Document.Parsed + ): { result: YAML.Document.Parsed; differences: boolean } { + let differences = false + + // 合并 YAML 对象,确保注释保留 + function mergeYamlNodes (target: any, source: any): any { + if (YAML.isMap(target) && YAML.isMap(source)) { + // 遍历 source 中的每一项,合并到 target 中 + for (const pair of source.items) { + const key = pair.key + const value = pair.value + + // 查找现有的键 + const existing = target.get(key) + + // 如果目标中没有该键,则添加新的键值对 + if (existing === undefined) { + differences = true + target.set(key, value) + } else if (YAML.isMap(value) && YAML.isMap(existing)) { + // 如果值是一个嵌套的 Map 类型,则递归合并 + mergeYamlNodes(existing, value) + } else if (existing !== value) { + // 如果值不同,进行覆盖 + differences = true + target.set(key, value) + } + } + } + } + + // 执行合并操作 + mergeYamlNodes(defaultDoc.contents, userDoc.contents) + + return { differences, result: defaultDoc } + } +} + +/** + * YamlReader类提供了对YAML文件的动态读写功能 + */ +class YamlReader { + private filePath: string + private document: YAML.Document.Parsed + + constructor (filePath: string) { + this.filePath = filePath + this.document = this.parseDocument() + } + + private parseDocument (): YAML.Document.Parsed { + const fileContent = fs.readFileSync(this.filePath, 'utf8') + return YAML.parseDocument(fileContent) + } + + set (key: string, value: any) { + this.document.set(key, value) + this.write() + } + + rm (key: string) { + this.document.delete(key) + this.write() + } + + private write () { + fs.writeFileSync(this.filePath, + this.document.toString({ + lineWidth: -1, + simpleKeys: true + }), 'utf8') + } +} + +export const Config = new config() diff --git a/src/module/utils/FFmpeg.ts b/src/module/utils/FFmpeg.ts new file mode 100644 index 0000000..caa46bc --- /dev/null +++ b/src/module/utils/FFmpeg.ts @@ -0,0 +1,125 @@ +import { logger, ffmpeg } from 'node-karin' +import { exec } from 'node:child_process' +import { promisify } from 'node:util' +import { Common } from '@/module/utils' +const execPromise = promisify(exec) + +interface fffmpegClientOptions { + VideoAudioOptions: { + /** 文件1绝对路径 */ + path: string + /** 文件2绝对路径 */ + path2: string + /** 合并完成后存放的绝对路径路径 */ + resultPath: string + /** 处理结果的回调函数 */ + callback: (success: boolean) => boolean | Promise + } + Video3AudioOptions: { + /** 文件1绝对路径 */ + path: string + /** 文件2绝对路径 */ + path2: string + /** 合并完成后存放的绝对路径路径 */ + resultPath: string + /** 处理结果的回调函数 */ + callback: (success: boolean) => boolean | Promise + } + getVideoSizeOptions: { + /** 视频文件路径 */ + path: string + } + compressVideoOptions: { + /** 文件绝对路径 */ + path: string + /** 目标比特率 */ + targetBitrate: number + /** + * 最大码率 + * @default targetBitrate * 1.5 + */ + maxRate?: number + /** + * 缓冲区大小 + * @default targetBitrate * 2 + */ + bufSize?: number + /** + * 恒定码率因子 + * @default 30 + */ + crf?: number + /** 合并完成后存放的绝对路径路径 */ + resultPath: string + } +} + +// 为每个执行方法定义返回类型 +type MergeFileResult = + T extends '二合一(视频 + 音频)' ? void : + T extends '视频*3 + 音频' ? void : + T extends '获取指定视频文件时长' ? number : + T extends '压缩视频' ? string : + never + +interface ffhandlerOptions { + '二合一(视频 + 音频)': fffmpegClientOptions['VideoAudioOptions'] + '视频*3 + 音频': fffmpegClientOptions['Video3AudioOptions'] + '获取指定视频文件时长': fffmpegClientOptions['getVideoSizeOptions'] + '压缩视频': fffmpegClientOptions['compressVideoOptions'] +} + +/** + * 使用 FFmpeg 对文件进行处理 + * @param type 处理方法 + * @param options 参数 + * @returns + */ +export const mergeFile = async ( + type: T, + options: ffhandlerOptions[T] +): Promise> => { + return await new FFmpeg(type).FFmpeg(options) +} + +class FFmpeg { + type: keyof ffhandlerOptions + constructor (type: keyof ffhandlerOptions) { + this.type = type + } + async FFmpeg (opt: any): Promise> { + const ffmpegClient = await ffmpeg() + if (ffmpegClient === false) { + return false as unknown as MergeFileResult // 若ffmpeg初始化失败,返回 false + } + + switch (this.type) { + case '二合一(视频 + 音频)': { + const result = await ffmpegClient(`-y -i ${opt.path} -i ${opt.path2} -c copy ${opt.resultPath}`) + const success = result.status === 'ok' + success ? logger.mark('视频合成成功!') : logger.error('视频合成失败!') + await opt.callback(success) + return success as unknown as MergeFileResult // 布尔类型 + } + case '视频*3 + 音频': { + const result = await ffmpegClient(`-y -stream_loop 2 -i ${opt.path} -i ${opt.path2} -filter_complex "[0:v]setpts=N/FRAME_RATE/TB[v];[0:a][1:a]amix=inputs=2:duration=shortest:dropout_transition=3[aout]" -map "[v]" -map "[aout]" -c:v libx264 -c:a aac -b:a 192k -shortest ${opt.resultPath}`) + const success = result.status === 'ok' + success ? logger.mark('视频合成成功!') : logger.error('视频合成失败!') + await opt.callback(success) + return success as unknown as MergeFileResult // 布尔类型 + } + case '获取指定视频文件时长': { + const { stdout } = await execPromise(`ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 ${opt.path}`) + return parseFloat(stdout.trim()) as unknown as MergeFileResult // 数字类型 + } + case '压缩视频': { + const result = await ffmpegClient(`-y -i "${opt.path}" -b:v ${opt.targetBitrate}k -maxrate ${opt.maxRate || opt.targetBitrate * 1.5}k -bufsize ${opt.bufSize || opt.targetBitrate * 2}k -crf ${opt.crf || 35} -preset medium -c:v libx264 -vf "scale='if(gte(iw/ih,16/9),1280,-1)':'if(gte(iw/ih,16/9),-1,720)',scale=ceil(iw/2)*2:ceil(ih/2)*2" "${opt.resultPath}"`) + if (result.status === 'ok') { + logger.mark(`视频已压缩并保存到: ${opt.resultPath}`) + await Common.removeFile(opt.path) + } else logger.error(opt.path + ' 压缩失败!') + return opt.resultPath as unknown as MergeFileResult // 字符串类型 + } + } + } +} diff --git a/src/module/utils/Networks.ts b/src/module/utils/Networks.ts new file mode 100644 index 0000000..ac0c787 --- /dev/null +++ b/src/module/utils/Networks.ts @@ -0,0 +1,285 @@ +import axios, { AxiosError, AxiosRequestConfig, AxiosResponse, AxiosInstance, ResponseType } from 'axios' +import { NetworksConfigType } from '@/types' +import { logger } from 'node-karin' +import fs from 'node:fs' +import { pipeline } from 'stream/promises' + +interface HeadersObject { + [key: string]: string +} + +export class Networks { + private url: string + private method: string + private headers: HeadersObject + private type: ResponseType + private body?: any + private axiosInstance: AxiosInstance + private isGetResult: boolean + private timeout: number + private timer: NodeJS.Timeout | undefined + private data: {} + private filepath: string + private maxRetries: number + + constructor (data: NetworksConfigType) { + this.headers = data.headers || {} + this.url = data.url || '' + this.type = data.type || 'json' + this.method = data.method || 'GET' + this.body = data.body || null + this.data = {} + this.timeout = data.timeout || 5000 + this.isGetResult = false + this.timer = undefined + this.filepath = data.filepath || '' + this.maxRetries = 0 + + // 创建axios实例 + this.axiosInstance = axios.create({ + timeout: this.timeout, + headers: this.headers, + maxRedirects: 5, + validateStatus: (status) => { + return (status >= 200 && status < 300) || status === 406 || (status >= 500) + } + }) + } + + get config (): AxiosRequestConfig { + let config: AxiosRequestConfig = { + url: this.url, + method: this.method, + headers: this.headers, + responseType: this.type + } + + if (this.method === 'POST' && this.body) { + config.data = this.body + } + + return config + } + + /** + * 异步下载流方法 + * + * @param progressCallback 下载进度回调函数,接收已下载字节数和总字节数作为参数 + * @param retryCount 重试次数,默认为0 + * @returns 返回一个Promise,解析为包含文件路径和总字节数的对象 + * + * 此函数通过axios库发送HTTP请求,下载指定URL的资源,并将下载的资源流保存到本地文件系统中 + * 它还提供了一个回调函数来报告下载进度,并在下载失败时根据配置自动重试 + */ + async downloadStream ( + progressCallback: (downloadedBytes: number, totalBytes: number) => void, + retryCount: number = 0): Promise<{ filepath: string; totalBytes: number }> { + // 创建一个中止控制器,用于在请求超时时中止请求 + const controller = new AbortController() + // 设置一个定时器,如果请求超过预定时间,则中止请求 + const timeoutId = setTimeout(() => controller.abort(), this.timeout) + + try { + // 使用axios库发送HTTP请求,获取资源流 + const response = await axios({ + ...this.config, + url: this.url, + responseType: 'stream', + signal: controller.signal + }) + + // 清除中止请求的定时器 + clearTimeout(timeoutId) + + // 检查HTTP响应状态码,如果状态码不在200到299之间,则抛出错误 + if (!(response.status >= 200 && response.status < 300)) { + throw new Error(`无法获取 ${this.url}。状态: ${response.status} ${response.statusText}`) + } + + // 解析响应头中的content-length,以获取资源的总字节大小 + const totalBytes = parseInt(response.headers['content-length'] ?? '0', 10) + // 如果无法解析content-length,则抛出错误 + if (isNaN(totalBytes)) { + throw new Error('无效的 content-length 头') + } + + // 初始化已下载字节数和上次打印的进度百分比 + let downloadedBytes = 0 + let lastPrintedPercentage = -1 + + // 创建一个文件写入流,用于将下载的资源保存到本地文件系统 + const writer = fs.createWriteStream(this.filepath) + + // 定义一个函数来打印下载进度 + const printProgress = () => { + const progressPercentage = Math.floor((downloadedBytes / totalBytes) * 100) + if (progressPercentage !== lastPrintedPercentage) { + progressCallback(downloadedBytes, totalBytes) + lastPrintedPercentage = progressPercentage + } + } + + // 根据资源大小决定进度更新的间隔时间 + const interval = totalBytes < 10 * 1024 * 1024 ? 1000 : 500 + // 设置一个定时器,定期调用printProgress函数来更新下载进度 + const intervalId = setInterval(printProgress, interval) + + // 定义一个函数来处理下载的数据块 + const onData = (chunk: string | any[]) => { + downloadedBytes += chunk.length + } + + // 在下载的数据流上绑定'data'事件监听器,处理下载的数据块 + response.data.on('data', onData) + + // 使用pipeline函数将下载的数据流管道到文件写入流 + await pipeline( + response.data, + writer + ) + clearInterval(intervalId) + response.data.off('data', onData) + // 确保所有写入操作已完成 + writer.end() + + // 返回包含文件路径和总字节数的对象 + return { filepath: this.filepath, totalBytes } + } catch (error) { + clearTimeout(timeoutId) + + // 处理请求或下载过程中的错误 + if (error instanceof AxiosError) { + console.error(`请求在 ${this.timeout / 1000} 秒后超时`) + } else { + console.error('下载失败:', error) + } + + // 如果重试次数小于最大重试次数,则等待一段时间后重试下载 + if (retryCount < this.maxRetries) { + const delay = Math.min(Math.pow(2, retryCount) * 1000, 1000) + console.warn(`正在重试下载... (${retryCount + 1}/${this.maxRetries}),将在 ${delay / 1000} 秒后重试`) + await new Promise(resolve => setTimeout(resolve, delay)) + return this.downloadStream(progressCallback, retryCount + 1) + } else { + // 如果超过最大重试次数,则抛出错误 + throw new Error(`在 ${this.maxRetries} 次尝试后下载失败: ${error}`) + } + } + } + async getfetch (): Promise { + try { + const result = await this.returnResult() + if (result.status === 504) { + return result + } + this.isGetResult = true + return result + } catch (error) { + logger.info(error) + return false + } + } + + async returnResult (): Promise { + let response = {} as AxiosResponse + try { + response = await this.axiosInstance(this.config) + } catch (error) { + logger.error(error) + } + return response + } + + /** 最终地址(跟随重定向) */ + async getLongLink (): Promise { + try { + const response = await this.axiosInstance({ + method: 'GET', + url: this.url + }) + return response.request.res.responseUrl // axios中获取最终的请求URL + } catch (error: unknown) { + if (error instanceof AxiosError) { + throw new Error(error.stack) + } + return '' + } + } + + /** 获取首个302链接 */ + async getLocation (): Promise { + try { + const response = await this.axiosInstance({ + method: 'GET', + url: this.url, + maxRedirects: 0, // 禁止跟随重定向 + validateStatus: (status: number) => status >= 300 && status < 400 // 仅处理3xx响应 + }) + return response.headers['location'] as string + } catch (error: unknown) { + if (error instanceof AxiosError) { + throw new Error(error.stack) + } + } + } + + /** 获取数据并处理数据的格式化,默认json */ + async getData (): Promise { + try { + const result = await this.returnResult() + if (result.status === 504) { + return result + } + if (result.status === 429) { + logger.error('HTTP 响应状态码: 429') + throw new Error('ratelimit triggered, 触发 https://www.douyin.com/ 的速率限制!!!') + } + this.isGetResult = true + return result.data + } catch (error: unknown) { + if (error instanceof AxiosError) { + throw new Error(error.stack || error.message) + } + return false + } + } + + /** + * 获取响应头信息(仅首个字节) + * 适用于获取视频流的完整大小 + * @returns + */ + async getHeaders (): Promise { + try { + const response = await this.axiosInstance({ + ...this.config, + method: 'GET', + headers: { + ...this.config.headers, + Range: 'bytes=0-0' + } + }) + return response.headers + } catch (error) { + logger.error(error) + throw error + } + } + + /** + * 获取响应头信息(完整) + * @returns + */ + async getHeadersFull (): Promise { + try { + const response = await this.axiosInstance({ + ...this.config, + method: 'GET' + }) + return response.headers + } catch (error) { + logger.error(error) + throw error + } + } +} diff --git a/src/module/utils/Render.ts b/src/module/utils/Render.ts new file mode 100644 index 0000000..fb83dd7 --- /dev/null +++ b/src/module/utils/Render.ts @@ -0,0 +1,66 @@ +import { join, basename } from 'node:path' +import { Config, Version, Common } from '@/module' +import { render, segment, KarinRenderType, ImageElement } from 'node-karin' + +function scale (pct = 1): string { + const scale = Math.min(2, Math.max(0.5, Number(Config.app.renderScale) / 100)) + pct = pct * scale + return `style=transform:scale(${pct})` +} + +/** + * + * @param {string} path html模板路径 + * @param {*} params 模板参数 + * @returns + */ +export async function Render (path: string, params?: any) { + const basePaths: Record = { + douyin: 'douyin/html', + bilibili: 'bilibili/html', + admin: 'admin/html', + kuaishou: 'kuaishou/html', + help: 'help/html' + } + const platform = Object.keys(basePaths).find(key => path.startsWith(key))! + let newPath = path.substring(platform.length) + // 如果 newPath 以斜杠开头,去掉这个斜杠 + if (newPath.startsWith('/')) { + newPath = newPath.substring(1) + } + path = `${basePaths[platform]}/${newPath}` + const renderOpt: KarinRenderType = { + pageGotoParams: { + waitUntil: 'load' + }, + name: `${Version.pluginName}/${platform}/${newPath}/`.replace(/\\/g, '/'), + file: `${Version.pluginPath}/resources/template/${path}.html`, + // 这里是模板引擎渲染完成之后生成的html文件名称 如果这里不传递会默认使用name作为默认值 建议传递。 + fileID: basename(newPath), + type: 'jpeg', + multiPage: 12000 + } + + const img = await render.render({ + ...renderOpt, + data: { + ...params, + _res_path: (join(Version.pluginPath, '/resources') + '/').replace(/\\/g, '/'), + _layout_path: (join(Version.pluginPath, '/resources', 'template', 'extend') + '/').replace(/\\/g, '/'), + defaultLayout: (join(Version.pluginPath, '/resources', 'template', 'extend', 'html') + '/default.html').replace(/\\/g, '/'), + sys: { + scale: scale(params?.scale || 1) + }, + pluResPath: `${Version.pluginPath}/resources/`, + copyright: `kkk${Version.pluginVersion} Preview Powered By Karin`, + useDarkTheme: Common.useDarkTheme() + }, + screensEval: '#container' + }) + // 分片截图传回来的是数组 + let ret: ImageElement[] = [] + for (const imgae of img) { + ret.push(segment.image(imgae)) + } + return ret +} diff --git a/src/module/utils/UploadRecord.ts b/src/module/utils/UploadRecord.ts new file mode 100644 index 0000000..3dc4c91 --- /dev/null +++ b/src/module/utils/UploadRecord.ts @@ -0,0 +1,419 @@ +import querystring from 'node:querystring' +import axios from 'axios' +import fs from 'node:fs' +import os from 'node:os' +import util from 'node:util' +import stream from 'node:stream' +import crypto from 'node:crypto' +import { exec } from 'node:child_process' +import { logger, KarinMessage, Cfg } from 'node-karin' +import { core } from 'icqq' + + +const errors = {} as any + +async function UploadRecord (e: KarinMessage, record_url: string, seconds: number = 0, transcoding: boolean = true, brief: string = ''): Promise { + const bot = { ...e.bot, super: {} as any } + const result = await getPttBuffer(record_url, Cfg.Config.ffmpeg_path, transcoding) + if (!result.buffer) { + return false + } + const buf = result.buffer + if (seconds === 0 && result.time) seconds = result.time.seconds + const hash = md5(buf) + const codec = String(buf.slice(0, 7)).includes('SILK') ? (transcoding ? 1 : 0) : 0 + const body = core.pb.encode({ + 1: 3, + 2: 3, + 5: { + 1: bot.account.uin, + 2: bot.account.uin, + 3: 0, + 4: hash, + 5: buf.length, + 6: hash, + 7: 5, + 8: 9, + 9: 4, + 11: 0, + 10: '9.1.0', + 12: 1, + 13: 1, + 14: codec, + 15: 1 + } + }) + const payload = await bot.super.sendUni('PttStore.GroupPttUp', body) + const rsp = core.pb.decode(payload)[5] + rsp[2] && errors.drop(rsp[2], rsp[3]) + const ip = rsp[5]?.[0] || rsp[5] + const port = rsp[6]?.[0] || rsp[6] + const ukey = rsp[7].toHex() + const filekey = rsp[11].toHex() + const params = { + ver: 4679, + ukey, + filekey, + filesize: buf.length, + bmd5: hash.toString('hex'), + mType: 'pttDu', + voice_encodec: codec + } + const url = `http://${int32ip2str(ip)}:${port}/?` + querystring.stringify(params) + const headers = { + 'User-Agent': `QQ/${'9.1.0'} CFNetwork/1126`, + 'Net-Type': 'Wifi' + } + await axios.post(url, buf, { headers }) + const fid = rsp[11].toBuffer() + const b = core.pb.encode({ + 1: 4, + 2: bot.account.uin, + 3: fid, + 4: hash, + 5: hash.toString('hex') + '.amr', + 6: seconds, + 11: 1, + 18: fid, + 19: seconds, + 29: codec, + 30: { + 1: 0, // 是否为变声语音 + 5: 0, // 是否显示评级 + 6: 'sss', // 评级 + 7: 0, // 未知参数 + 8: brief + } + }) + return { + type: 'record', + file: 'protobuf://' + Buffer.from(b).toString('base64') + } +} + +export { UploadRecord } + +async function getPttBuffer (file: string, ffmpeg = 'ffmpeg', transcoding = true): Promise<{ buffer?: Buffer, time?: { seconds: number } }> { + let buffer: Buffer | undefined + let time: { seconds: number } | undefined + if (Buffer.isBuffer(file) || file.startsWith('base64://')) { + let buf: Buffer = Buffer.isBuffer(file) ? file : Buffer.from(file.slice(9), 'base64') + const head = buf.slice(0, 7).toString() + if (head.includes('SILK') || head.includes('AMR') || !transcoding) { + const tmpfile = `${TMP_DIR}/${uuid()}` + await fs.promises.writeFile(tmpfile, buf) + const result = await getAudioTime(tmpfile, ffmpeg) + if (result.code === 1) time = result.data + buf = await fs.promises.readFile(tmpfile) + fs.unlink(tmpfile, NOOP) + buffer = result.buffer || buf + } else { + const tmpfile = `${TMP_DIR}/${uuid()}` + const result = await getAudioTime(tmpfile, ffmpeg) + if (result.code === 1) time = result.data + await fs.promises.writeFile(tmpfile, buf) + buffer = await audioTrans(tmpfile, ffmpeg) as any + fs.unlink(tmpfile, NOOP) + } + } else if (file.startsWith('http://') || file.startsWith('https://')) { + try { + const headers = { + 'User-Agent': 'Dalvik/2.1.0 (Linux; U; Android 12; MI 9 Build/SKQ1.211230.001)' + } + const response = await axios.get(file, { headers, responseType: 'arraybuffer' }) + const buf = Buffer.from(response.data) + const tmpfile = `${TMP_DIR}/${uuid()}` + await fs.promises.writeFile(tmpfile, buf) + const head = await read7Bytes(tmpfile) + const result = await getAudioTime(tmpfile, ffmpeg) + if (result.code === 1) time = result.data + if (head.includes('SILK') || head.includes('AMR') || !transcoding) { + buffer = result.buffer || buf + } else { + buffer = await audioTrans(tmpfile, ffmpeg) as any + } + fs.unlink(tmpfile, NOOP) + } catch (err) { } + } else { + file = String(file).replace(/^file:\/{2}/, '') + IS_WIN && file.startsWith('/') && (file = file.slice(1)) + const head = await read7Bytes(file) + const result = await getAudioTime(file, ffmpeg) + if (result.code === 1) time = result.data + if (head.includes('SILK') || head.includes('AMR') || !transcoding) { + buffer = result.buffer || (await fs.promises.readFile(file)) + } else { + buffer = await audioTrans(file, ffmpeg) as any + } + } + return { buffer, time } +} + +async function getAudioTime (file: string, ffmpeg: string = 'ffmpeg'): Promise<{ code: number; buffer?: Buffer | null; data?: { time: string; seconds: number; exec_text: string } }> { + return new Promise((resolve, reject) => { + const file_info = fs.statSync(file) + let cmd = `${ffmpeg} -i "${file}"` + let is_aac = false + if (file_info.size >= 10485760) { + cmd = `${ffmpeg} -i "${file}" -fs 10485600 -ab 128k "${file}.mp3"` + is_aac = true + } + exec(cmd, async (error, stdout, stderr) => { + try { + let buffer: Buffer | null = null + if (is_aac) { + buffer = fs.readFileSync(`${file}.mp3`) + fs.unlinkSync(`${file}.mp3`) + } + const time = stderr.split('Duration:')[1]?.split(',')[0]?.trim() + const arr = time?.split(':') ?? [] + arr.reverse() + let n = 1 + let s = 0 + for (const val of arr) { + if (parseInt(val) > 0) s += parseInt(val) * n + n *= 60 + } + resolve({ + code: 1, + buffer, + data: { + time: time ?? '0:00:00', + seconds: s, + exec_text: stderr + } + }) + } catch (err) { + resolve({ code: -1 }) + } + }) + }) +} +async function audioTrans (file: string, ffmpeg = 'ffmpeg') { + const result = await new Promise((resolve, reject) => { + const tmpfile = TMP_DIR + '/' + uuid() + '.pcm' + exec(`${ffmpeg} -y -i "${file}" -f s16le -ar 24000 -ac 1 -fs 31457280 "${tmpfile}"`, async (error, stdout, stderr) => { + try { + const silk_worker = await import('./silk_worker/index.cjs' as any) + const ret = await silk_worker.encode(tmpfile, 24000) + resolve(Buffer.from(ret.data)) + } catch (err) { + logger.error('音频转码到pcm失败,请确认你的ffmpeg可以处理此转换') + resolve(false) + } finally { + fs.unlink(tmpfile, NOOP) + } + }) + }) + if (result) return result + return await audioTrans1(file, ffmpeg) +} + +async function audioTrans1 (file: string, ffmpeg = 'ffmpeg') { + return new Promise((resolve, reject) => { + const tmpfile = TMP_DIR + '/' + uuid() + exec(`${ffmpeg} -y -i "${file}" -ac 1 -ar 8000 -f amr "${tmpfile}"`, async (error, stdout, stderr) => { + try { + const amr = await fs.promises.readFile(tmpfile) + resolve(amr) + } catch (err) { + logger.error('音频转码到amr失败,请确认你的ffmpeg可以处理此转换') + resolve(false) + } finally { + fs.unlink(tmpfile, NOOP) + } + }) + }) +} + +async function read7Bytes (file: string) { + const fd = await fs.promises.open(file, 'r') + const buf = (await fd.read(Buffer.alloc(7), 0, 7, 0)).buffer + fd.close() + return buf +} + +function uuid () { + const hex = crypto.randomBytes(16).toString('hex') + return hex.substr(0, 8) + '-' + hex.substr(8, 4) + '-' + hex.substr(12, 4) + '-' + hex.substr(16, 4) + '-' + hex.substr(20) +} + +/** 计算流的md5 */ +function md5Stream (readable: fs.ReadStream) { + return new Promise((resolve, reject) => { + readable.on('error', reject) + readable.pipe(crypto.createHash('md5').on('error', reject).on('data', resolve)) + }) +} + +/** 计算文件的md5和sha */ +function fileHash (filepath: fs.PathLike) { + const readable = fs.createReadStream(filepath) + const sha = new Promise((resolve, reject) => { + readable.on('error', reject) + readable.pipe(crypto.createHash('sha1').on('error', reject).on('data', resolve)) + }) + return Promise.all([ md5Stream(readable), sha ]) +} + +/** 群号转uin */ +function code2uin (code: number) { + let left = Math.floor(code / 1000000) + if (left >= 0 && left <= 10) left += 202 + else if (left >= 11 && left <= 19) left += 469 + else if (left >= 20 && left <= 66) left += 2080 + else if (left >= 67 && left <= 156) left += 1943 + else if (left >= 157 && left <= 209) left += 1990 + else if (left >= 210 && left <= 309) left += 3890 + else if (left >= 310 && left <= 335) left += 3490 + else if (left >= 336 && left <= 386) left += 2265 + else if (left >= 387 && left <= 499) left += 3490 + return left * 1000000 + (code % 1000000) +} + +/** uin转群号 */ +function uin2code (uin: number) { + let left = Math.floor(uin / 1000000) + if (left >= 202 && left <= 212) left -= 202 + else if (left >= 480 && left <= 488) left -= 469 + else if (left >= 2100 && left <= 2146) left -= 2080 + else if (left >= 2010 && left <= 2099) left -= 1943 + else if (left >= 2147 && left <= 2199) left -= 1990 + else if (left >= 2600 && left <= 2651) left -= 2265 + else if (left >= 3800 && left <= 3989) left -= 3490 + else if (left >= 4100 && left <= 4199) left -= 3890 + return left * 1000000 + (uin % 1000000) +} + +function int32ip2str (ip: number) { + if (typeof ip === 'string') return ip + ip = ip & 0xffffffff + return [ ip & 0xff, (ip & 0xff00) >> 8, (ip & 0xff0000) >> 16, ((ip & 0xff000000) >> 24) & 0xff ].join('.') +} + +/** 解析彩色群名片 */ +function parseFunString (buf: number[]) { + if (buf[0] === 0xa) { + let res = '' + try { + let arr = core.pb.decode(buf as any)[1] + if (!Array.isArray(arr)) arr = [ arr ] + for (const v of arr) { + if (v[2]) res += String(v[2]) + } + } catch { } + return res + } else { + return String(buf) + } +} + +/** xml转义 */ +function escapeXml (str: string) { + return str.replace(/[&"><]/g, function (s: string) { + if (s === '&') return '&' + if (s === '<') return '<' + if (s === '>') return '>' + if (s === '"') return '"' + return '' + }) +} + +/** 用于下载限量 */ +class DownloadTransform extends stream.Transform { + _size: number + constructor () { + super(...arguments) + this._size = 0 + } + + _transform (data: string | any[], encoding: any, callback: (arg0: Error | null) => void) { + this._size += data.length + let error = null + if (this._size <= MAX_UPLOAD_SIZE) this.push(data) + else error = new Error('downloading over 30MB is refused') + callback(error) + } +} +const IS_WIN = os.platform() === 'win32' +/** 系统临时目录,用于临时存放下载的图片等内容 */ +const TMP_DIR = os.tmpdir() +/** 最大上传和下载大小,以图片上传限制为准:30MB */ +const MAX_UPLOAD_SIZE = 31457280 + +/** no operation */ +const NOOP = () => { } + +/** promisified pipeline */ +const pipeline = (0, util.promisify)(stream.pipeline) +/** md5 hash */ +const md5 = (data: Buffer | crypto.BinaryLike) => (0, crypto.createHash)('md5').update(data).digest() + +errors.LoginErrorCode = errors.drop = errors.ErrorCode +let ErrorCode +(function (ErrorCode) { + /** 客户端离线 */ + ErrorCode[(ErrorCode.ClientNotOnline = -1)] = 'ClientNotOnline' + /** 发包超时未收到服务器回应 */ + ErrorCode[(ErrorCode.PacketTimeout = -2)] = 'PacketTimeout' + /** 用户不存在 */ + ErrorCode[(ErrorCode.UserNotExists = -10)] = 'UserNotExists' + /** 群不存在(未加入) */ + ErrorCode[(ErrorCode.GroupNotJoined = -20)] = 'GroupNotJoined' + /** 群员不存在 */ + ErrorCode[(ErrorCode.MemberNotExists = -30)] = 'MemberNotExists' + /** 发消息时传入的参数不正确 */ + ErrorCode[(ErrorCode.MessageBuilderError = -60)] = 'MessageBuilderError' + /** 群消息被风控发送失败 */ + ErrorCode[(ErrorCode.RiskMessageError = -70)] = 'RiskMessageError' + /** 群消息有敏感词发送失败 */ + ErrorCode[(ErrorCode.SensitiveWordsError = -80)] = 'SensitiveWordsError' + /** 上传图片/文件/视频等数据超时 */ + ErrorCode[(ErrorCode.HighwayTimeout = -110)] = 'HighwayTimeout' + /** 上传图片/文件/视频等数据遇到网络错误 */ + ErrorCode[(ErrorCode.HighwayNetworkError = -120)] = 'HighwayNetworkError' + /** 没有上传通道 */ + ErrorCode[(ErrorCode.NoUploadChannel = -130)] = 'NoUploadChannel' + /** 不支持的file类型(没有流) */ + ErrorCode[(ErrorCode.HighwayFileTypeError = -140)] = 'HighwayFileTypeError' + /** 文件安全校验未通过不存在 */ + ErrorCode[(ErrorCode.UnsafeFile = -150)] = 'UnsafeFile' + /** 离线(私聊)文件不存在 */ + ErrorCode[(ErrorCode.OfflineFileNotExists = -160)] = 'OfflineFileNotExists' + /** 群文件不存在(无法转发) */ + ErrorCode[(ErrorCode.GroupFileNotExists = -170)] = 'GroupFileNotExists' + /** 获取视频中的图片失败 */ + ErrorCode[(ErrorCode.FFmpegVideoThumbError = -210)] = 'FFmpegVideoThumbError' + /** 音频转换失败 */ + ErrorCode[(ErrorCode.FFmpegPttTransError = -220)] = 'FFmpegPttTransError' +})((ErrorCode = errors.ErrorCode || (errors.ErrorCode = {}))) +const ErrorMessage = { + [ErrorCode.UserNotExists]: '查无此人', + [ErrorCode.GroupNotJoined]: '未加入的群', + [ErrorCode.MemberNotExists]: '幽灵群员', + [ErrorCode.RiskMessageError]: '群消息发送失败,可能被风控', + [ErrorCode.SensitiveWordsError]: '群消息发送失败,请检查消息内容', + 10: '消息过长', + 34: '消息过长', + 120: '在该群被禁言', + 121: 'AT全体剩余次数不足' +} +function drop (code: string | number, message: string | any[]) { + if (!message || !message.length) message = ErrorMessage[code as any] + throw new core.ApiRejection(code as number, message as string) +} +errors.drop = drop +/** 登录时可能出现的错误,不在列的都属于未知错误,暂时无法解决 */ +let LoginErrorCode +(function (LoginErrorCode) { + /** 密码错误 */ + LoginErrorCode[(LoginErrorCode.WrongPassword = 1)] = 'WrongPassword' + /** 账号被冻结 */ + LoginErrorCode[(LoginErrorCode.AccountFrozen = 40)] = 'AccountFrozen' + /** 发短信太频繁 */ + LoginErrorCode[(LoginErrorCode.TooManySms = 162)] = 'TooManySms' + /** 短信验证码错误 */ + LoginErrorCode[(LoginErrorCode.WrongSmsCode = 163)] = 'WrongSmsCode' + /** 滑块ticket错误 */ + LoginErrorCode[(LoginErrorCode.WrongTicket = 237)] = 'WrongTicket' +})((LoginErrorCode = errors.LoginErrorCode || (errors.LoginErrorCode = {}))) diff --git a/src/module/utils/Version.ts b/src/module/utils/Version.ts new file mode 100644 index 0000000..5e445b4 --- /dev/null +++ b/src/module/utils/Version.ts @@ -0,0 +1,22 @@ +import { join, dirname, basename } from 'node:path' +import { fileURLToPath } from 'node:url' +import { Cfg, common } from 'node-karin' + +const __filename = fileURLToPath(import.meta.url) + +const __dirname = dirname(__filename) + +const pluginPath = join(__dirname, '..', '..', '..').replace(/\\/g, '/') + +export const Version = { + /** 插件名字 */ + pluginName: basename(pluginPath), + /** 插件版本号 */ + pluginVersion: common.pkgJson('karin-plugin-kkk')?.version, + /** 插件路径 */ + pluginPath: join(__dirname, '..', '..', '..').replace(/\\/g, '/'), + /** Karin版本 */ + karinVersion: Cfg.package.version, + /** Karin程序/客户端路径 */ + karinPath: (process.cwd()).replace(/\\/g, '/') +} diff --git a/src/module/utils/index.ts b/src/module/utils/index.ts new file mode 100644 index 0000000..0cb1d75 --- /dev/null +++ b/src/module/utils/index.ts @@ -0,0 +1,8 @@ +export * from './Config' +export * from './Networks' +export * from './Version' +export * from './Base' +export * from './Render' +export * from './FFmpeg' +export * from './UploadRecord' +export * from './Common' \ No newline at end of file diff --git a/src/platform/bilibili/bilibili.ts b/src/platform/bilibili/bilibili.ts new file mode 100644 index 0000000..07b25eb --- /dev/null +++ b/src/platform/bilibili/bilibili.ts @@ -0,0 +1,477 @@ +import { Base, Render, Config, Networks, mergeFile, Common } from '@/module/utils' +import { bilibiliComments, genParams } from '@/platform/bilibili' +import { bilibiliAPI } from '@ikenxuan/amagi' +import karin, { KarinMessage, segment, logger, common, KarinElement } from 'node-karin' +import fs from 'node:fs' +import { BilibiliDataTypes } from '@/types' + +let img: string | KarinElement | (string | KarinElement)[] + +export class Bilibili extends Base { + e: KarinMessage + type: any + STATUS: any + ISVIP: boolean + TYPE: BilibiliDataTypes[keyof BilibiliDataTypes] + islogin: boolean + downloadfilename: string + get botadapter (): string { + return this.e.bot?.adapter?.name + } + constructor (e: KarinMessage, data: any) { + super(e) + this.e = e + this.STATUS = data?.USER?.STATUS + this.ISVIP = data?.USER?.isvip + this.TYPE = data?.TYPE + this.islogin = data?.USER?.STATUS === 'isLogin' + this.downloadfilename = '' + this.headers.Referer = 'https://api.bilibili.com/' + this.headers.Cookie = Config.cookies.bilibili + } + + async RESOURCES (OBJECT: any): Promise { + Config.bilibili.tip && await this.e.reply('检测到B站链接,开始解析') + switch (this.TYPE) { + case 'one_video': { + const { owner, pic, title, stat } = OBJECT.INFODATA.data + const { name } = owner + const { coin, like, share, view, favorite, danmaku } = stat + + this.downloadfilename = title.substring(0, 50).replace(/[\\/:\*\?"<>\|\r\n\s]/g, ' ') + + const nocd_data = await new Networks({ + url: bilibiliAPI.视频流信息({ avid: OBJECT.INFODATA.data.aid, cid: OBJECT.INFODATA.data.cid }) + '&platform=html5', + headers: this.headers + }).getData() + + await this.e.reply([ + segment.image(pic), + `\n# 标题: ${title}\n`, + `\n作者: ${name}\n播放量: ${this.count(view)}, 弹幕: ${this.count(danmaku)}\n点赞: ${this.count(like)}, 投币: ${this.count(coin)}\n转发: ${this.count( + share + )}, 收藏: ${this.count(favorite)}` + ]) + + + let videoSize + if (this.islogin) { + const simplify = OBJECT.DATA.data.dash.video.filter((item: { id: any }, index: any, self: any[]) => { + return self.findIndex((t: { id: any }) => { + return t.id === item.id + }) === index + }) + OBJECT.DATA.data.dash.video = simplify + OBJECT = await this.processVideos(OBJECT) + videoSize = await this.getvideosize(OBJECT.DATA.data.dash.video[0].base_url, OBJECT.DATA.data.dash.audio[0].base_url, OBJECT.INFODATA.data.bvid) + } else { + videoSize = (OBJECT.DATA.data.durl[0].size / (1024 * 1024)).toFixed(2) + } + const commentsdata = bilibiliComments(OBJECT) + img = await Render('bilibili/comment', { + Type: '视频', + CommentsData: commentsdata, + CommentLength: String(commentsdata?.length ? commentsdata.length : 0), + share_url: 'https://b23.tv/' + OBJECT.INFODATA.data.bvid, + Clarity: Config.bilibili.videopriority === true ? nocd_data.data.accept_description[0] : OBJECT.DATA.data.accept_description[0], + VideoSize: Config.bilibili.videopriority === true ? (nocd_data.data.durl[0].size / (1024 * 1024)).toFixed(2) : videoSize, + ImageLength: 0, + shareurl: 'https://b23.tv/' + OBJECT.INFODATA.data.bvid + }) + Config.bilibili.comment && await this.e.reply(img) + if (Config.upload.usefilelimit && Number(videoSize) > Number(Config.upload.filelimit)) { + await this.e.reply(`设定的最大上传大小为 ${Config.upload.filelimit}MB\n当前解析到的视频大小为 ${Number(videoSize)}MB\n` + '视频太大了,还是去B站看吧~', { reply: true }) + } else await this.getvideo(Config.bilibili.videopriority === true ? { DATA: nocd_data } : OBJECT) + break + } + case 'bangumi_video_info': { + const barray = [] + let msg = [] + for (let i = 0; i < OBJECT.INFODATA.result.episodes.length; i++) { + const totalEpisodes = OBJECT.INFODATA.result.episodes.length + const long_title = OBJECT.INFODATA.result.episodes[i].long_title + const badge = OBJECT.INFODATA.result.episodes[i].badge + const short_link = OBJECT.INFODATA.result.episodes[i].short_link + barray.push({ + id: i + 1, + totalEpisodes, + long_title, + badge: badge === '' ? '暂无' : badge, + short_link + }) + msg.push([ + `\n> ## 第${i + 1}集`, + `\n> 标题: ${long_title}`, + `\n> 类型: ${badge !== '预告' ? '正片' : '预告'}`, + `\n> 🔒 播放要求: ${badge === '预告' || badge === '' ? '暂无' : badge}`, + this.botadapter !== 'QQBot' ? `\n> 🔗 分享链接: [🔗点击查看](${short_link})\r\r` : '' + ]) + } + img = await Render('bilibili/bangumi', { + saveId: 'bangumi', + bangumiData: barray, + Botadapter: this.botadapter, + title: OBJECT.INFODATA.result.title + }) + + await this.e.reply([ `请在120秒内输入 第?集 选择集数` ]) + const context = await karin.ctx(this.e, { reply: true }) + const regex = context.msg.match(/第([一二三四五六七八九十百千万0-9]+)集/) + let Episode + if (regex && regex[1]) { + Episode = regex[1] + // 检查是否为中文数字,如果是则转换为阿拉伯数字 + if (/^[一二三四五六七八九十百千万]+$/.test(Episode)) { + Episode = Common.chineseToArabic(Episode).toString() + } + this.downloadfilename = OBJECT.INFODATA.result.episodes[Number(Episode) - 1].share_copy.substring(0, 50).replace(/[\\/:\*\?"<>\|\r\n\s]/g, ' ') + this.e.reply(`收到请求,第${Episode}集\n${this.downloadfilename}\n正在下载中`) + } else { + logger.debug(Episode) + this.e.reply('匹配内容失败,请重新发送链接再次解析') + return true + } + const bangumidataBASEURL = bilibiliAPI.番剧视频流信息({ + cid: OBJECT.INFODATA.result.episodes[Number(Episode) - 1].cid, + ep_id: OBJECT.INFODATA.result.episodes[Number(Episode) - 1].ep_id + }) + const QUERY = await genParams(bangumidataBASEURL) + if (QUERY.STATUS === '!isLogin') await this.e.reply('B站ck未配置或已失效,无法获取视频流,可尝试【#B站登录】以配置新ck') + const DATA = await new Networks({ + url: bangumidataBASEURL + QUERY.QUERY, + headers: this.headers + }).getData() + OBJECT.DATA = { ...DATA } + if (OBJECT.INFODATA.result.episodes[Number(Episode) - 1].badge === '会员' && !this.ISVIP) { + logger.warn('该CK不是大会员,无法获取视频流') + return true + } + await this.getvideo({ + ...OBJECT, + video_url: this.ISVIP ? OBJECT.DATA.result.dash.video[0].base_url : OBJECT.DATA.result.dash.video[0].base_url, + audio_url: OBJECT.DATA.result.dash.audio[0].base_url + }) + break + } + case 'dynamic_info': { + switch (OBJECT.dynamicINFO.data.item.type) { + /** 图文、纯图 */ + case 'DYNAMIC_TYPE_DRAW': { + const imgArray = [] + for (const img of OBJECT.dynamicINFO.data.item.modules.module_dynamic.major && OBJECT.dynamicINFO.data.item.modules.module_dynamic?.major?.draw?.items) { + imgArray.push(segment.image(img.src)) + } + // const commentsdata = bilibiliComments(OBJECT) + // img = await Render('bilibili/comment', { + // Type: '动态', + // CommentsData: commentsdata, + // CommentLength: String(commentsdata?.length ? commentsdata.length : 0), + // share_url: 'https://t.bilibili.com/' + OBJECT.dynamicINFO.data.item.id_str, + // ImageLength: OBJECT.dynamicINFO.data.item.modules?.module_dynamic?.major?.draw?.items?.length || '动态中没有附带图片', + // shareurl: '动态分享链接' + // }) + // if (imgArray.length === 1) await this.e.reply(imgArray[0]) + // if (imgArray.length > 1) { + // const forwardMsg = common.makeForward(imgArray, this.e.sender.uin, this.e.sender.nick) + // await this.e.bot.sendForwardMessage(this.e.contact, forwardMsg) + // } + // if (Config.bilibili.comment) await this.e.reply(img) + + const dynamicCARD = JSON.parse(OBJECT.dynamicINFO_CARD.data.card.card) + const cover = () => { + const imgArray = [] + for (let i = 0; i < dynamicCARD.item.pictures.length; i++) { + const obj = { + image_src: dynamicCARD.item.pictures[i].img_src + } + imgArray.push(obj) + } + return imgArray + } + if ('topic' in OBJECT.dynamicINFO.data.item.modules.module_dynamic) { + const name = OBJECT.dynamicINFO.data.item.modules.module_dynamic.topic.name + OBJECT.dynamicINFO.data.item.modules.module_dynamic.desc.rich_text_nodes.unshift({ + orig_text: name, + text: name, + type: 'topic' + }) + OBJECT.dynamicINFO.data.item.modules.module_dynamic.desc.text = `${name}\n\n` + OBJECT.dynamicINFO.data.item.modules.module_dynamic.desc.text + } + await this.e.reply(await Render('bilibili/dynamic/DYNAMIC_TYPE_DRAW', { + image_url: cover(), + text: replacetext(br(OBJECT.dynamicINFO.data.item.modules.module_dynamic.desc.text), OBJECT.dynamicINFO), + dianzan: this.count(OBJECT.dynamicINFO.data.item.modules.module_stat.like.count), + pinglun: this.count(OBJECT.dynamicINFO.data.item.modules.module_stat.comment.count), + share: this.count(OBJECT.dynamicINFO.data.item.modules.module_stat.forward.count), + create_time: OBJECT.dynamicINFO.data.item.modules.module_author.pub_time, + avater_url: OBJECT.dynamicINFO.data.item.modules.module_author.face, + frame: OBJECT.dynamicINFO.data.item.modules.module_author.pendant.image, + share_url: 'https://t.bilibili.com/' + OBJECT.dynamicINFO.data.item.id_str, + username: checkvip(OBJECT.USERDATA.data.card), + fans: this.count(OBJECT.USERDATA.data.follower), + user_shortid: OBJECT.dynamicINFO.data.item.modules.module_author.mid, + total_favorited: this.count(OBJECT.USERDATA.data.like_num), + following_count: this.count(OBJECT.USERDATA.data.card.attention), + Botadapter: this.botadapter, + dynamicTYPE: '图文动态' + })) + break + } + /** 纯文 */ + case 'DYNAMIC_TYPE_WORD': { + const text = replacetext(br(OBJECT.dynamicINFO.data.item.modules.module_dynamic.desc.text), OBJECT.dynamicINFO) + await this.e.reply( + await Render('bilibili/dynamic/DYNAMIC_TYPE_WORD', { + text, + dianzan: this.count(OBJECT.dynamicINFO.data.item.modules.module_stat.like.count), + pinglun: this.count(OBJECT.dynamicINFO.data.item.modules.module_stat.comment.count), + share: this.count(OBJECT.dynamicINFO.data.item.modules.module_stat.forward.count), + create_time: OBJECT.dynamicINFO.data.item.modules.module_author.pub_time, + avater_url: OBJECT.dynamicINFO.data.item.modules.module_author.face, + frame: OBJECT.dynamicINFO.data.item.modules.module_author.pendant.image, + share_url: 'https://t.bilibili.com/' + OBJECT.dynamicINFO.data.item.id_str, + username: checkvip(OBJECT.USERDATA.data.card), + fans: this.count(OBJECT.USERDATA.data.follower), + user_shortid: OBJECT.dynamicINFO.data.item.modules.module_author.mid, + total_favorited: this.count(OBJECT.USERDATA.data.like_num), + following_count: this.count(OBJECT.USERDATA.data.card.attention), + Botadapter: this.botadapter, + dynamicTYPE: '纯文动态' + }) + ) + await this.e.reply( + await Render('bilibili/comment', { + Type: '动态', + CommentsData: bilibiliComments(OBJECT), + CommentLength: String((bilibiliComments(OBJECT)?.length) ? bilibiliComments(OBJECT).length : 0), + share_url: 'https://t.bilibili.com/' + OBJECT.dynamicINFO.data.item.id_str, + ImageLength: OBJECT.dynamicINFO.data.item.modules?.module_dynamic?.major?.draw?.items?.length || '动态中没有附带图片', + shareurl: '动态分享链接', + Botadapter: this.botadapter + }) + ) + break + } + default: + break + } + break + } + case 'live_room_detail': { + if (OBJECT.room_init_info.data.live_status === 0) { + await this.e.reply(`${OBJECT.USERDATA.data.card.name} 未开播,正在休息中~`) + return true + } + const img = await Render('bilibili/dynamic/DYNAMIC_TYPE_LIVE_RCMD', + { + image_url: [ { image_src: OBJECT.live_info.data.user_cover } ], + text: br(OBJECT.live_info.data.title), + liveinf: br(`${OBJECT.live_info.data.area_name} | 房间号: ${OBJECT.live_info.data.room_id}`), + username: OBJECT.USERDATA.data.card.name, + avater_url: OBJECT.USERDATA.data.card.face, + frame: OBJECT.dynamicINFO.data.item.modules.module_author.pendant.image, + fans: this.count(OBJECT.USERDATA.data.card.fans), + create_time: OBJECT.live_info.data.live_time === -62170012800 ? '获取失败' : OBJECT.live_info.data.live_time, + now_time: 114514, + share_url: 'https://live.bilibili.com/' + OBJECT.live_info.data.room_id, + dynamicTYPE: '直播' + } + ) + await this.e.reply(img) + break + } + default: + break + } + } + + async getvideo (OBJECT: any) { + /** 获取视频 => FFmpeg合成 */ + if (Config.bilibili.videopriority === true) { + this.STATUS = '!isLogin' + } + switch (this.STATUS) { + case 'isLogin': { + const bmp4 = await this.DownLoadFile( + this.TYPE === 'one_video' ? OBJECT.DATA.data?.dash?.video[0].base_url : OBJECT.video_url, + { + title: `Bil_V_${this.TYPE === 'one_video' ? OBJECT.INFODATA.data.bvid : OBJECT.INFODATA.result.episodes[0].bvid}`, + headers: this.headers, + filetype: '.mp4' + } + ) + const bmp3 = await this.DownLoadFile( + this.TYPE === 'one_video' ? OBJECT.DATA.data?.dash?.audio[0].base_url : OBJECT.audio_url, + { + title: `Bil_A_${this.TYPE === 'one_video' ? OBJECT.INFODATA.data.bvid : OBJECT.INFODATA.result.episodes[0].bvid}`, + headers: this.headers, + filetype: '.mp3' + } + ) + if (bmp4.filepath && bmp3.filepath) { + await mergeFile('二合一(视频 + 音频)', { + path: bmp4.filepath, + path2: bmp3.filepath, + resultPath: Common.tempDri.video + `Bil_Result_${this.TYPE === 'one_video' ? OBJECT.INFODATA.data.bvid : OBJECT.INFODATA.result.episodes[0].bvid}.mp4`, + callback: async (success: boolean): Promise => { + if (success) { + const filePath = Common.tempDri.video + `${Config.app.rmmp4 ? 'tmp_' + Date.now() : this.downloadfilename}.mp4` + fs.renameSync( + Common.tempDri.video + `Bil_Result_${this.TYPE === 'one_video' ? OBJECT.INFODATA.data.bvid : OBJECT.INFODATA.result.episodes[0].bvid}.mp4`, + filePath + ) + logger.mark('正在尝试删除缓存文件') + await this.removeFile(bmp4.filepath, true) + await this.removeFile(bmp3.filepath, true) + + const stats = fs.statSync(filePath) + const fileSizeInMB = Number((stats.size / (1024 * 1024)).toFixed(2)) + if (fileSizeInMB > Config.upload.groupfilevalue) { + await this.e.reply(`视频大小: ${fileSizeInMB}MB 正通过群文件上传中...`) + return await this.upload_file({ filepath: filePath, totalBytes: fileSizeInMB }, '', { useGroupFile: true }) + } else { + /** 因为本地合成,没有视频直链 */ + return await this.upload_file({ filepath: filePath, totalBytes: fileSizeInMB }, '') + } + } else { + await this.removeFile(bmp4.filepath, true) + await this.removeFile(bmp3.filepath, true) + return true + } + } + }) + } + break + } + case '!isLogin': { + /** 没登录(没配置ck)情况下直接发直链,传直链在DownLoadVideo()处理 */ + await this.DownLoadVideo({ video_url: OBJECT.DATA.data.durl[0].url, title: { timestampTitle: 'tmp_' + Date.now(), originTitle: this.downloadfilename } }) + break + } + default: + break + } + } + + async getvideosize (videourl: any, audiourl: any, bvid: any) { + const videoheaders = await new Networks({ url: videourl, headers: { ...this.headers, Referer: `https://api.bilibili.com/video/${bvid}` } }).getHeaders() + const audioheaders = await new Networks({ url: audiourl, headers: { ...this.headers, Referer: `https://api.bilibili.com/video/${bvid}` } }).getHeaders() + + const videoSize = videoheaders['content-range']?.match(/\/(\d+)/) ? parseInt(videoheaders['content-range']?.match(/\/(\d+)/)[1], 10) : 0 + const audioSize = audioheaders['content-range']?.match(/\/(\d+)/) ? parseInt(audioheaders['content-range']?.match(/\/(\d+)/)[1], 10) : 0 + + const videoSizeInMB = (videoSize / (1024 * 1024)).toFixed(2) + const audioSizeInMB = (audioSize / (1024 * 1024)).toFixed(2) + + const totalSizeInMB = parseFloat(videoSizeInMB) + parseFloat(audioSizeInMB) + return totalSizeInMB.toFixed(2) + } + + /** + * 检出应该下载的视频流 + * @param data 视频流数据 + * @returns 经过排除后的视频流数据(删减不符合Config.upload.filelimit条件的视频流) + */ + async processVideos (data: any) { + let results: { [key: string]: string } = {} + + for (let video of data.DATA.data.dash.video) { + let size = await this.getvideosize(video.base_url, data.DATA.data.dash.audio[0].base_url, data.INFODATA.data.bvid) + results[video.id] = size + } + + // 将结果对象的值转换为数字,并找到最接近但不超过 Config.upload.filelimit 的值 + let sizes = Object.values(results).map(size => parseFloat(size.replace('MB', ''))) + let closestId: string | null = null + let smallestDifference = Infinity + + sizes.forEach((size, index) => { + if (size <= Config.upload.filelimit) { + let difference = Math.abs(size - Config.upload.filelimit) + if (difference < smallestDifference) { + smallestDifference = difference + closestId = Object.keys(results)[index] + } + } + }) + + if (closestId !== null) { + // 找到最接近但不超过文件大小限制的视频清晰度 + const closestQuality = qnd[Number(closestId)] + // 更新 OBJECT.DATA.data.accept_description + data.DATA.data.accept_description = data.DATA.data.accept_description.filter((desc: any) => desc === closestQuality) + if (data.DATA.data.accept_description.length === 0) { + data.DATA.data.accept_description = [ closestQuality ] + } + // 找到对应的视频对象 + const video = data.DATA.data.dash.video.find((video: { id: number }) => video.id === Number(closestId)) + // 更新 OBJECT.DATA.data.dash.video 数组 + data.DATA.data.dash.video = [ video ] + } else { + // 如果没有找到符合条件的视频,使用最低画质的视频对象 + data.DATA.data.dash.video = [ [ ...data.DATA.data.dash.video ].pop() ] + // 更新 OBJECT.DATA.data.accept_description 为最低画质的描述 + data.DATA.data.accept_description = [ ...data.DATA.data.accept_description ].pop() + } + return data + } +} + + +function checkvip (member: { vip: { vipStatus: number; nickname_color: any }; name: any }) { + return member.vip.vipStatus === 1 + ? `${member.name}` + : `${member.name}` +} + +function br (data: string) { + return (data = data.replace(/\n/g, '
')) +} + +function replacetext (text: string, obj: { data: { item: { modules: { module_dynamic: { desc: { rich_text_nodes: any } } } } } }) { + for (const tag of obj.data.item.modules.module_dynamic.desc.rich_text_nodes) { + // 对正则表达式中的特殊字符进行转义 + const escapedText = tag.orig_text.replace(/([.*+?^${}()|[\]\\])/g, '\\$1').replace(/\n/g, '\\n') + const regex = new RegExp(escapedText, 'g') + switch (tag.type) { + case 'topic': { + text = text.replace(regex, ` ${tag.orig_text}`) + break + } + case 'RICH_TEXT_NODE_TYPE_TOPIC': + case 'RICH_TEXT_NODE_TYPE_AT': { + text = text.replace(regex, `${tag.orig_text}`) + break + } + case 'RICH_TEXT_NODE_TYPE_LOTTERY': { + text = text.replace(regex, ` ${tag.orig_text}`) + break + } + case 'RICH_TEXT_NODE_TYPE_WEB': { + text = text.replace(regex, ` ${tag.text}`) + break + } + case 'RICH_TEXT_NODE_TYPE_EMOJI': { + const regex = new RegExp(tag.orig_text.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'), 'g') + text = text.replace(regex, ``) + break + } + } + } + return text +} + +const qnd: { [key: number]: string } = { + 6: '极速 240P', + 16: '流畅 360P', + 32: '清晰480P', + 64: '高清720P', + 74: '高帧率 720P60', + 80: '高清 1080P', + 112: '高码率 1080P+', + 116: '高帧率 1080P60', + 120: '超清 4K', + 125: '真彩色 HDR ', + 126: '杜比视界', + 127: '超高清 8K' +} \ No newline at end of file diff --git a/src/platform/bilibili/comments.ts b/src/platform/bilibili/comments.ts new file mode 100644 index 0000000..21f6acb --- /dev/null +++ b/src/platform/bilibili/comments.ts @@ -0,0 +1,228 @@ +export function bilibiliComments (OBJECT: any) { + let jsonArray = [] + for (let i = 0; i < OBJECT.COMMENTSDATA.data.replies.length; i++) { + const ctime = getRelativeTimeFromTimestamp(OBJECT.COMMENTSDATA.data.replies[i].ctime) + const emote = OBJECT.COMMENTSDATA.data.replies[i].content.emote + let message = OBJECT.COMMENTSDATA.data.replies[i].content.message + if (message && emote) message = emoteToUrl(message, emote) + const avatar = OBJECT.COMMENTSDATA.data.replies[i].member.avatar + const frame = OBJECT.COMMENTSDATA.data.replies[i].member.pendant.image + const uname = checkvip(OBJECT.COMMENTSDATA.data.replies[i].member) + const level = OBJECT.COMMENTSDATA.data.replies[i].member.level_info.current_level + const vipstatus = OBJECT.COMMENTSDATA.data.replies[i].member.vip.status + const like = OBJECT.COMMENTSDATA.data.replies[i].like + // const contentObject = OBJECT.COMMENTSDATA.data.replies[i].content + const replylength = OBJECT.COMMENTSDATA.data.replies[i].rcount + const location = OBJECT.COMMENTSDATA.data.replies[i].reply_control.location + const img_src = + OBJECT.COMMENTSDATA.data.replies[i].content && + OBJECT.COMMENTSDATA.data.replies[i].content.pictures && + OBJECT.COMMENTSDATA.data.replies[i].content.pictures.length > 0 + ? OBJECT.COMMENTSDATA.data.replies[i].content.pictures[0].img_src + : null + const members = OBJECT.COMMENTSDATA.data.replies[i].content.members + // let emojiurl = '' + // // 检查 contentObject 是否存在并且不为 null + // if (contentObject && typeof contentObject === 'object') { + // // 检查 emote 属性是否存在并且是一个对象 + // if (contentObject.emote && typeof contentObject.emote === 'object') { + // // const emoteKeys = Object.keys(contentObject.emote) + // // const firstKey = emoteKeys[0] // 获取第一个键名 + // // emojiurl = firstKey ? contentObject.emote[firstKey].url : null + // // console.log() + // } + // } + + const obj = { + id: i + 1, + ctime, + message, + avatar, + frame, + uname, + level, + vipstatus, + img_src, + replylength, + location, + like, + icon_big_vip: vipstatus === 1 ? 'https://i0.hdslb.com/bfs/seed/jinkela/short/user-avatar/big-vip.svg' : null, + members + } + + jsonArray.push(obj) + } + + /** 按点赞数重新排序 */ + jsonArray.sort((a, b) => b.like - a.like) + + /** 对评论点赞数过万整除 */ + for (let i = 0; i < jsonArray.length; i++) { + if (jsonArray[i].like > 10000) { + jsonArray[i].like = (jsonArray[i].like / 10000).toFixed(1) + 'w' + } + } + jsonArray = space(jsonArray) + + /** 匹配被艾特的用户 */ + for (const comment of jsonArray) { + let originalText = comment.message + if (comment.members && comment.members.length > 0) { + for (const member of comment.members) { + // 构建正则表达式,匹配被艾特的用户 + const regex = new RegExp(`@${member.uname}`, 'g') + originalText = originalText.replace(regex, `@${member.uname}`) + } + } + + // 更新评论内容为处理后的文本 + comment.message = originalText + } + + let res + res = checklevel(jsonArray) + res = br(res) + return res +} + +/** 检查评论是否带表情,是则添加img标签 */ +const emoteToUrl = (message: any, emote: any) => { + // 遍历 emote 对象的键 + for (const key in emote) { + if (emote.hasOwnProperty(key)) { // 确保是对象自身的属性 + // 如果message中有对应的表情包名,替换为图片标签 + if (message.includes(key)) { + if (message.includes('[') && message.includes(']')) { + message = message.replace(new RegExp(key.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'), 'g'), ``) + } + } + } + } + return message +} + +/** 替换空格 */ +function space (data: any) { + for (const i in data) { + if (data[i].message) { + data[i].message = data[i].message.replace(/\s/g, ' ') // 替换空格 + } + } + return data +} + +/** 换行符转
*/ +function br (data: any) { + for (const i in data) { + let message = data[i].message + + message = message?.replace(/\n/g, '
') + data[i].message = message + } + return data +} + +/** 检查等级 */ +function checklevel (obj: any) { + for (let i = 0; i < obj.length; i++) { + switch (obj[i].level) { + case 6: { + if (obj[i].viptype === 1) { + obj[i].uname += + '' + } else { + obj[i].uname += + '' + } + break + } + case 5: { + obj[i].uname += + '' + break + } + case 4: { + obj[i].uname += + '' + break + } + case 3: { + obj[i].uname += + '' + break + } + case 2: { + obj[i].uname += + '' + break + } + case 1: { + obj[i].uname += + '' + break + } + case 0: { + obj[i].uname += + '' + break + } + default: + break + } + } + return obj +} + +/** 检查是否大会员 */ +function checkvip (member: any) { + return member.vip.vipStatus === 1 + ? `${member.uname}` + : `${member.uname}` +} + +/** 处理表情,返回[{text: 表情名字, url: 表情地址}] */ +/** +function extractEmojisData (data) { + const emojisData = [] + + // 遍历每个包 + data.forEach((packages) => { + // 遍历每个表情 + packages.emote.forEach((emote) => { + try { + // new URL(emote.url) + emojisData.push({ text: emote.text, url: emote.url }) + } catch { } + }) + }) + + return emojisData +} +*/ + +/** 返回创建时间 */ +function getRelativeTimeFromTimestamp (timestamp: number) { + const now = Math.floor(Date.now() / 1000) // 当前时间的时间戳 + const differenceInSeconds = now - timestamp + + if (differenceInSeconds < 30) { + return '刚刚' + } else if (differenceInSeconds < 60) { + return differenceInSeconds + '秒前' + } else if (differenceInSeconds < 3600) { + return Math.floor(differenceInSeconds / 60) + '分钟前' + } else if (differenceInSeconds < 86400) { + return Math.floor(differenceInSeconds / 3600) + '小时前' + } else if (differenceInSeconds < 2592000) { + return Math.floor(differenceInSeconds / 86400) + '天前' + } else if (differenceInSeconds < 7776000) { + // 三个月的秒数 + return Math.floor(differenceInSeconds / 2592000) + '个月前' + } else { + const date = new Date(timestamp * 1000) // 将时间戳转换为毫秒 + const year = date.getFullYear() + const month = (date.getMonth() + 1).toString().padStart(2, '0') + const day = date.getDate().toString().padStart(2, '0') + return year + '-' + month + '-' + day + } +} \ No newline at end of file diff --git a/src/platform/bilibili/genParams.ts b/src/platform/bilibili/genParams.ts new file mode 100644 index 0000000..123fa5e --- /dev/null +++ b/src/platform/bilibili/genParams.ts @@ -0,0 +1,15 @@ +import { Config } from '@/module/utils' +import { getBilibiliData, wbi_sign } from '@ikenxuan/amagi' + +export async function genParams (apiURL: string) { + if (Config.cookies.bilibili === '' || Config.cookies.bilibili === null) return { QUERY: '&platform=html5', STATUS: '!isLogin' } + const logininfo = await getBilibiliData('登录基本信息', Config.cookies.bilibili) + const sign = await wbi_sign(apiURL, Config.cookies.bilibili) + + const qn = [ 6, 16, 32, 64, 74, 80, 112, 116, 120, 125, 126, 127 ] + let isvip + logininfo.data.vipStatus === 1 ? (isvip = true) : (isvip = false) + if (isvip) { + return { QUERY: `&fnval=16&fourk=1&${sign}`, STATUS: 'isLogin', isvip } + } else return { QUERY: `&qn=${qn[3]}&fnval=16`, STATUS: 'isLogin', isvip } +} \ No newline at end of file diff --git a/src/platform/bilibili/getData.ts b/src/platform/bilibili/getData.ts new file mode 100644 index 0000000..f4efc74 --- /dev/null +++ b/src/platform/bilibili/getData.ts @@ -0,0 +1,136 @@ +import { genParams } from '@/platform/bilibili' +import amagi, { bilibiliAPI, wbi_sign, getBilibiliData } from '@ikenxuan/amagi' +import { Config } from '@/module' +import { BilibiliDataTypes } from '@/types' + +export async function fetchBilibiliData ( + type: T, + opt?: any +): Promise { + const cl = new amagi({ bilibili: Config.cookies.bilibili }) + switch (type) { + case 'one_video': { + const INFODATA = await cl.getBilibiliData('单个视频作品数据', { + id_type: 'bvid', + id: opt.id + }) + const DATA = await cl.getBilibiliData('单个视频下载信息数据', { + avid: INFODATA.data.aid, + cid: INFODATA.data.cid + }) + const BASEURL = bilibiliAPI.视频流信息({ avid: INFODATA.data.aid, cid: INFODATA.data.cid }) + const SIGN = await genParams(BASEURL) + const COMMENTSDATA = await cl.getBilibiliData('评论数据', { + number: Config.bilibili.numcomment, + type: 1, + oid: INFODATA.data.aid + }) + const EMOJIDATA = await cl.getBilibiliData('Emoji数据') + + return { INFODATA, DATA, COMMENTSDATA, EMOJIDATA, USER: SIGN, TYPE: 'one_video' } + } + case 'nock_video': { + const dt = await getBilibiliData('单个视频下载信息数据', '', { + avid: opt.avid, + cid: opt.cid + }) + } + case 'work_comments': { + const INFODATA = await cl.getBilibiliData('单个视频作品数据', { + id_type: 'bvid', + id: opt.id + }) + const aCOMMENTSDATA = await cl.getBilibiliData('评论数据', { + number: Config.bilibili.numcomment, + type: 1, + oid: INFODATA.data.aid + }) + return aCOMMENTSDATA + } + case 'emoji_list': + return await cl.getBilibiliData('Emoji数据') + + case 'new_login_qrcode': + return await cl.getBilibiliData('申请二维码', Config.cookies.bilibili) + + case 'check_qrcode': { + return await cl.getBilibiliData('二维码状态', { qrcode_key: opt.qrcode_key }) + } + + case 'bangumi_video_info': { + let cleanedId = '', isep = false + if (opt.ep_id) { + cleanedId = opt.ep_id.replace('ep', '') + isep = true + } else if (opt.season_id) { + cleanedId = opt.season_id.replace('ss', '') + isep = false + } + const INFO = await cl.getBilibiliData('番剧基本信息数据', { ...opt }) + const QUERY = await genParams(isep ? bilibiliAPI.番剧明细({ id: cleanedId, isep }) : bilibiliAPI.番剧明细({ id: cleanedId, isep })) + return { INFODATA: INFO, USER: QUERY, TYPE: 'bangumi_video_info' } + } + + case 'user_dynamic': { + const result = await cl.getBilibiliData('用户主页动态列表数据', { host_mid: opt.host_mid }) + return result + } + + case 'dynamic_info': { + const dynamicINFO = await cl.getBilibiliData('动态详情数据', { dynamic_id: opt.dynamic_id }) + const dynamicINFO_CARD = await cl.getBilibiliData('动态卡片数据', { dynamic_id: dynamicINFO.data.item.id_str }) + const PARAM = await wbi_sign(bilibiliAPI.评论区明细({ type: 1, oid: dynamicINFO_CARD.data.card.desc.rid, number: Config.bilibili.numcomment }), Config.cookies.bilibili) + const COMMENTSDATA = await cl.getBilibiliData('评论数据', { type: mapping_table(dynamicINFO.data.item.type), oid: oid(dynamicINFO, dynamicINFO_CARD), number: Config.bilibili.numcomment }) + const EMOJIDATA = await cl.getBilibiliData('Emoji数据') + const USERDATA = await cl.getBilibiliData('用户主页数据', { host_mid: dynamicINFO.data.item.modules.module_author.mid }) + return { dynamicINFO, dynamicINFO_CARD, COMMENTSDATA, EMOJIDATA, USERDATA, TYPE: 'dynamic_info' } + } + + case 'user_profile': { + const result = await cl.getBilibiliData('用户主页数据', { host_mid: opt.host_mid }) + return result + } + + case 'dynamic_info': { + const result = await cl.getBilibiliData('动态详情数据', { dynamic_id: opt.dynamic_id }) + return result + } + + case 'dynamic_card': { + const result = await cl.getBilibiliData('动态卡片数据', { dynamic_id: opt.dynamic_id }) + return result + } + + case 'live_room_detail': { + const live_info = await cl.getBilibiliData('直播间信息', { room_id: opt.room_id }) + const room_init_info = await cl.getBilibiliData('直播间初始化信息', { room_id: opt.room_id }) + const USERDATA = await cl.getBilibiliData('用户主页数据', { host_mid: room_init_info.data.uid }) + return { TYPE: type, live_info, room_init_info, USERDATA } + } + default: + break + } + return { TYPE: 'undefined' } +} + +function mapping_table (type: any): number { + const Array: { [key: string]: string[] } = { + 1: [ 'DYNAMIC_TYPE_AV', 'DYNAMIC_TYPE_PGC', 'DYNAMIC_TYPE_UGC_SEASON' ], + 11: [ 'DYNAMIC_TYPE_DRAW' ], + 12: [ 'DYNAMIC_TYPE_ARTICLE' ], + 17: [ 'DYNAMIC_TYPE_LIVE_RCMD', 'DYNAMIC_TYPE_FORWARD', 'DYNAMIC_TYPE_WORD', 'DYNAMIC_TYPE_COMMON_SQUARE' ], + 19: [ 'DYNAMIC_TYPE_MEDIALIST' ] + } + for (const key in Array) { + if (Array[key].includes(type)) { + return parseInt(key, 10) + } + } + return 1 +} + +function oid (dynamicINFO: any, dynamicINFO_CARD: any) { + if (dynamicINFO.data.item.type === 'DYNAMIC_TYPE_WORD') { + return dynamicINFO.data.item.id_str + } else return dynamicINFO_CARD.data.card.desc.rid +} \ No newline at end of file diff --git a/src/platform/bilibili/getID.ts b/src/platform/bilibili/getID.ts new file mode 100644 index 0000000..805925f --- /dev/null +++ b/src/platform/bilibili/getID.ts @@ -0,0 +1,66 @@ +import { Networks } from '@/module/utils' +import { logger } from 'node-karin' +import { BilibiliDataTypes } from '@/types' + +export interface IDDataTypes { + type: BilibiliDataTypes[keyof BilibiliDataTypes] + [x: string]: any +} + +/** + * return aweme_id + * @param {string} url 分享连接 + * @returns + */ +export async function getBilibiliID (url: string) { + const longLink = await new Networks({ url }).getLongLink() + let result = {} as IDDataTypes + + switch (true) { + case /(video\/|video\-)([A-Za-z0-9]+)/.test(longLink): { + const bvideoMatch = longLink.match(/video\/([A-Za-z0-9]+)|bvid=([A-Za-z0-9]+)/) + result = { + type: 'one_video', + id: bvideoMatch ? bvideoMatch[1] || bvideoMatch[2] : undefined + } + break + } + case /play\/(\S+?)\??/.test(longLink): { + const playMatch = longLink.match(/play\/(\w+)/) + let id = playMatch ? playMatch[1] : '', realid = '' + if (id.startsWith('ss')) { + realid = 'season_id' + } else if (id.startsWith('ep')) { + realid = 'ep_id' + } + result = { + type: 'bangumi_video_info', + [realid]: playMatch ? playMatch[1] : '' + } + break + } + case /^https:\/\/t\.bilibili\.com\/(\d+)/.test(longLink) || /^https:\/\/www\.bilibili\.com\/opus\/(\d+)/.test(longLink): { + const tMatch = longLink.match(/^https:\/\/t\.bilibili\.com\/(\d+)/) + const opusMatch = longLink.match(/^https:\/\/www\.bilibili\.com\/opus\/(\d+)/) + const dynamic_id = tMatch || opusMatch + result = { + type: 'dynamic_info', + dynamic_id: dynamic_id ? dynamic_id[1] : dynamic_id + } + break + } + case /live\.bilibili\.com/.test(longLink): { + const match = longLink.match(/https?:\/\/live\.bilibili\.com\/(\d+)/) + result = { + type: 'live_room_detail', + room_id: match ? match[1] : undefined + } + break + } + default: + logger.warn('无法获取作品ID') + break + } + + return result +} \ No newline at end of file diff --git a/src/platform/bilibili/index.ts b/src/platform/bilibili/index.ts new file mode 100644 index 0000000..654e934 --- /dev/null +++ b/src/platform/bilibili/index.ts @@ -0,0 +1,7 @@ +export * from './getID' +export * from './getData' +export * from './genParams' +export * from './bilibili' +export * from './comments' +export * from './login' +export * from './push' \ No newline at end of file diff --git a/src/platform/bilibili/login.ts b/src/platform/bilibili/login.ts new file mode 100644 index 0000000..1ef9a1b --- /dev/null +++ b/src/platform/bilibili/login.ts @@ -0,0 +1,69 @@ +import { Config, Common, Version } from '@/module/utils' +import amagi from '@ikenxuan/amagi' +import karin, { segment, common, KarinMessage, KarinAdapter } from 'node-karin' +import QRCode from 'qrcode' +import fs from 'node:fs' + +const cl = new amagi({ bilibili: Config.cookies.bilibili }) +export const bilibiliLogin = async (e: KarinMessage) => { + const bot = karin.getBot(e.self_id) as KarinAdapter + /** 申请二维码 */ + const qrcodeurl = await cl.getBilibiliData('申请二维码') + const qrimg = await QRCode.toDataURL(qrcodeurl.data.url) + const base64Data = qrimg ? qrimg.replace(/^data:image\/\w+;base64,/, '') : '' + const buffer = Buffer.from(base64Data, 'base64') + fs.writeFileSync(`${Version.karinPath}/temp/${Version.pluginName}/BilibiliLoginQrcode.png`, buffer) + const qrcode_key = qrcodeurl.data.qrcode_key + const msg_id = [] + const message1 = await e.reply('免责声明:\n您将通过扫码完成获取哔哩哔哩网页端的用户登录凭证(ck),该ck将用于请求哔哩哔哩WEB API接口。\n本Bot不会保存您的登录状态。\n我方仅提供视频解析及相关抖音内容服务,若您的账号封禁、被盗等处罚与我方无关。\n害怕风险请勿扫码 ~') + const message2 = await e.reply([ segment.image(qrimg.split(';')[1].replace('base64,', 'base64://')), segment.text('请在120秒内通过哔哩哔哩APP扫码进行登录') ], { reply: true }) + msg_id.push(message1.message_id, message2.message_id) + /** 判断二维码状态 */ + // let Execution86038 = -1 + let executed86090 = false + let completedCase0 = false + for (let i = 0; i < 33; i++) { + const qrcodestatusdata = await cl.getBilibiliData('二维码状态', { qrcode_key }) + switch (qrcodestatusdata.data.data.code) { + case 0: { + // console.log(qrcodestatusdata.data.data.refresh_token) + Config.modify('cookies', 'bilibili', Common.formatCookies(qrcodestatusdata.headers['set-cookie'])) + // Config.bilibilirefresh_token = qrcodestatusdata.data.data.refresh_token + await e.reply('登录成功!用户登录凭证已保存至cookies.yaml', { reply: true }) + // 批量撤回 + msg_id.forEach(async (id) => { + await bot.RecallMessage(e.contact, id) + }) + completedCase0 = true + break + } + case 86038: { + i === 17 && await e.reply('二维码已失效', { reply: true }) + msg_id.forEach(async (id) => { + await bot.RecallMessage(e.contact, id) + }) + break + } + case 86090: { + if (!executed86090) { + const message3 = await e.reply('二维码已扫码,未确认', { reply: true }) + msg_id.push(message3.message_id) + await bot.RecallMessage(e.contact, message2.message_id) + executed86090 = true + // 删除 msg_id 数组中的 message2.message_id + const index = msg_id.indexOf(message2.message_id) + if (index > -1) { + msg_id.splice(index, 1) + } + } else { + executed86090 = true + } + break + } + default: + break + } + if (completedCase0) break + await common.sleep(5000) + } +} \ No newline at end of file diff --git a/src/platform/bilibili/push.ts b/src/platform/bilibili/push.ts new file mode 100644 index 0000000..39ab216 --- /dev/null +++ b/src/platform/bilibili/push.ts @@ -0,0 +1,679 @@ +import { fetchBilibiliData } from '@/platform/bilibili' +import { getBilibiliData } from '@ikenxuan/amagi' +import { Base, Config, Render, DB, Common, BilibiliDBType, AllDataType } from '@/module' +import { karin, logger, KarinMessage, segment, ImageElement, common, KarinAdapter } from 'node-karin' + +/** 每个推送项的类型定义 */ +interface PushItem { + /** 该UP主的昵称 */ + remark: string + /** UP主UID */ + host_mid: string + /** 动态发布时间 */ + create_time: number + /** 要推送到的群组 */ + group_id: string[] + /** 动态详情信息 */ + Dynamic_Data: any + /** UP主头像url */ + avatar_img: string + /** 动态类型 */ + dynamic_type: dynamicTYPE +} +/** 已支持推送的动态类型 */ +type dynamicTYPE = 'DYNAMIC_TYPE_AV' | 'DYNAMIC_TYPE_DRAW' | 'DYNAMIC_TYPE_WORD' | 'DYNAMIC_TYPE_LIVE_RCMD' +/** 推送列表的类型定义 */ +interface WillBePushList { + [key: string]: PushItem +} + +export class Bilibilipush extends Base { + private force: boolean = false + /** + * + * @param e 事件对象,提供给实例使用的事件相关信息,默认为空对象{} + * @param force 强制执行标志,用于控制实例行为,默认false + * @returns + */ + constructor (e = {} as KarinMessage, force: boolean = false) { + super(e) // 调用父类的构造函数 + // 判断当前bot适配器是否为'QQBot',如果是,则直接返回true,否则继续执行 + if (this.botadapter === 'QQBot') { + return + } + this.force = force // 保存传入的强制执行标志 + } + + /** + * 执行主要的操作流程,包括检查缓存并根据需要获取和更新用户数据。 + * @returns + */ + async action () { + if (await this.checkremark()) return true + + try { + let data = await this.getDynamicList() + const pushdata = this.excludeAlreadyPushed(data.willbepushlist, data.DBdata) + + if (Object.keys(pushdata).length === 0) return true + + if (this.force) return await this.forcepush(pushdata) + else return await this.getdata(pushdata) + } catch (error) { + logger.error(error) + } + } + + /** + * 异步获取数据并根据动态类型处理和发送动态信息。 + * @param data 包含动态相关信息的对象。 + */ + async getdata (data: WillBePushList) { + let nocd_data + for (const dynamicId in data) { + // 检查banWords,banTags + let skip = skipDynamic(data[dynamicId].Dynamic_Data) + let send = true, send_video = true, img: ImageElement[] = [] + const dynamicCARDINFO = await fetchBilibiliData('dynamic_card', { dynamic_id: dynamicId }) + const dycrad = dynamicCARDINFO.data.card && dynamicCARDINFO.data.card.card && JSON.parse(dynamicCARDINFO.data.card.card) + + if (!skip) { + const userINFO = await fetchBilibiliData('user_profile', { host_mid: data[dynamicId].host_mid }) + let emojiDATA = await fetchBilibiliData('emoji_list') + emojiDATA = extractEmojisData(emojiDATA.data.packages) + + logger.debug(`UP: ${data[dynamicId].remark}\n动态id:${dynamicId}\nhttps://t.bilibili.com/${dynamicId}`) + switch (data[dynamicId].dynamic_type) { + /** 处理图文动态 */ + case 'DYNAMIC_TYPE_DRAW': { + /** + * 生成图片数组 + * @returns + */ + const cover = () => { + // 初始化一个空数组来存放图片对象 + const imgArray = [] + // 遍历dycrad.item.pictures数组,将每个图片的img_src存入对象,并将该对象加入imgArray + for (let i = 0; i < dycrad.item.pictures.length; i++) { + const obj = { + image_src: dycrad.item.pictures[i].img_src + } + imgArray.push(obj) + } + // 返回包含所有图片对象的数组 + return imgArray + } + + img = await Render('bilibili/dynamic/DYNAMIC_TYPE_DRAW', + { + image_url: cover(), + text: replacetext(br(data[dynamicId].Dynamic_Data.modules.module_dynamic.desc.text), data[dynamicId].Dynamic_Data), + dianzan: this.count(data[dynamicId].Dynamic_Data.modules.module_stat.like.count), + pinglun: this.count(data[dynamicId].Dynamic_Data.modules.module_stat.comment.count), + share: this.count(data[dynamicId].Dynamic_Data.modules.module_stat.forward.count), + create_time: Common.convertTimestampToDateTime(data[dynamicId].Dynamic_Data.modules.module_author.pub_ts), + avater_url: data[dynamicId].Dynamic_Data.modules.module_author.face, + frame: data[dynamicId].Dynamic_Data.modules.module_author.pendant.image, + share_url: 'https://t.bilibili.com/' + data[dynamicId].Dynamic_Data.id_str, + username: checkvip(userINFO.data.card), + fans: this.count(userINFO.data.follower), + user_shortid: data[dynamicId].host_mid, + total_favorited: this.count(userINFO.data.like_num), + following_count: this.count(userINFO.data.card.attention), + dynamicTYPE: '图文动态推送' + } + ) + break + } + /** 处理纯文动态 */ + case 'DYNAMIC_TYPE_WORD': { + let text = replacetext(data[dynamicId].Dynamic_Data.modules.module_dynamic.desc.text, data[dynamicId].Dynamic_Data) + for (const item of emojiDATA) { + if (text.includes(item.text)) { + if (text.includes('[') && text.includes(']')) { + text = text.replace(/\[[^\]]*\]/g, ``).replace(/\\/g, '') + } + text += ' ' + } + } + img = await Render('bilibili/dynamic/DYNAMIC_TYPE_WORD', + { + text: br(text), + dianzan: this.count(data[dynamicId].Dynamic_Data.modules.module_stat.like.count), + pinglun: this.count(data[dynamicId].Dynamic_Data.modules.module_stat.comment.count), + share: this.count(data[dynamicId].Dynamic_Data.modules.module_stat.forward.count), + create_time: Common.convertTimestampToDateTime(data[dynamicId].Dynamic_Data.modules.module_author.pub_ts), + avater_url: data[dynamicId].Dynamic_Data.modules.module_author.face, + frame: data[dynamicId].Dynamic_Data.modules.module_author.pendant.image, + share_url: 'https://t.bilibili.com/' + data[dynamicId].Dynamic_Data.id_str, + username: checkvip(userINFO.data.card), + fans: this.count(userINFO.data.follower), + user_shortid: data[dynamicId].host_mid, + total_favorited: this.count(userINFO.data.like_num), + following_count: this.count(userINFO.data.card.attention), + dynamicTYPE: '纯文动态推送' + } + ) + break + } + /** 处理视频动态 */ + case 'DYNAMIC_TYPE_AV': { + if (data[dynamicId].Dynamic_Data.modules.module_dynamic.major.type === 'MAJOR_TYPE_ARCHIVE') { + const aid = data[dynamicId].Dynamic_Data.modules.module_dynamic.major.archive.aid + const bvid = data[dynamicId].Dynamic_Data.modules.module_dynamic.major.archive.bvid + const INFODATA = await getBilibiliData('单个视频作品数据', '', { id_type: 'bvid', id: bvid }) + + /** 特殊字段,只有番剧和影视才会有,如果是该类型视频,默认不发送 */ + if (INFODATA.data.redirect_url) { + send_video = false + logger.debug(`UP主:${INFODATA.data.owner.name} 的该动态类型为${logger.yellow('番剧或影视')},默认跳过不下载,直达:${logger.green(INFODATA.data.redirect_url)}`) + } else { + nocd_data = await getBilibiliData('单个视频下载信息数据', '', { avid: INFODATA.data.aid, cid: INFODATA.data.cid }) + } + img = await Render('bilibili/dynamic/DYNAMIC_TYPE_AV', + { + image_url: [ { image_src: INFODATA.data.pic } ], + text: br(INFODATA.data.title), + desc: br(dycrad.desc), + dianzan: this.count(INFODATA.data.stat.like), + pinglun: this.count(INFODATA.data.stat.reply), + share: this.count(INFODATA.data.stat.share), + create_time: Common.convertTimestampToDateTime(INFODATA.data.ctime), + avater_url: INFODATA.data.owner.face, + frame: data[dynamicId].Dynamic_Data.modules.module_author.pendant.image, + share_url: 'https://www.bilibili.com/video/' + bvid, + username: checkvip(userINFO.data.card), + fans: this.count(userINFO.data.follower), + user_shortid: data[dynamicId].host_mid, + total_favorited: this.count(userINFO.data.like_num), + following_count: this.count(userINFO.data.card.attention), + dynamicTYPE: '视频动态推送' + } + ) + } + break + } + /** 处理直播动态 */ + case 'DYNAMIC_TYPE_LIVE_RCMD': { + img = await Render('bilibili/dynamic/DYNAMIC_TYPE_LIVE_RCMD', + { + image_url: [ { image_src: dycrad.live_play_info.cover } ], + text: br(dycrad.live_play_info.title), + liveinf: br(`${dycrad.live_play_info.area_name} | 房间号: ${dycrad.live_play_info.room_id}`), + username: checkvip(userINFO.data.card), + avater_url: userINFO.data.card.face, + frame: data[dynamicId].Dynamic_Data.modules.module_author.pendant.image, + fans: this.count(userINFO.data.follower), + create_time: Common.convertTimestampToDateTime(data[dynamicId].Dynamic_Data.modules.module_author.pub_ts), + now_time: Common.getCurrentTime(), + share_url: 'https://live.bilibili.com/' + dycrad.live_play_info.room_id, + dynamicTYPE: '直播动态推送' + } + ) + break + } + /** 未处理的动态类型 */ + default: { + skip = true + logger.warn(`UP主:${data[dynamicId].remark}「${data[dynamicId].dynamic_type}」动态类型的暂未支持推送\n动态地址:${'https://t.bilibili.com/' + data[dynamicId].Dynamic_Data.id_str}`) + break + } + } + } + + // 遍历 group_id 数组,并发送消息 + for (const groupId of data[dynamicId].group_id) { + let status: any + if (!skip) { + const [ group_id, uin ] = groupId.split(':') + const bot = karin.getBot(uin) as KarinAdapter + status = await karin.sendMsg(String(uin), karin.contactGroup(group_id), img ? [ ...img ] : []) + if (Config.bilibili.push.parsedynamic) { + switch (data[dynamicId].dynamic_type) { + case 'DYNAMIC_TYPE_AV': { + if (send_video) { + await this.DownLoadVideo({ + video_url: nocd_data.data.durl[0].url, + title: { timestampTitle: 'tmp_' + Date.now(), originTitle: dycrad.title } + }, { active: true, activeOption: { uin, group_id } }) + } + break + } + case 'DYNAMIC_TYPE_DRAW': { + const imgArray: ImageElement[] = [] + for (const img of data[dynamicId].Dynamic_Data.modules.module_dynamic.major && data[dynamicId].Dynamic_Data.modules.module_dynamic?.major?.draw?.items) { + imgArray.push(segment.image(img.src)) + } + const forwardMsg = common.makeForward(imgArray, uin, (await bot?.GetCurrentAccount()).account_name) + await bot.sendForwardMessage(karin.contactFriend(uin), forwardMsg) + break + } + } + } + } + + + if (skip || status?.message_id) { + let DBdata = await DB.FindGroup('bilibili', groupId) + /** + * 检查 DBdata 中是否存在与给定 host_mid 匹配的项 + * @param DBdata - 数据库中存储的群组数据 + * @param host_midToCheck 要检查的host_mid + * @returns 匹配的host_mid + */ + const findMatchingSecUid = (DBdata: BilibiliDBType, host_midToCheck: string): string => { + for (const host_mid in DBdata) { + + if (DBdata.hasOwnProperty(host_mid) && DBdata[host_mid].host_mid === host_midToCheck) { + return host_midToCheck + } + } + return '' + } + let newEntry: BilibiliDBType + if (DBdata) { + // 如果 DBdata 存在,遍历 DBdata 来查找对应的 host_mid + let found = false + + if (data[dynamicId].host_mid === findMatchingSecUid(DBdata, data[dynamicId].host_mid)) { + // 如果找到了对应的 host_mid ,将 dynamicId 添加到 dynamic_idlist 数组中 + const isSecUidFound = findMatchingSecUid(DBdata, data[dynamicId].host_mid) + if (isSecUidFound && this.force ? true : !DBdata[data[dynamicId].host_mid].dynamic_idlist.includes(dynamicId)) { + DBdata[isSecUidFound].dynamic_idlist.push(dynamicId) + DBdata[isSecUidFound].create_time = Number(data[dynamicId].create_time) + await DB.UpdateGroupData('bilibili', groupId, DBdata) + found = true + } + } + + if (!found) { + // 如果没有找到对应的 host_mid ,创建一个新的条目 + newEntry = { + [data[dynamicId].host_mid]: { + remark: data[dynamicId].remark, + create_time: data[dynamicId].create_time, + host_mid: data[dynamicId].host_mid, + dynamic_idlist: [ dynamicId ], + avatar_img: data[dynamicId].Dynamic_Data.modules.module_author.face, + dynamic_type: data[dynamicId].dynamic_type, + group_id: [ groupId ] + } + } + // 更新数据库 + await DB.UpdateGroupData('bilibili', groupId, { ...DBdata, ...newEntry }) + } + } else { + // 如果 DBdata 为空,创建新的条目 + await DB.CreateSheet('bilibili', groupId, { + [data[dynamicId].host_mid]: { + remark: data[dynamicId].remark, + create_time: data[dynamicId].create_time, + host_mid: data[dynamicId].host_mid, + dynamic_idlist: [ dynamicId ], + avatar_img: data[dynamicId].Dynamic_Data.modules.module_author.face, + dynamic_type: data[dynamicId].dynamic_type, + group_id: [ groupId ] + } + }) + } + } + } + } + } + + /** + * 根据配置文件获取UP当天的动态列表。 + * @returns + */ + async getDynamicList () { + const willbepushlist: WillBePushList = {} + + try { + for (const item of Config.pushlist.bilibili) { + const dynamic_list = await fetchBilibiliData('user_dynamic', { host_mid: item.host_mid }) + const ALL_DBdata = await DB.FindAll('bilibili') + + // 将数据库中的 group_id 转换为 Set,便于后续检查是否存在 + const dbGroupIds = new Set(Object.keys(ALL_DBdata).map(groupIdStr => groupIdStr.split(':')[0])) + + // 配置文件中的 group_id 转换为对象数组,每个对象包含群号和机器人账号 + const configGroupIdObjs = item.group_id.map(groupIdStr => { + const [ groupId, robotId ] = groupIdStr.split(':') + return { groupId: groupId, robotId } + }) + + // 找出新添加的群组ID + const newGroupIds = configGroupIdObjs.filter(groupIdObj => !dbGroupIds.has(groupIdObj.groupId)) + + + if (dynamic_list.data.items.length > 0) { + // 遍历接口返回的视频列表 + for (const dynamic of dynamic_list.data.items) { + const now = Date.now() + // B站的是秒为单位的时间戳,需要乘 1000 转为毫秒 + const createTime = parseInt(dynamic.modules.module_author.pub_ts) + const timeDifference = (now - createTime * 1000) + + const is_top = dynamic.modules.module_tag?.text === '置顶' // 是否为置顶 + let shouldPush = false // 是否列入推送数组 + // 条件判断,以下任何一项成立都将进行推送:如果是置顶且发布时间在一天内 || 如果是置顶作品且有新的群组且发布时间在一天内 || 如果有新的群组且发布时间在一天内 + logger.debug(`前期获取该动态基本信息:\n动态ID:${dynamic.id_str}\n发布时间:${Common.convertTimestampToDateTime(Number(createTime))}\n发布时间戳(s):${createTime}\n时间差(ms):${timeDifference}\n是否置顶:${is_top}\n是否有新群组:${newGroupIds.length > 0}\n是否在一天内:${timeDifference < 86400000 ? logger.green('true') : logger.red('false')}`) + if ((is_top && timeDifference < 86400000) || (timeDifference < 86400000) || (newGroupIds.length > 0 && timeDifference < 86400000)) { + shouldPush = true + logger.debug(logger.green(`根据以上判断,shoulPush 为 true,将对该动态:https://t.bilibili.com/${dynamic.id_str}\n`)) + } else logger.debug(logger.yellow(`根据以上判断,shoulPush 为 false,跳过该动态:https://t.bilibili.com/${dynamic.id_str}\n`)) + // 如果 shouldPush 为 true,或该作品距现在的时间差小于一天,则将该动态添加到 willbepushlist 中 + if (timeDifference < 86400000 || shouldPush) { + // 确保 willbepushlist[host_mid.aweme_id] 是一个对象 + if (!willbepushlist[dynamic.id_str]) { + willbepushlist[dynamic.id_str] = { + remark: item.remark, + host_mid: item.host_mid, + create_time: dynamic.modules.module_author.pub_ts, + group_id: [ ...item.group_id ], + Dynamic_Data: dynamic, // 存储 dynamic 对象 + avatar_img: dynamic.modules.module_author.face, + dynamic_type: dynamic.type + } + } + } + } + } else { + throw new Error(`「${item.remark}」的动态列表数量为零!`) + } + } + } catch (error) { + logger.error(error) + } + + const DBdata = await DB.FindAll('bilibili') + // 这里是强制数组的第一个对象中的内容 DBdata[0]?.data 因为调用这个函数的上层有遍历群组逻辑 + // DBdata[0]?.data 则是当前群组的推送用户数据 + return { willbepushlist, DBdata } + } + + /** + * 排除已推送过的群组并返回更新后的推送列表 + * @param willBePushList 将要推送的列表 + * @param dbData 数据库缓存 + * @returns 更新后的推送列表 + */ + excludeAlreadyPushed ( + willBePushList: WillBePushList, + dbData: AllDataType<'bilibili'>['bilibili'] + ): WillBePushList { + // 主要逻辑: + // 遍历推送列表中的 dynamicId。 + // 对每个 dynamicId 的 group_id 逐一检查: + // 如果群组不存在于数据库中,直接保留。 + // 如果群组存在,进一步检查数据库中的缓存列表是否包含该 dynamicId。 + // 更新 group_id 数组:移除已推送的群组。 + // 如果 group_id 为空,则删除该dynamicId。 + + // 遍历推送列表中的作品ID + for (const dynamicId in willBePushList) { + const pushItem = willBePushList[dynamicId] + const newGroupIds: string[] = [] + + // 遍历作品对应的群组 + for (const groupId of pushItem.group_id) { + // 如果数据库中不存在该群组,保留此群组 + if (!dbData) { + newGroupIds.push(groupId) + continue + } + + // 检查群组中所有博主的缓存 + let isAlreadyPushed = false + for (const secUid in dbData[groupId]) { + const cachedData = dbData[groupId][secUid] + if (cachedData.dynamic_idlist.includes(dynamicId)) { + isAlreadyPushed = true + break + } + } + + // 如果未被推送过,则保留此群组 + if (!isAlreadyPushed) { + newGroupIds.push(groupId) + } + } + + // 更新作品的群组数组 + if (newGroupIds.length > 0) { + pushItem.group_id = newGroupIds + } else { + // 如果没有剩余群组,移除该作品 + delete willBePushList[dynamicId] + } + } + + return willBePushList + } + + /** + * 设置或更新特定 host_mid 的群组信息。 + * @param data 包含 card 对象。 + * @returns 操作成功或失败的消息字符串。 + */ + async setting (data: any): Promise { + const groupInfo = await this.e.bot.GetGroupInfo(this.e.group_id) + let msg + const host_mid = data.data.card.mid + const config = Config.pushlist // 读取配置文件 + const group_id = this.e.group_id + + // 初始化或确保 bilibilipushlist 数组存在 + if (!config.bilibili) { + config.bilibili = [] + } + + // 检查是否存在相同的 host_mid + const existingItem = config.bilibili.find((item: { host_mid: string }) => item.host_mid === host_mid) + + if (existingItem) { + // 如果已经存在相同的 host_mid ,则检查是否存在相同的 group_id + let has = false + let groupIndexToRemove = -1 // 用于记录要删除的 group_id 对象的索引 + for (let index = 0; index < existingItem.group_id.length; index++) { + // 分割每个对象的 id 属性,并获取第一部分 + const item = existingItem.group_id[index] + const existingGroupId = item.split(':')[0] + + // 检查分割后的第一部分是否与提供的 group_id 相同 + if (existingGroupId === String(group_id)) { + has = true + groupIndexToRemove = index + break // 找到匹配项后退出循环 + } + } + if (has) { + // 如果已存在相同的 group_id,则删除它 + existingItem.group_id.splice(groupIndexToRemove, 1) + logger.info(`\n删除成功!${data.data.card.name}\nUID:${host_mid}`) + msg = `群:${groupInfo.group_name}(${group_id})\n删除成功!${data.data.card.name}\nUID:${host_mid}` + + // 如果删除后 group_id 数组为空,则删除整个属性 + if (existingItem.group_id.length === 0) { + const index = config.bilibili.indexOf(existingItem) + config.bilibili.splice(index, 1) + } + } else { + const status = await DB.FindGroup('bilibili', `${group_id}:${this.e.self_id}`) + if (!status) { + await DB.CreateSheet('bilibili', `${group_id}:${this.e.self_id}`, {}) + } + // 否则,将新的 group_id 添加到该 host_mid 对应的数组中 + existingItem.group_id.push(`${group_id}:${this.e.self_id}`) + msg = `群:${groupInfo.group_name}(${group_id})\n添加成功!${data.data.card.name}\nUID:${host_mid}` + logger.info(`\n设置成功!${data.data.card.name}\nUID:${host_mid}`) + } + } else { + const status = await DB.FindGroup('bilibili', `${group_id}:${this.e.self_id}`) + if (!status) { + await DB.CreateSheet('bilibili', `${group_id}:${this.e.self_id}`, {}) + } + // 不存在相同的 host_mid,新增一个配置项 + config.bilibili.push({ host_mid, group_id: [ `${group_id}:${this.e.self_id}` ], remark: data.data.card.name }) + msg = `群:${groupInfo.group_name}(${group_id})\n添加成功!${data.data.card.name}\nUID:${host_mid}` + } + + // 更新配置文件 + Config.modify('pushlist', 'bilibili', config.bilibili) + return msg + } + + /** + * 检查并更新配置文件中指定用户的备注信息。 + * 该函数会遍历配置文件中的用户列表,对于没有备注或备注为空的用户,会从外部数据源获取其备注信息,并更新到配置文件中。 + */ + async checkremark () { + // 读取配置文件内容 + const config = Config.pushlist + const abclist: { host_mid: string }[] | { host_mid: string; group_id: string[] }[] = [] + if (Config.pushlist.bilibili === null || Config.pushlist.bilibili.length === 0) return true + // 遍历配置文件中的用户列表,收集需要更新备注信息的用户 + for (let i = 0; i < Config.pushlist.bilibili.length; i++) { + const remark = Config.pushlist.bilibili[i].remark + const group_id = Config.pushlist.bilibili[i].group_id + const host_mid = Config.pushlist.bilibili[i].host_mid + + if (remark === undefined || remark === '') { + abclist.push({ host_mid, group_id }) + } + } + + // 如果有需要更新备注的用户,则逐个获取备注信息并更新到配置文件中 + if (abclist.length > 0) { + for (let i = 0; i < abclist.length; i++) { + // 从外部数据源获取用户备注信息 + const resp = await fetchBilibiliData('user_profile', { host_mid: abclist[i].host_mid }) + const remark = resp.data.card.name + // 在配置文件中找到对应的用户,并更新其备注信息 + const matchingItemIndex = config.bilibili.findIndex((item: { host_mid: string }) => item.host_mid === abclist[i].host_mid) + if (matchingItemIndex !== -1) { + config.bilibili[matchingItemIndex].remark = remark + } + } + // 将更新后的配置文件内容写回文件 + Config.modify('pushlist', 'bilibili', config.bilibili) + } + } + + /** + * 强制推送 + * @param data 处理完成的推送列表 + */ + async forcepush (data: WillBePushList) { + if (!this.e.msg.includes('全部')) { + for (const detail in data) { + data[detail].group_id = [ ...[ `${this.e.group_id}:${this.e.self_id}` ] ] + } + } + await this.getdata(data) + } +} + +/** + * 将换行符替换为HTML的
标签。 + * @param data 需要进行换行符替换的字符串。 + * @returns 替换后的字符串,其中的换行符\n被
替换。 + */ +function br (data: string): string { + // 使用正则表达式将所有换行符替换为
+ return (data = data.replace(/\n/g, '
')) +} + +/** + * 检查成员是否为VIP,并根据VIP状态改变其显示颜色。 + * @param member 成员对象,需要包含vip属性,该属性应包含vipStatus和nickname_color(可选)。 + * @returns 返回成员名称的HTML标签字符串,VIP成员将显示为特定颜色,非VIP成员显示为默认颜色。 + */ +function checkvip (member: any): string { + // 根据VIP状态选择不同的颜色显示成员名称 + let light = false + const date = new Date().getHours() + if (date >= 6 && date < 18) { + light = true + } + return member.vip.vipStatus === 1 + ? `${member.name}` + : `${member.name}` +} + +/** + * 处理并提取表情数据,返回一个包含表情名称和URL的对象数组。 + * @param data 表情数据的数组,每个元素包含一个表情包的信息。 + * @returns 返回一个对象数组,每个对象包含text(表情名称)和url(表情图片地址)属性。 + */ +function extractEmojisData (data: any[]): Array { + const emojisData: any[] = [] + + // 遍历data数组中的每个表情包 + data.forEach((packages) => { + // 遍历每个表情包中的每个表情 + packages.emote.forEach((emote: { text: string; url: string }) => { + try { + // 尝试将表情的URL转换为URL对象,如果成功则将其添加到emojisData数组中 + // new URL(emote.url) + emojisData.push({ text: emote.text, url: emote.url }) + } catch { } // 如果URL无效,则忽略该表情 + }) + }) + + return emojisData +} + +function replacetext (text: string, obj: any) { + for (const tag of obj.modules.module_dynamic.desc.rich_text_nodes) { + // 对正则表达式中的特殊字符进行转义 + const escapedText = tag.orig_text.replace(/([.*+?^${}()|[\]\\])/g, '\\$1').replace(/\n/g, '\\n') + const regex = new RegExp(escapedText, 'g') + switch (tag.type) { + case 'RICH_TEXT_NODE_TYPE_TOPIC': + case 'RICH_TEXT_NODE_TYPE_AT': { + text = text.replace(regex, `${tag.orig_text}`) + break + } + case 'RICH_TEXT_NODE_TYPE_LOTTERY': { + text = text.replace(regex, ` ${tag.orig_text}`) + break + } + case 'RICH_TEXT_NODE_TYPE_WEB': { + text = text.replace(regex, ` ${tag.text}`) + break + } + case 'RICH_TEXT_NODE_TYPE_EMOJI': { + const regex = new RegExp(tag.orig_text.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'), 'g') + text = text.replace(regex, ``) + break + } + } + } + return text +} + +/** + * 判断标题是否有屏蔽词或屏蔽标签 + * @param Dynamic_Data 作品详情数据 + * @returns + */ +const skipDynamic = (Dynamic_Data: PushItem['Dynamic_Data']): boolean => { + for (const banWord of Config.douyin.push.banWords) { + if (Dynamic_Data.modules.module_dynamic.major?.archive?.title.includes(banWord) || Dynamic_Data.modules.module_dynamic.desc?.text?.includes(banWord)) { + logger.mark(`动态:${logger.green(`https://t.bilibili.com/${Dynamic_Data.id_str}`)} 包含屏蔽词:「${logger.red(banWord)}」,跳过推送`) + return true + } + } + if (Dynamic_Data.type === 'DYNAMIC_TYPE_DRAW') { + for (const banTag of Config.bilibili.push.banTags) { + for (const tag of Dynamic_Data.modules.module_dynamic.desc.rich_text_nodes) { + if (tag.orig_text.includes(banTag)) { + logger.mark(`图文动态:${logger.green(`https://t.bilibili.com/${Dynamic_Data.id_str}`)} 包含屏蔽标签:「${logger.red(banTag)}」,跳过推送`) + return true + } + } + } + } + return false +} \ No newline at end of file diff --git a/src/platform/douyin/comments.ts b/src/platform/douyin/comments.ts new file mode 100644 index 0000000..0d74a1d --- /dev/null +++ b/src/platform/douyin/comments.ts @@ -0,0 +1,245 @@ +import { Config, Common } from '@/module/utils' +import { getDouyinData } from '@ikenxuan/amagi' +import { Networks } from '@/module/utils' +import convert from 'heic-convert' +/** + * + * @param {*} data 完整的评论数据 + * @param {*} emojidata 处理过后的emoji列表 + * @returns obj + */ +export async function douyinComments (data: any, emojidata: any): Promise { + let jsonArray = [] + if (data.comments === null) return [] + + for (let i = 0; i < data.comments.length; i++) { + const cid = data.comments[i].cid + const aweme_id = data.comments[i].aweme_id + const nickname = data.comments[i].user.nickname + const userimageurl = data.comments[i].user.avatar_larger.url_list[0] + const text = data.comments[i].text + const ip = data.comments[i].ip_label ? data.comments[i].ip_label : '未知' + const time = data.comments[i].create_time + const label_type = data.comments[i].label_type ? data.comments[i].label_type : -1 + const sticker = data.comments[i].sticker ? data.comments[i].sticker.animate_url.url_list[0] : null + const digg_count = data.comments[i].digg_count + const imageurl = + data.comments[i].image_list && + data.comments[i].image_list[0] && + data.comments[i].image_list[0].origin_url && + data.comments[i].image_list[0].origin_url.url_list + ? data.comments[i].image_list[0].origin_url.url_list[0] + : null + const status_label = data.comments[i].label_list ? data.comments[i].label_list[0].text : null + const userintextlongid = + data.comments[i].text_extra && data.comments[i].text_extra[0] && data.comments[i].text_extra[0].sec_uid + ? data.comments[i].text_extra[0].sec_uid && data.comments[i].text_extra.map((extra: { sec_uid: string }) => extra.sec_uid) + : null + const search_text = + data.comments[i].text_extra && data.comments[i].text_extra[0] && data.comments[i].text_extra[0].search_text + ? data.comments[i].text_extra[0].search_text && + data.comments[i].text_extra.map((extra: { search_text: string; search_query_id: string }) => ({ + search_text: extra.search_text, + search_query_id: extra.search_query_id + })) + : null + const relativeTime = await getRelativeTimeFromTimestamp(time) + const reply_comment_total = data.comments[i].reply_comment_total + const commentObj = { + id: i + 1, + cid, + aweme_id, + nickname, + userimageurl, + text, + digg_count, + ip_label: ip, + create_time: relativeTime, + commentimage: imageurl, + label_type, + sticker, + status_label, + is_At_user_id: userintextlongid, + search_text, + reply_comment_total + } + jsonArray.push(commentObj) + } + + jsonArray.sort((a, b) => b.digg_count - a.digg_count) + const indexLabelTypeOne = jsonArray.findIndex((comment) => comment.label_type === 1) + + if (indexLabelTypeOne !== -1) { + const commentTypeOne = jsonArray.splice(indexLabelTypeOne, 1)[0] + jsonArray.unshift(commentTypeOne) + } + + + jsonArray = br(jsonArray) + jsonArray = await handling_at(jsonArray) + jsonArray = await search_text(jsonArray) + jsonArray = await heic2jpg(jsonArray) + + + const CommentData = { + jsonArray + } + + for (let i = 0; i < jsonArray.length; i++) { + if (jsonArray[i].digg_count > 10000) { + jsonArray[i].digg_count = (jsonArray[i].digg_count / 10000).toFixed(1) + 'w' + } + } + + for (const item1 of CommentData.jsonArray) { + // 遍历emojidata中的每个元素 + for (const item2 of emojidata) { + // 如果jsonArray中的text包含在emojidata中的name中 + if (item1.text.includes(item2.name)) { + // 检查是否存在中括号 + if (item1.text.includes('[') && item1.text.includes(']')) { + item1.text = item1.text.replace(/\[[^\]]*\]/g, ``).replace(/\\/g, '') + } else { + item1.text = `` + } + item1.text += ' ' + } + } + } + return CommentData +} + +async function getRelativeTimeFromTimestamp (timestamp: number) { + const now = Math.floor(Date.now() / 1000) // 当前时间的时间戳 + const differenceInSeconds = now - timestamp + + if (differenceInSeconds < 30) { + return '刚刚' + } else if (differenceInSeconds < 60) { + return differenceInSeconds + '秒前' + } else if (differenceInSeconds < 3600) { + return Math.floor(differenceInSeconds / 60) + '分钟前' + } else if (differenceInSeconds < 86400) { + return Math.floor(differenceInSeconds / 3600) + '小时前' + } else if (differenceInSeconds < 2592000) { + return Math.floor(differenceInSeconds / 86400) + '天前' + } else if (differenceInSeconds < 7776000) { + // 三个月的秒数 + return Math.floor(differenceInSeconds / 2592000) + '个月前' + } else { + const date = new Date(timestamp * 1000) // 将时间戳转换为毫秒 + const year = date.getFullYear() + const month = (date.getMonth() + 1).toString().padStart(2, '0') + const day = date.getDate().toString().padStart(2, '0') + return year + '-' + month + '-' + day + } +} + +/** + * 高亮 @ 的内容 + * @param data 评论数据 + * @returns + */ +async function handling_at (data: any[]): Promise { + for (const item of data) { + if (item.is_At_user_id !== null && Array.isArray(item.is_At_user_id)) { + for (const secUid of item.is_At_user_id) { + const UserInfoData = await getDouyinData('用户主页数据', Config.cookies.douyin, { sec_uid: secUid }) + if (UserInfoData.user.sec_uid === secUid) { + /** 这里评论只要生成了艾特,如果艾特的人改了昵称,评论也不会变,所以可能会出现有些艾特没有正确上颜色,因为接口没有提供历史昵称 */ + const regex = new RegExp(`@${UserInfoData.user.nickname?.replace(/[-\[\]{}()*+?.,\\\^$|#\s]/g, '\\$&')}`, 'g') + item.text = item.text.replace(regex, (match: any) => { + return `${match}` + }) + } + } + } + } + return data +} + +/** + * 高亮热点搜索关键词 + * @param data 评论数据 + * @returns + */ +async function search_text (data: { + id: number + cid: any + aweme_id: any + nickname: any + userimageurl: any + text: any + digg_count: any + ip_label: any + create_time: string + commentimage: any + label_type: any + sticker: any + status_label: any + is_At_user_id: any + search_text: any + reply_comment_total: any +}[]): Promise { + for (const item of data) { + if (item.search_text !== null && Array.isArray(item.search_text)) { + for (const search_text of item.search_text) { + const SuggestWordsData = await getDouyinData('热点词数据', Config.cookies.douyin, { query: search_text.search_text }) + if ( + SuggestWordsData.data && + SuggestWordsData.data[0] && + SuggestWordsData.data[0].params && + SuggestWordsData.data[0].params.query_id && + SuggestWordsData.data[0].params.query_id === search_text.search_query_id + ) { + const regex = new RegExp(`${search_text.search_text}`, 'g') + item.text = item.text.replace(regex, (match: any) => { + const themeClass = Common.useDarkTheme() ? 'dark-mode' : '' + return ` + ${match} + +    ` + }) + } + } + } + } + return data +} + +/** + * 换行符转义为
+ * @param data 评论数据 + * @returns + */ +function br (data: any[]): any[] { + for (let i = 0; i < data.length; i++) { + let text = data[i].text + + text = text.replace(/\n/g, '
') + data[i].text = text + } + return data +} + +/** + * HEIC转JPG + * @param jsonArray 评论数据 + * @returns + */ +const heic2jpg = async (jsonArray: any[]): Promise => { + for (const item of jsonArray) { + if (item.commentimage) { + const response = await new Networks({ url: item.commentimage, type: 'arraybuffer' }).returnResult() + if (response.headers["content-type"] && response.headers["content-type"] === 'image/heic') { + const jpegBuffer = await convert({ + buffer: response.data, + format: 'JPEG' + }) + const base64Image = Buffer.from(jpegBuffer).toString('base64') + item.commentimage = `data:image/jpeg;base64,${base64Image}` + } + } + } + return jsonArray +} diff --git a/src/platform/douyin/douyin.ts b/src/platform/douyin/douyin.ts new file mode 100644 index 0000000..09cb117 --- /dev/null +++ b/src/platform/douyin/douyin.ts @@ -0,0 +1,381 @@ +import { Base, Config, Networks, Render, mergeFile, Version, UploadRecord, Common } from '@/module/utils' +import { DouyinDataTypes, ExtendedDouyinOptionsType } from '@/types' +import { douyinComments } from '@/platform/douyin' +import { common, segment, logger, KarinMessage, render } from 'node-karin' +import fs from 'node:fs' +import { markdown } from '@karinjs/md-html' +import QRCode from 'qrcode' +import { getDouyinData } from '@ikenxuan/amagi' + +let mp4size = '' +let img + +export class DouYin extends Base { + e: KarinMessage + type: DouyinDataTypes[keyof DouyinDataTypes] + is_mp4: any + get botadapter (): string { + return this.e.bot?.adapter?.name + } + constructor (e: KarinMessage, iddata: ExtendedDouyinOptionsType) { + super(e) + this.e = e + this.type = iddata?.type + this.is_mp4 = iddata?.is_mp4 + } + + async RESOURCES (data: any) { + switch (this.type) { + case 'one_work': { + if (Config.douyin.tip) this.e.reply('检测到抖音链接,开始解析') + let g_video_url = '' + let g_title + const full_data = [] + + /** 图集 */ + let imagenum = 0 + const image_res = [] + if (this.is_mp4 === false) { + const image_data = [] + const imageres = [] + let image_url + for (let i = 0; i < data.VideoData.aweme_detail.images.length; i++) { + image_url = data.VideoData.aweme_detail.images[i].url_list[2] || data.VideoData.aweme_detail.images[i].url_list[1] // 图片地址 + + const title = data.VideoData.aweme_detail.preview_title.substring(0, 50).replace(/[\\/:\*\?"<>\|\r\n]/g, ' ') // 标题,去除特殊字符 + g_title = title + imageres.push(segment.image(image_url)) + imagenum++ + if (Config.app.rmmp4 === false) { + common.mkdir(`${Common.tempDri.images}${g_title}`) + const path = `${Common.tempDri.images}${g_title}/${i + 1}.png` + await new Networks({ url: image_url, type: 'arraybuffer' }).getData().then((data) => fs.promises.writeFile(path, Buffer.from(data))) + } + } + const res = common.makeForward(imageres, this.e.sender.uin, this.e.sender.nick) + image_data.push(res) + image_res.push(image_data) + if (imageres.length === 1) { + await this.e.reply(segment.image(image_url)) + } else { + await this.e.bot.sendForwardMessage(this.e.contact, res) + } + } else { + image_res.push('图集信息解析失败') + } + + /** 背景音乐 */ + if (data.VideoData.aweme_detail.music) { + const music = data.VideoData.aweme_detail.music + const music_url = music.play_url.uri // BGM link + if (this.is_mp4 === false && Config.app.rmmp4 === false && music_url !== undefined) { + try { + const path = Common.tempDri.images + `${g_title}/BGM.mp3` + await new Networks({ url: music_url, type: 'arraybuffer' }).getData().then((data) => fs.promises.writeFile(path, Buffer.from(data))) + } catch (error) { + console.log(error) + } + } + const haspath = music_url && this.is_mp4 === false && music_url !== undefined + switch (this.botadapter) { + case 'OneBotv11': { + if (haspath) { + await this.e.reply(segment.record(music_url)) + } + break + } + case 'ICQQ': { + if (haspath) { + if (Config.douyin.sendHDrecord) await this.e.reply(await UploadRecord(this.e, music_url, 0, false)) + else this.e.reply(segment.record(music_url)) + } + break + } + } + } + + /** 视频 */ + let FPS + const video_res = [] + let sendvideofile = true + if (this.is_mp4) { + const video_data = [] + const videores = [] + // 视频地址特殊判断:play_addr_h264、play_addr、 + const video = data.VideoData.aweme_detail.video + FPS = video.bit_rate[0].FPS // FPS + if (data.VideoData.aweme_detail.video.play_addr_h264) { + g_video_url = await new Networks({ + url: video.play_addr_h264.url_list[2], + headers: this.headers + }).getLongLink() + } else if (data.VideoData.aweme_detail.video.play_addr) { + g_video_url = await new Networks({ + url: video.play_addr.url_list[0], + headers: this.headers + }).getLongLink() + } + const cover = video.origin_cover.url_list[0] // video cover image + + const title = data.VideoData.aweme_detail.preview_title.substring(0, 80).replace(/[\\/:\*\?"<>\|\r\n]/g, ' ') // video title + g_title = title + mp4size = (video.play_addr.data_size / (1024 * 1024)).toFixed(2) + videores.push(segment.text(`标题:\n${title}`)) + videores.push(segment.text(`视频帧率:${'' + FPS}\n视频大小:${mp4size}MB`)) + videores.push(segment.text( + `永久直链(302跳转)\nhttps://aweme.snssdk.com/aweme/v1/play/?video_id=${data.VideoData.aweme_detail.video.play_addr.uri}&ratio=1080p&line=0` + )) + videores.push(segment.text(`视频直链(有时效性,永久直链在下一条消息):\n${g_video_url}`)) + videores.push(segment.image(cover)) + g_video_url = `https://aweme.snssdk.com/aweme/v1/play/?video_id=${data.VideoData.aweme_detail.video.play_addr.uri}&ratio=1080p&line=0` + logger.info('视频地址', g_video_url) + const res = common.makeForward(videores, this.e.sender.uin, this.e.sender.nick) + video_data.push(res) + video_res.push(video_data) + } + + if (Config.douyin.comment && Config.douyin.comment) { + const EmojiData = await getDouyinData('Emoji数据') + const list = await Emoji(EmojiData) + const commentsArray = await douyinComments(data.CommentsData, list) + const img = await Render('douyin/comment', + { + Type: this.is_mp4 ? '视频' : '图集', + CommentsData: commentsArray, + CommentLength: String(commentsArray.jsonArray?.length ? commentsArray.jsonArray.length : 0), + share_url: this.is_mp4 + ? `https://aweme.snssdk.com/aweme/v1/play/?video_id=${data.VideoData.aweme_detail.video.play_addr.uri}&ratio=1080p&line=0` + : data.VideoData.aweme_detail.share_url, + Title: g_title, + VideoSize: mp4size, + VideoFPS: FPS, + ImageLength: imagenum + } + ) + await this.e.reply(img) + } + /** 发送视频 */ + sendvideofile && this.is_mp4 && await this.DownLoadVideo({ video_url: g_video_url, title: { timestampTitle: 'tmp_' + Date.now(), originTitle: g_title } }) + return true + } + + case 'user_mix_videos': { + const images = [] + const bgmurl = data.aweme_details[0].music.play_url.uri + for (const item of data.aweme_details[0].images) { + // 静态图片,clip_type为2 + if (item.clip_type === 2) { + images.push(segment.text(`动图直链:\nhttps://aweme.snssdk.com/aweme/v1/play/?video_id=${item.uri}&ratio=1080p&line=0`)) + continue + } + images.push(segment.text(`动图直链:\nhttps://aweme.snssdk.com/aweme/v1/play/?video_id=${item.video.play_addr_h264.uri}&ratio=1080p&line=0`)) + // 动图 + const liveimg = await this.DownLoadFile( + `https://aweme.snssdk.com/aweme/v1/play/?video_id=${item.video.play_addr_h264.uri}&ratio=1080p&line=0`, + { + title: 'Douyin_tmp_' + Date.now(), + headers: this.headers, + filetype: '.mp4' + } + ) + // BGM + const liveimgbgm = await this.DownLoadFile( + bgmurl, + { + title: 'Douyin_tmp_' + Date.now(), + headers: this.headers, + filetype: '.mp3' + } + ) + if (liveimg.filepath && liveimgbgm.filepath) { + const resolvefilepath = Common.tempDri.video + `Douyin_Result_${Date.now()}.mp4` + await mergeFile('视频*3 + 音频', { + path: liveimg.filepath, + path2: liveimgbgm.filepath, + resultPath: resolvefilepath, + callback: async (success: boolean): Promise => { + if (success) { + const filePath = Common.tempDri.video + `tmp_${Date.now()}.mp4` + fs.renameSync( + resolvefilepath, + filePath + ) + await this.removeFile(liveimgbgm.filepath, true) + await this.removeFile(liveimg.filepath, true) + + const stats = fs.statSync(filePath) + const fileSizeInMB = Number((stats.size / (1024 * 1024)).toFixed(2)) + if (fileSizeInMB > Config.upload.groupfilevalue) { + this.e.reply(`视频大小: ${fileSizeInMB}MB 正通过群文件上传中...`) + return await this.upload_file({ filepath: filePath, totalBytes: fileSizeInMB }, '', { useGroupFile: true }) + } else { + /** 因为本地合成,没有视频直链 */ + return await this.upload_file({ filepath: filePath, totalBytes: fileSizeInMB }, '') + } + } else { + await this.removeFile(liveimgbgm.filepath, true) + await this.removeFile(liveimg.filepath, true) + return true + } + } + }) + } + } + const Element = common.makeForward(images, this.e.sender.uin, this.e.sender.nick) + await this.e.bot.sendForwardMessage(this.e.contact, Element) + return true + } + + case 'user_dynamic': { + const veoarray = [] + veoarray.unshift(`------------------------------ | ---------------------------- |\n`) + veoarray.unshift(`标题 | 分享二维码 |\n`) + const forwardmsg = [] + for (let i = 0; i < data.aweme_list.length; i++) { + const title = data.aweme_list[i].desc + const cover = data.aweme_list[i].share_url + veoarray.push(`${title} | ![img](${await QRCode.toDataURL(cover, { + errorCorrectionLevel: 'H', + type: 'image/png', + color: { + light: '#ffffff00', + dark: Common.useDarkTheme() ? '#FFFFFF' : '#000000' + } + })}) |\n`) + forwardmsg.push(segment.text(`作品标题: ${title}\n分享链接: ${cover}`)) + } + const matext = markdown(veoarray.join(''), {}) + const htmlpath = `${Version.karinPath}/temp/html/${Version.pluginName}/douyin/user_worklist.html` + fs.writeFileSync(htmlpath, matext, 'utf8') + const img = await render.renderHtml(htmlpath) + await this.e.reply(segment.image(img)) + const Element2 = common.makeForward(forwardmsg, this.e.sender.uin, this.e.sender.nick) + await this.e.bot.sendForwardMessage(this.e.contact, Element2) + return true + } + case 'music_work': { + const sec_uid = data.music_info.sec_uid + let userdata = await getDouyinData('用户主页数据', Config.cookies.douyin, { sec_uid }) + if (userdata.status_code === 2) { + const new_userdata = await getDouyinData('搜索数据', Config.cookies.douyin, { query: data.music_info.author }) + if (new_userdata.data[0].type === 4 && new_userdata.data[0].card_unique_name === 'user') { + userdata = { user: new_userdata.data[0].user_list[0].user_info } + } + const search_data = new_userdata + } + img = await Render('douyin/musicinfo', + { + image_url: data.music_info.cover_hd.url_list[0], + desc: data.music_info.title, + music_id: data.music_info.id, + create_time: Time(0), + user_count: this.count(data.music_info.user_count), + avater_url: data.music_info.avatar_large?.url_list[0] || userdata.user.avatar_larger.url_list[0], + fans: userdata.user.mplatform_followers_count || userdata.user.follower_count, + following_count: userdata.user.following_count, + total_favorited: userdata.user.total_favorited, + user_shortid: userdata.user.unique_id === '' ? userdata.user.short_id : userdata.user.unique_id, + share_url: data.music_info.play_url.uri, + username: data.music_info?.original_musician_display_name || data.music_info.owner_nickname === '' ? data.music_info.author : data.music_info.owner_nickname + } + ) + await this.e.reply( + [ + ...img, + `\n正在上传 ${data.music_info.title}\n`, + `作曲: ${data.music_info.original_musician_display_name || data.music_info.owner_nickname === '' ? data.music_info.author : data.music_info.owner_nickname}\n`, + `music_id: ${data.music_info.id}` + ] + ) + + // const record = await UploadRecord(this.e, data.music_info.play_url.uri, 0, false) + if (this.botadapter === 'ICQQ') { + await this.e.reply(await UploadRecord(this.e, data.music_info.play_url.uri, 0, false)) + } else await this.e.reply(segment.record(data.music_info.play_url.uri)) + + return true + } + case 'live_room_detail': { + if (data.user.live_status === 1) { + // 直播中 + const live_data = await getDouyinData('直播间信息数据', Config.cookies.douyin, { sec_uid: data.user.sec_uid }) + const room_data = JSON.parse(data.user.room_data) + const img = await Render('douyin/live', + { + image_url: [ { image_src: live_data.data.data[0].cover.url_list[0] } ], + text: live_data.data.data[0].title, + liveinf: `${live_data.data.partition_road_map.partition.title} | 房间号: ${room_data.owner.web_rid}`, + 在线观众: this.count(live_data.data.data[0].room_view_stats.display_value), + 总观看次数: this.count(live_data.data.data[0].stats.total_user_str), + username: data.user.nickname, + avater_url: data.user.avatar_larger.url_list[0], + fans: this.count(data.user.follower_count), + create_time: convertTimestampToDateTime(new Date().getTime()), + now_time: convertTimestampToDateTime(new Date().getTime()), + share_url: 'https://live.douyin.com/' + room_data.owner.web_rid, + dynamicTYPE: '直播间信息' + } + ) + await this.e.reply(img) + } else { + this.e.reply('当前博主未开播 ~') + } + return true + } + default: + break + } + } +} + +/** + * 传递整数,返回x小时后的时间 + * @param {number} delay + * @returns + */ +function Time (delay: number): string { + const currentDate = new Date() + currentDate.setHours(currentDate.getHours() + delay) + + const year = currentDate.getFullYear().toString() + const month = (currentDate.getMonth() + 1).toString() + const day = String(currentDate.getDate()).padStart(2, '0') + const hours = String(currentDate.getHours()).padStart(2, '0') + const minutes = String(currentDate.getMinutes()).padStart(2, '0') + const seconds = String(currentDate.getSeconds()).padStart(2, '0') + + return `${year}/${month}/${day} ${hours}:${minutes}:${seconds}` +} + +/** + * + * @param {number} timestamp 时间戳 + * @returns 获取 年-月-日 时:分 + */ +function convertTimestampToDateTime (timestamp: number): string { + const date = new Date(timestamp * 1000) + const year = date.getFullYear() + const month = String(date.getMonth() + 1).padStart(2, '0') + const day = String(date.getDate()).padStart(2, '0') + const hours = String(date.getHours()).padStart(2, '0') + const minutes = String(date.getMinutes()).padStart(2, '0') + + return `${year}-${month}-${day} ${hours}:${minutes}` +} + + +function Emoji (data: any): any { + const ListArray = [] + + for (let i = 0; i < data.emoji_list.length; i++) { + const display_name = data.emoji_list[i].display_name + const url = data.emoji_list[i].emoji_url.url_list[0] + + const Objject = { + name: display_name, + url + } + ListArray.push(Objject) + } + return ListArray +} diff --git a/src/platform/douyin/getData.ts b/src/platform/douyin/getData.ts new file mode 100644 index 0000000..d016fe2 --- /dev/null +++ b/src/platform/douyin/getData.ts @@ -0,0 +1,77 @@ +import { Config } from '@/module/utils' +import { getDouyinData, DouyinDataOptionsMap } from '@ikenxuan/amagi' +import { DouyinDataTypes } from '@/types' + +export async function fetchDouyinData ( + type: T, + opt?: any +): Promise { + const dyck = Config.cookies.douyin + if (!dyck) throw new Error('获取抖音数据需要抖音ck,请使用 [#kkk设置抖音ck] 以设置抖音ck') + + switch (type) { + case 'one_work': { + const VideoData = await getDouyinData('图集作品数据', dyck, { + aweme_id: (opt as DouyinDataOptionsMap['图集作品数据']).aweme_id + }) + const CommentsData = await getDouyinData('评论数据', dyck, { + aweme_id: (opt as DouyinDataOptionsMap['评论数据']).aweme_id, + number: Config.douyin.numcomment + }) + return { VideoData, CommentsData } + } + + case 'work_comments': { + const CommentsData = await getDouyinData('评论数据', dyck, { + aweme_id: (opt as DouyinDataOptionsMap['评论数据']).aweme_id, + number: Config.douyin.numcomment + }) + return CommentsData + } + + case 'user_mix_videos': { + const LiveImageData = await getDouyinData('实况图片图集数据', dyck, { + aweme_id: (opt as DouyinDataOptionsMap['实况图片图集数据']).aweme_id + }) + return LiveImageData + } + case 'live_room_detail': + case 'user_profile': { + const UserInfoData = await getDouyinData('用户主页数据', dyck, { + sec_uid: (opt as unknown as DouyinDataOptionsMap['用户主页数据']).sec_uid + }) + return UserInfoData + } + case 'emoji_list': { + const EmojiData = await getDouyinData('Emoji数据') + return EmojiData + } + case 'user_dynamic': { + const UserVideoListData = await getDouyinData('用户主页视频列表数据', dyck, { + sec_uid: (opt as unknown as DouyinDataOptionsMap['用户主页视频列表数据']).sec_uid + }) + return UserVideoListData + } + case 'suggest_words': { + const SuggestWordsData = await getDouyinData('热点词数据', dyck, { + query: (opt as unknown as DouyinDataOptionsMap['热点词数据']).query + }) + return SuggestWordsData + } + case 'search_info': { + const SearchData = await getDouyinData('搜索数据', dyck, { + query: (opt as unknown as DouyinDataOptionsMap['热点词数据']).query + }) + return SearchData + } + case 'music_work': { + const MusicData = await getDouyinData('音乐数据', dyck, { + music_id: (opt as unknown as DouyinDataOptionsMap['音乐数据']).music_id + }) + return MusicData + } + default: + break + } + +} \ No newline at end of file diff --git a/src/platform/douyin/getID.ts b/src/platform/douyin/getID.ts new file mode 100644 index 0000000..35f2c7c --- /dev/null +++ b/src/platform/douyin/getID.ts @@ -0,0 +1,93 @@ +import { Networks } from '@/module/utils' +import { logger } from 'node-karin' +import { DouyinOptionsType } from '@ikenxuan/amagi' +import { DouyinDataTypes } from '@/types' + +export interface ExtendedDouyinOptionsType extends DouyinOptionsType { + type: DouyinDataTypes[keyof DouyinDataTypes], + /** 该作品是否为视频 */ + is_mp4?: boolean +} + +/** + * + * @param url 分享链接 + * @param log 输出日志,默认true + * @returns + */ +export async function getDouyinID (url: string, log = true): Promise { + const longLink = await new Networks({ url }).getLongLink() + let result = {} as ExtendedDouyinOptionsType + + switch (true) { + case /https:\/\/(?:www\.iesdouyin\.com)\/share\/slides/.test(longLink): + case longLink === 'https://www.douyin.com/': { + const newres = await new Networks({ url }).getLocation() + const match = newres.match(/share\/slides\/(\d+)/) + result = { + type: 'user_mix_videos', + aweme_id: match ? match[1] : undefined, + is_mp4: true + } + break + } + + case longLink.includes('webcast.amemv.com'): + case longLink.includes('live.douyin.com'): { + if (longLink.includes('webcast.amemv.com')) { + const sec_uid = longLink.match(/sec_user_id=([^&]+)/) + result = { + type: 'live_room_detail', + sec_uid: sec_uid ? sec_uid[1] : undefined + } + } else if (longLink.includes('live.douyin.com')) { + result = { + type: 'live_room_detail', + room_id: longLink.split('/').pop() + } + } + break + } + + case /video\/(\d+)/.test(longLink): { + const videoMatch = longLink.match(/video\/(\d+)/) + result = { + type: 'one_work', + aweme_id: videoMatch ? videoMatch[1] : undefined, + is_mp4: true + } + break + } + case /note\/(\d+)/.test(longLink): { + const noteMatch = longLink.match(/note\/(\d+)/) + result = { + type: 'one_work', + aweme_id: noteMatch ? noteMatch[1] : undefined, + is_mp4: false + } + break + } + case /https:\/\/(?:www\.douyin\.com|www\.iesdouyin\.com)\/share\/user\/(\S+)/.test(longLink): { + const userMatch = longLink.match(/user\/([a-zA-Z0-9_-]+)\b/) + result = { + type: 'user_dynamic', + sec_uid: userMatch ? userMatch[1] : undefined + } + break + } + case /music\/(\d+)/.test(longLink): { + const musicMatch = longLink.match(/music\/(\d+)/) + result = { + type: 'music_work', + music_id: musicMatch ? musicMatch[1] : undefined + } + break + } + default: + logger.warn('无法获取作品ID') + break + } + + log && console.log(result) + return result +} diff --git a/src/platform/douyin/index.ts b/src/platform/douyin/index.ts new file mode 100644 index 0000000..c7e9d12 --- /dev/null +++ b/src/platform/douyin/index.ts @@ -0,0 +1,6 @@ +export * from './getData' +export * from './getID' +export * from './comments' +export * from './douyin' +export * from './push' +export * from './login' \ No newline at end of file diff --git a/src/platform/douyin/login.ts b/src/platform/douyin/login.ts new file mode 100644 index 0000000..c135893 --- /dev/null +++ b/src/platform/douyin/login.ts @@ -0,0 +1,84 @@ +import karin, { logger, KarinMessage, handler, segment, KarinAdapter } from 'node-karin' +import { chromium } from 'playwright' +import { Version, Config } from '@/module' +import fs from 'node:fs' +import { execSync } from 'node:child_process' + +export const douyinLogin = async (e: KarinMessage) => { + const hal = await handler.call('kkk.douyinLogin', { e }) + if (hal) return true + const msg_id: string[] = [] + const message1 = await e.reply('免责声明:\n您将通过扫码完成获取抖音网页端的用户登录凭证(ck),该ck将用于请求抖音WEB API接口。\n本Bot不会保存您的登录状态。\n我方仅提供视频解析及相关抖音内容服务,若您的账号封禁、被盗等处罚与我方无关。\n害怕风险请勿扫码 ~') + try { + const browser = await chromium.launch({ + headless: false, + args: [ + '--disable-blink-features=AutomationControlled', // 禁用自动化控制 + '--window-position=-10000,-10000', // 将窗口移到屏幕外 + '--start-minimized', // 启动时最小化 + '--mute-audio' // 静音 + ] + }) + const page = await browser.newPage() + + await page.goto('https://www.douyin.com') + + // 等待二维码容器出现 + await page.waitForSelector('.web-login-scan-code__content__qrcode-wrapper', { timeout: 10000 }) + // 等待 img 元素加载并变得可见 + const qrcodeImage = await page.waitForSelector('.web-login-scan-code__content__qrcode-wrapper img', { timeout: 10000 }) + + // 获取 img 的 src 属性内容 + const qrCodeBase64 = await qrcodeImage.getAttribute('src') + // 移除 base64 前缀,提取实际数据 + const base64Data = qrCodeBase64 ? qrCodeBase64.replace(/^data:image\/\w+;base64,/, '') : '' + + // 将 base64 转换为 Buffer 并保存为文件 + const buffer = Buffer.from(base64Data, 'base64') + fs.writeFileSync(`${Version.karinPath}/temp/${Version.pluginName}/DouyinLoginQrcode.png`, buffer) + + const message2 = await e.reply([ segment.image('base64://' + base64Data), segment.text('请在120秒内通过抖音APP扫码进行登录') ], { reply: true }) + msg_id.push(message2.message_id, message1.message_id) + + try { + // 监听页面的 response 事件,捕捉包含 Set-Cookie 的 302 重定向响应 + page.on('response', async (response) => { + if (response.status() === 302 && response.url().includes('/passport/sso/login/callback')) { + // 获取本地的 cookie + const localCookies = await page.context().cookies() + const cookieString = localCookies.map(cookie => { + return `${cookie.name}=${cookie.value}` + }).join('; ') + Config.modify('cookies', 'douyin', cookieString) + await e.reply('登录成功!用户登录凭证已保存至cookies.yaml', { reply: true }) + // 关闭浏览器 + await browser.close() + // 批量撤回 + msg_id.forEach(async (id) => { + const bot = karin.getBot(e.self_id) as KarinAdapter + await bot.RecallMessage(e.contact, id) + }) + } + }) + } catch (err) { + await browser.close() + // 批量撤回 + msg_id.forEach(async (id) => { + const bot = karin.getBot(e.self_id) as KarinAdapter + await bot.RecallMessage(e.contact, id) + }) + await e.reply('登录超时!二维码已失效!', { reply: true }) + logger.error(err) + } + } catch (error: any) { + logger.warn('首次使用,正在初始化 playwright 环境,请稍等片刻...') + if (error.meeage.includes('npx playwright install')) { + execSync('npx playwright install', { cwd: Version.pluginPath, stdio: 'inherit' }) + await e.reply(`playwright 初始化成功,请再次发送「${e.msg}」`) + return true + } + } + + + return true +} \ No newline at end of file diff --git a/src/platform/douyin/push.ts b/src/platform/douyin/push.ts new file mode 100644 index 0000000..3a6ed5b --- /dev/null +++ b/src/platform/douyin/push.ts @@ -0,0 +1,526 @@ +import { Base, Render, Config, DB, Common, DouyinDBType, AllDataType } from '@/module' +import { getDouyinID } from '@/platform/douyin' +import { karin, logger, KarinMessage, segment, ImageElement, KarinAdapter, common } from 'node-karin' +import { getDouyinData } from '@ikenxuan/amagi' + +/** 每个推送项的类型定义 */ +interface PushItem { + /** 博主的昵称 */ + remark: string + /** 博主UID */ + sec_uid: string + /** 作品发布时间 */ + create_time: number + /** 要推送到的群组 */ + group_id: string[] + /** 作品详情信息 */ + Detail_Data: { + /** 博主主页信息 */ + user_info: any + [key: string]: any + } + /** 博主头像url */ + avatar_img: string + /** 是否正在直播 */ + living: boolean +} +/** 推送列表的类型定义 */ +interface WillBePushList { + [key: string]: PushItem +} + +export class DouYinpush extends Base { + private force: boolean = false + /** + * + * @param e 事件KarinMessage + * @param force 是否强制推送 + * @default false + * @returns + */ + constructor (e = {} as KarinMessage, force: boolean = false) { + super(e) + if (this.botadapter === 'QQBot') { + return + } + this.headers.Referer = 'https://www.douyin.com' + this.headers.Cookie = Config.cookies.douyin + this.force = force + } + + async action () { + if (await this.checkremark()) return true + + try { + let data = await this.getDynamicList() + const pushdata = this.excludeAlreadyPushed(data.willbepushlist, data.DBdata) + + if (Object.keys(pushdata).length === 0) return true + + if (this.force) return await this.forcepush(pushdata) + else return await this.getdata(pushdata) + } catch (error) { + logger.error(error) + } + } + + async getdata (data: WillBePushList) { + if (Object.keys(data).length === 0) return true + + for (const awemeId in data) { + + const Detail_Data = data[awemeId].Detail_Data + const skip = skipDynamic(Detail_Data) + let img: ImageElement[] = [] + const iddata = await getDouyinID(Detail_Data.share_url || 'https://live.douyin.com/' + Detail_Data.room_data.owner.web_rid, false) + + if (!skip) { + if (data[awemeId].living) { + img = await Render('douyin/live', { + image_url: [ { image_src: Detail_Data.live_data.data.data[0].cover.url_list[0] } ], + text: Detail_Data.live_data.data.data[0].title, + liveinf: `${Detail_Data.live_data.data.partition_road_map.partition.title} | 房间号: ${Detail_Data.room_data.owner.web_rid}`, + 在线观众: this.count(Detail_Data.live_data.data.data[0].room_view_stats.display_value), + 总观看次数: this.count(Detail_Data.live_data.data.data[0].stats.total_user_str), + username: Detail_Data.user_info.user.nickname, + avater_url: 'https://p3-pc.douyinpic.com/aweme/1080x1080/' + Detail_Data.user_info.user.avatar_larger.uri, + fans: this.count(Detail_Data.user_info.user.follower_count), + create_time: Common.convertTimestampToDateTime(new Date().getTime()), + now_time: Common.convertTimestampToDateTime(new Date().getTime()), + share_url: 'https://live.douyin.com/' + Detail_Data.room_data.owner.web_rid, + dynamicTYPE: '直播动态推送' + }) + } else { + img = await Render('douyin/dynamic', { + image_url: iddata.is_mp4 ? Detail_Data.video.animated_cover?.url_list[0] || Detail_Data.video.cover.url_list[0] : Detail_Data.images[0].url_list[0], + desc: this.desc(Detail_Data, Detail_Data.desc), + dianzan: this.count(Detail_Data.statistics.digg_count), + pinglun: this.count(Detail_Data.statistics.comment_count), + share: this.count(Detail_Data.statistics.share_count), + shouchang: this.count(Detail_Data.statistics.collect_count), + create_time: Common.convertTimestampToDateTime(data[awemeId].create_time), + avater_url: 'https://p3-pc.douyinpic.com/aweme/1080x1080/' + Detail_Data.user_info.user.avatar_larger.uri, + share_url: iddata.is_mp4 + ? `https://aweme.snssdk.com/aweme/v1/play/?video_id=${Detail_Data.video.play_addr.uri}&ratio=1080p&line=0` + : Detail_Data.share_url, + username: Detail_Data.author.nickname, + 抖音号: Detail_Data.user_info.user.unique_id === '' ? Detail_Data.user_info.user.unique_id : Detail_Data.user_info.user.unique_id, + 粉丝: this.count(Detail_Data.user_info.user.follower_count), + 获赞: this.count(Detail_Data.user_info.user.total_favorited), + 关注: this.count(Detail_Data.user_info.user.following_count) + }) + } + } + + // 遍历 group_id 数组,并发送消息 + try { + for (const groupId of data[awemeId].group_id) { + let status: any + if (!skip) { + const [ group_id, uin ] = groupId.split(':') + const bot = karin.getBot(uin) as KarinAdapter + status = await karin.sendMsg(String(uin), karin.contactGroup(group_id), img ? [ ...img ] : []) + // 是否一同解析该新作品? + if (Config.douyin.push.parsedynamic) { + // 如果新作品是视频 + if (iddata.is_mp4) { + try { + // 下载视频 + await this.DownLoadVideo({ + video_url: `https://aweme.snssdk.com/aweme/v1/play/?video_id=${Detail_Data.video.play_addr.uri}&ratio=1080p&line=0`, + title: { timestampTitle: 'tmp_' + Date.now(), originTitle: Detail_Data.desc } + }, { active: true, activeOption: { uin, group_id } }) + } catch (error) { + logger.error(error) + } + } else if (!iddata.is_mp4 && iddata.type === 'one_work') { // 如果新作品是图集 + const imageres: ImageElement[] = [] + let image_url + for (const item of Detail_Data.aweme_detail.images) { + image_url = item.url_list[2] || item.url_list[1] // 图片地址 + imageres.push(segment.image(image_url)) + } + const forwardMsg = common.makeForward(imageres, uin, (await bot?.GetCurrentAccount()).account_name) + await bot.sendForwardMessage(karin.contactFriend(uin), forwardMsg) + } + } + } + // 如果跳过该新作品或者动态图已成功发送且返回msg_id,则写入作品ID到数据库 + if (skip || status.message_id) { + let DBdata = await DB.FindGroup('douyin', groupId) + /** + * 检查 DBdata 中是否存在与给定 host_mid 匹配的项 + * @param DBdata - 数据库中存储的群组数据 + * @param host_midToCheck 要检查的host_mid + * @returns 匹配的host_mid + */ + const findMatchingSecUid = (DBdata: DouyinDBType, secUidToCheck: string) => { + for (const sec_uid in DBdata) { + if (DBdata.hasOwnProperty(sec_uid) && DBdata[sec_uid].sec_uid === secUidToCheck) { + return secUidToCheck + } + } + return '' + } + let newEntry: DouyinDBType + if (DBdata) { + // 如果 DBdata 存在,遍历 DBdata 来查找对应的 sec_uid + let found = false + + if (data[awemeId].sec_uid === findMatchingSecUid(DBdata, data[awemeId].sec_uid)) { + // 如果找到了对应的 sec_uid,将 awemeId 添加到 aweme_idlist 数组中 + const isSecUidFound = findMatchingSecUid(DBdata, data[awemeId].sec_uid) + if (isSecUidFound && this.force ? true : !DBdata[data[awemeId].sec_uid].aweme_idlist.includes(awemeId)) { + !data[awemeId].living ? DBdata[isSecUidFound].aweme_idlist.push(awemeId) : false + DBdata[isSecUidFound].create_time = Number(data[awemeId].create_time) + if ('living' in data[awemeId]) { + DBdata[isSecUidFound].living = true + } + await DB.UpdateGroupData('douyin', groupId, DBdata) + found = true + } + } + + if (!found) { + // 如果没有找到对应的 sec_uid,创建一个新的条目 + newEntry = { + [data[awemeId].sec_uid]: { + remark: data[awemeId].remark, + create_time: Number(data[awemeId].create_time), + sec_uid: data[awemeId].sec_uid, + aweme_idlist: !data[awemeId].living ? [ awemeId ] : [], + group_id: [ groupId ], + avatar_img: 'https://p3-pc.douyinpic.com/aweme/1080x1080/' + data[awemeId].Detail_Data.user_info.user.avatar_larger.uri, + living: data[awemeId].living + } + } + // 更新数据库 + await DB.UpdateGroupData('douyin', groupId, { ...DBdata, ...newEntry }) + } + } else { + // 如果 DBdata 为空,创建新的条目 + await DB.CreateSheet('douyin', groupId, { + [data[awemeId].sec_uid]: { + remark: data[awemeId].remark, + create_time: data[awemeId].create_time, + sec_uid: data[awemeId].sec_uid, + aweme_idlist: !data[awemeId].living ? [ awemeId ] : [], + avatar_img: 'https://p3-pc.douyinpic.com/aweme/1080x1080/' + data[awemeId].Detail_Data.user_info.user.avatar_larger.uri, + group_id: [ groupId ], + living: data[awemeId].living + } + }) + } + } + } + } catch (error) { + logger.error(error) + } + } + } + + /** + * 根据配置文件获取UP当天的动态列表。 + * @returns + */ + async getDynamicList () { + const willbepushlist: WillBePushList = {} + const DBdata = await DB.FindAll('douyin') + + try { + for (const item of Config.pushlist.douyin) { + const videolist = await getDouyinData('用户主页视频列表数据', Config.cookies.douyin, { sec_uid: item.sec_uid }) + const userinfo = await getDouyinData('用户主页数据', Config.cookies.douyin, { sec_uid: item.sec_uid }) + + if (videolist.aweme_list.length > 0) { + for (const aweme of videolist.aweme_list) { + const now = Date.now() + const createTime = parseInt(aweme.create_time, 10) * 1000 + const timeDifference = now - createTime // 时间差,单位秒 + const is_top = aweme.is_top === 1 // 是否为置顶 + let shouldPush = false + logger.debug(`前期获取该动态基本信息:\n动态ID:${aweme.aweme_id}\n发布时间:${Common.convertTimestampToDateTime(parseInt(aweme.create_time, 10))}\n发布时间戳(s):${parseInt(aweme.create_time, 10)}\n时间差(ms):${timeDifference}\n是否置顶:${is_top}\n是否处于开播:${userinfo.user.live_status === 1 ? logger.green('true') : logger.red('false')}是否在一天内:${timeDifference < 86400000 ? logger.green('true') : logger.red('false')}`) + if ((is_top && timeDifference < 86400000) || (timeDifference < 86400000)) { + shouldPush = true + logger.debug(logger.green(`根据以上判断,shoulPush 为 true,将对该作品进行推送:${aweme.share_url}\n`)) + } else logger.debug(logger.yellow(`根据以上判断,shoulPush 为 false,跳过该作品:${aweme.share_url}\n`)) + // 如果 shouldPush 为 true,或该作品距现在的时间差小于一天,则将该动态添加到 willbepushlist 中 + if (shouldPush) { + // 确保 willbepushlist[aweme.aweme_id] 是一个对象 + if (!willbepushlist[aweme.aweme_id]) { + willbepushlist[aweme.aweme_id] = { + remark: item.remark, + sec_uid: userinfo.user.sec_uid, + create_time: aweme.create_time, + group_id: item.group_id, + Detail_Data: { ...aweme, user_info: userinfo }, + avatar_img: 'https://p3-pc.douyinpic.com/aweme/1080x1080/' + userinfo.user.avatar_larger.uri, + living: userinfo.user.live_status === 1 + } + } + } + } + } else { + logger.error(`‘${item.remark}’的主页视频列表数量为零!`) + } + // 如果正在开播 + if (userinfo.user.live_status === 1) { + // 生成一个 19 位 fake aweme_id + const live_data = await getDouyinData('直播间信息数据', Config.cookies.douyin, { sec_uid: item.sec_uid }) + const room_data = JSON.parse(userinfo.user.room_data)//room_data.owner.web_rid + if (!willbepushlist[room_data.owner.web_rid]) { + willbepushlist[room_data.owner.web_rid] = { + remark: item.remark, + sec_uid: userinfo.user.sec_uid, + create_time: new Date().getTime(), + group_id: item.group_id, + Detail_Data: { live_data, room_data, user_info: userinfo, living: true }, + avatar_img: 'https://p3-pc.douyinpic.com/aweme/1080x1080/' + userinfo.user.avatar_larger.uri, + living: true + } + } + } + } + } catch (error) { + logger.error(error) + } + + return { willbepushlist, DBdata } + } + + /** + * 排除已推送过的群组并返回更新后的推送列表 + * @param willBePushList 将要推送的列表 + * @param dbData 数据库缓存 + * @returns 更新后的推送列表 + */ + excludeAlreadyPushed ( + willBePushList: WillBePushList, + dbData: AllDataType<'douyin'>['douyin'] + ): WillBePushList { + // 主要逻辑: + // 遍历推送列表中的 awemeId。 + // 对每个 awemeId 的 group_id 逐一检查: + // 如果群组不存在于数据库中,直接保留。 + // 如果群组存在,进一步检查数据库中的缓存列表是否包含该 awemeId。 + // 更新 group_id 数组:移除已推送的群组。 + // 如果 group_id 为空,则删除该 awemeId。 + + // 遍历推送列表中的每一个作品 + for (const awemeId in willBePushList) { + const pushItem = willBePushList[awemeId] + const filteredGroupIds: string[] = [] + + for (const groupId of pushItem.group_id) { + const groupData = dbData[groupId] + + // 如果 dbData 是空或者没有对应的 groupId 数据,直接保留该群组 + if (!groupData) { + filteredGroupIds.push(groupId) + continue + } + + let shouldPush = false + + // 获取与 pushItem.sec_uid 对应的 cachedData + const cachedData = groupData[pushItem.sec_uid] + // 如果找不到对应的 sec_uid 数据,直接保留该群组 + if (!cachedData) { + filteredGroupIds.push(groupId) + continue + } + + // 如果是普通动态,检查 aweme_id 是否已缓存 + if (cachedData.aweme_idlist.includes(awemeId)) { + shouldPush = true + } + + // 如果是直播动态,只推送开播 + if (pushItem.living === true && cachedData.living === false) { + shouldPush = false + } else shouldPush = true + + if (!shouldPush) { + filteredGroupIds.push(groupId) + } + } + + // 更新 group_id,如果为空则删除该作品 + if (filteredGroupIds.length > 0) { + pushItem.group_id = filteredGroupIds + } else { + delete willBePushList[awemeId] + } + } + + return willBePushList + } + + async checkremark () { + const config = Config.pushlist + const abclist: { sec_uid: string, group_id: any }[] = [] + if (Config.pushlist.douyin === null || Config.pushlist.douyin.length === 0) return true + for (let i = 0; i < Config.pushlist.douyin.length; i++) { + const remark = Config.pushlist.douyin[i].remark + const group_id = Config.pushlist.douyin[i].group_id + const sec_uid = Config.pushlist.douyin[i].sec_uid + const short_id = Config.pushlist.douyin[i].short_id + + if (!remark) { + abclist.push({ sec_uid, group_id }) + } + if (!short_id) { + abclist.push({ sec_uid, group_id }) + } + } + if (abclist.length > 0) { + for (let i = 0; i < abclist.length; i++) { + const resp = await getDouyinData('用户主页数据', Config.cookies.douyin, { sec_uid: abclist[i].sec_uid }) + const remark = resp.user.nickname + const matchingItemIndex = config.douyin.findIndex((item: { sec_uid: string }) => item.sec_uid === abclist[i].sec_uid) + if (matchingItemIndex !== -1) { + // 更新匹配的对象的 remark 和抖音号 + config.douyin[matchingItemIndex].remark = remark + config.douyin[matchingItemIndex].short_id = resp.user.unique_id === '' ? resp.user.unique_id : resp.user.unique_id + } + } + Config.modify('pushlist', 'douyin', config.douyin) + } + } + + + desc (video_obj: any, text: string) { + if (Array.isArray(video_obj) && video_obj.length > 0) { + const regex = new RegExp(video_obj.map((obj) => `#${obj.hashtag_name}`).join('|'), 'g') + // 使用正则表达式替换匹配到的话题标签 + text = text.replace(regex, (match) => { + // 对于每个匹配的话题标签,检查它是否在video_obj中存在 + const matchedObj = video_obj.find((obj) => `#${obj.hashtag_name}` === match) + if (matchedObj) { + return `${match}` + } + return match + }) + } + return text + } + + /** + * 强制推送 + * @param data 处理完成的推送列表 + */ + async forcepush (data: WillBePushList) { + if (!this.e.msg.includes('全部')) { + for (const detail in data) { + data[detail].group_id = [ ...[ `${this.e.group_id}:${this.e.self_id}` ] ] + } + } + await this.getdata(data) + } + + /** + * 设置或更新特定 sec_uid 的群组信息。 + * @param data 抖音的搜索结果数据。需要接口返回的原始数据 + * @returns 操作成功或失败的消息字符串。 + */ + async setting (data: any) { + const groupInfo = await this.e.bot.GetGroupInfo(this.e.group_id) + try { + let index = 0 + while (data.data[index].card_unique_name !== 'user') { + index++ + } + let msg + const sec_uid = data.data[index].user_list[0].user_info.sec_uid + const UserInfoData = await getDouyinData('用户主页数据', Config.cookies.douyin, { sec_uid }) + const config = Config.pushlist + const group_id = this.e.group_id + /** 处理抖音号 */ + let user_shortid + UserInfoData.user.unique_id === '' ? (user_shortid = UserInfoData.user.short_id) : (user_shortid = UserInfoData.user.unique_id) + + // 初始化 group_id 对应的数组 + if (!config.douyin) { + config.douyin = [] + } + + // 查找是否存在相同的 sec_uid + const existingItem = config.douyin.find((item: { sec_uid: string }) => item.sec_uid === sec_uid) + + if (existingItem) { + // 如果已经存在相同的 sec_uid,则检查是否存在相同的 group_id + let has = false + let groupIndexToRemove = -1 // 用于记录要删除的 group_id 对象的索引 + for (let index = 0; index < existingItem.group_id.length; index++) { + // 分割每个对象的 id 属性,并获取第一部分 + const item = existingItem.group_id[index] + const existingGroupId = item.split(':')[0] + + // 检查分割后的第一部分是否与提供的 group_id 相同 + if (existingGroupId === String(group_id)) { + has = true + groupIndexToRemove = index + break // 找到匹配项后退出循环 + } + } + if (has) { + // 如果存在相同的 group_id,则删除它 + existingItem.group_id.splice(groupIndexToRemove, 1) + logger.info(`\n删除成功!${UserInfoData.user.nickname}\n抖音号:${user_shortid}\nsec_uid${UserInfoData.user.sec_uid}`) + msg = `群:${groupInfo.group_name}(${group_id})\n删除成功!${UserInfoData.user.nickname}\n抖音号:${user_shortid}` + + // 如果删除后 group_id 数组为空,则删除整个属性 + if (existingItem.group_id.length === 0) { + const index = config.douyin.indexOf(existingItem) + config.douyin.splice(index, 1) + } + } else { + const status = await DB.FindGroup('douyin', `${group_id}:${this.e.self_id}`) + if (!status) { + await DB.CreateSheet('douyin', `${group_id}:${this.e.self_id}`, {}) + } + // 否则,将新的 group_id 添加到该 sec_uid 对应的数组中 + existingItem.group_id.push(`${group_id}:${this.e.self_id}`) + msg = `群:${groupInfo.group_name}(${group_id})\n添加成功!${UserInfoData.user.nickname}\n抖音号:${user_shortid}` + logger.info(`\n设置成功!${UserInfoData.user.nickname}\n抖音号:${user_shortid}\nsec_uid${UserInfoData.user.sec_uid}`) + } + } else { + const status = await DB.FindGroup('douyin', `${group_id}:${this.e.self_id}`) + if (!status) { + await DB.CreateSheet('douyin', `${group_id}:${this.e.self_id}`, {}) + } + // 如果不存在相同的 sec_uid,则新增一个属性 + config.douyin.push({ sec_uid, group_id: [ `${group_id}:${this.e.self_id}` ], remark: UserInfoData.user.nickname, short_id: user_shortid }) + msg = `群:${groupInfo.group_name}(${group_id})\n添加成功!${UserInfoData.user.nickname}\n抖音号:${user_shortid}` + } + + Config.modify('pushlist', 'douyin', config.douyin) + return msg + } catch (error) { + logger.error(error) + return '无法获取用户信息,请确认抖音号是否正确' + } + } +} + +/** + * 判断标题是否有屏蔽词或屏蔽标签 + * @param Detail_Data 作品详情数据 + * @returns + */ +const skipDynamic = (Detail_Data: PushItem['Detail_Data']): boolean => { + if (Detail_Data.living) return false + for (const banWord of Config.douyin.push.banWords) { + if (Detail_Data.item_title.includes(banWord)) { + logger.mark(`作品:${logger.green(Detail_Data.share_url)} 包含屏蔽词:「${logger.red(banWord)}」,跳过推送`) + return true + } + } + for (const banTag of Config.douyin.push.banTags) { + if (Detail_Data.caption.includes(banTag)) { + logger.mark(`作品:${logger.green(Detail_Data.share_url)} 包含屏蔽标签:「${logger.red(banTag)}」,跳过推送`) + return true + } + } + return false +} \ No newline at end of file diff --git a/src/platform/index.ts b/src/platform/index.ts new file mode 100644 index 0000000..5d28bbc --- /dev/null +++ b/src/platform/index.ts @@ -0,0 +1,3 @@ +export * from './douyin' +export * from './bilibili' +export * from './kuaishou' \ No newline at end of file diff --git a/src/platform/kuaishou/comments.ts b/src/platform/kuaishou/comments.ts new file mode 100644 index 0000000..3c9fdb1 --- /dev/null +++ b/src/platform/kuaishou/comments.ts @@ -0,0 +1,130 @@ +import { Config } from '@/module' + +/** + * + * @param {*} data 完整的评论数据 + * @param {*} emojidata 处理过后的emoji列表 + * @returns obj + */ +export async function kuaishouComments (data: any, emojidata: any) { + let jsonArray = [] + for (let i = 0; i < data.data.visionCommentList.rootComments.length; i++) { + const cid = data.data.visionCommentList.rootComments[i].commentId + const aweme_id = data.data.visionCommentList.rootComments[i].commentId + const nickname = data.data.visionCommentList.rootComments[i].authorName + const userimageurl = data.data.visionCommentList.rootComments[i].headurl + const text = data.data.visionCommentList.rootComments[i].content + const time = getRelativeTimeFromTimestamp(data.data.visionCommentList.rootComments[i].timestamp) + const digg_count = data.data.visionCommentList.rootComments[i].likedCount + const commentObj = { + id: i + 1, + cid, + aweme_id, + nickname, + userimageurl, + text, + digg_count, + create_time: time + } + jsonArray.push(commentObj) + } + + // 按照点赞量降序 + jsonArray.sort((a, b) => b.digg_count - a.digg_count) + // const indexLabelTypeOne = jsonArray.findIndex((comment) => comment.label_type === 1) + // if (indexLabelTypeOne !== -1) { + // const commentTypeOne = jsonArray.splice(indexLabelTypeOne, 1)[0] + // jsonArray.unshift(commentTypeOne) + // } + + jsonArray = br(jsonArray) + jsonArray = await handling_at(jsonArray) + // jsonArray.text = await search_text(jsonArray) + + for (let i = 0; i < jsonArray.length; i++) { + if (jsonArray[i].digg_count > 10000) { + jsonArray[i].digg_count = (jsonArray[i].digg_count / 10000).toFixed(1) + 'w' + } + } + + for (const item1 of jsonArray) { + // 遍历emojidata中的每个元素 + for (const item2 of emojidata) { + // 如果jsonArray中的text包含在emojidata中的name中 + if (item1.text.includes(item2.name)) { + // 检查是否存在中括号 + if (item1.text.includes('[') && item1.text.includes(']')) { + item1.text = item1.text.replace(/\[[^\]]*\]/g, ``).replace(/\\/g, '') + } else { + item1.text = `` + } + item1.text += ' ' + } + } + } + // 从数组前方开始保留 Config.kuaishou.kuaishounumcomments 条评论,自动移除数组末尾的评论 + return jsonArray.slice(0, Math.min(jsonArray.length, Config.kuaishou.kuaishounumcomments)) +} + +function getRelativeTimeFromTimestamp (timestamp: number) { + // 快手是毫秒(ms) + const timestampInSeconds = Math.floor(timestamp / 1000) + const now = Math.floor(Date.now() / 1000) + const differenceInSeconds = now - timestampInSeconds + + if (differenceInSeconds < 30) { + return '刚刚' + } else if (differenceInSeconds < 60) { + return differenceInSeconds + '秒前' + } else if (differenceInSeconds < 3600) { + return Math.floor(differenceInSeconds / 60) + '分钟前' + } else if (differenceInSeconds < 86400) { + return Math.floor(differenceInSeconds / 3600) + '小时前' + } else if (differenceInSeconds < 2592000) { + return Math.floor(differenceInSeconds / 86400) + '天前' + } else if (differenceInSeconds < 7776000) { + // 三个月的秒数 + return Math.floor(differenceInSeconds / 2592000) + '个月前' + } else { + const date = new Date(timestamp * 1000) // 将时间戳转换为毫秒 + const year = date.getFullYear() + const month = (date.getMonth() + 1).toString().padStart(2, '0') + const day = date.getDate().toString().padStart(2, '0') + return year + '-' + month + '-' + day + } +} + +/** + * 处理换行符 + * @param data 评论数据 + * @returns + */ +function br (data: any) { + for (let i = 0; i < data.length; i++) { + let text = data[i].text + + text = text.replace(/\n/g, '
') + data[i].text = text + } + return data +} + +/** + * 处理 @ + * @param data 评论数据 + * @returns + */ +async function handling_at (data: any) { + for (let i = 0; i < data.length; i++) { + let text = data[i].text + + // 匹配 @后面的字符,允许空格,直到 (\w+\) + text = text.replace(/(@[\S\s]+?)\(\w+\)/g, (match: any, p1: string) => { + // 将 @后面的名字替换为带有样式的 ,保留空格 + return `${p1.trim()}` + }) + + data[i].text = text + } + return data +} diff --git a/src/platform/kuaishou/getID.ts b/src/platform/kuaishou/getID.ts new file mode 100644 index 0000000..dc8184d --- /dev/null +++ b/src/platform/kuaishou/getID.ts @@ -0,0 +1,38 @@ +import { Networks } from '@/module' +import { logger } from 'node-karin' +import { KuaishouOptionsType } from '@ikenxuan/amagi' +import { KuaishouDataTypes } from '@/types' + +export interface ExtendedKuaishouOptionsType extends KuaishouOptionsType { + type: KuaishouDataTypes[keyof KuaishouDataTypes], + [x: string]: any +} + +/** + * + * @param url 分享链接 + * @param log 输出日志,默认true + * @returns + */ +export async function getKuaishouID (url: string, log = true) { + const longLink = await new Networks({ url }).getLongLink() + let result = {} as ExtendedKuaishouOptionsType + switch (true) { + case /photoId=(.*)/.test(longLink): { + const workid = longLink.match(/photoId=([^&]+)/) + result = { + type: 'one_work', + photoId: workid ? workid[1] : undefined + } + break + } + + default: { + logger.warn('无法获取作品ID') + break + } + } + + log && console.log(result) + return result +} diff --git a/src/platform/kuaishou/getdata.ts b/src/platform/kuaishou/getdata.ts new file mode 100644 index 0000000..85cbb16 --- /dev/null +++ b/src/platform/kuaishou/getdata.ts @@ -0,0 +1,35 @@ +import { Config } from '@/module' +import { KuaishouDataTypes } from '@/types' +import amagi, { KuaishouDataOptionsMap } from '@ikenxuan/amagi' + +export async function fetchKuaishouData ( + type: T, + opt?: any +) { + const client = new amagi({ kuaishou: Config.cookies.kuaishou }) + switch (type) { + case 'one_work': { + const VideoData = await client.getKuaishouData('单个视频作品数据', { + photoId: (opt as KuaishouDataOptionsMap['单个视频作品数据']).photoId + }) + const CommentsData = await client.getKuaishouData('评论数据', { + photoId: (opt as KuaishouDataOptionsMap['评论数据']).photoId + }) + const EmojiData = await client.getKuaishouData('Emoji数据') + return { VideoData, CommentsData, EmojiData } + } + case 'work_comments': { + const CommentsData = await client.getKuaishouData('评论数据', { + photoId: (opt as KuaishouDataOptionsMap['评论数据']).photoId + }) + return CommentsData + } + case 'emoji_list': { + const EmojiData = await client.getKuaishouData('Emoji数据') + return EmojiData + } + default: { + break + } + } +} \ No newline at end of file diff --git a/src/platform/kuaishou/index.ts b/src/platform/kuaishou/index.ts new file mode 100644 index 0000000..dc1e160 --- /dev/null +++ b/src/platform/kuaishou/index.ts @@ -0,0 +1,4 @@ +export * from './comments' +export * from './getdata' +export * from './getID' +export * from './kuaishou' diff --git a/src/platform/kuaishou/kuaishou.ts b/src/platform/kuaishou/kuaishou.ts new file mode 100644 index 0000000..b5a7b7b --- /dev/null +++ b/src/platform/kuaishou/kuaishou.ts @@ -0,0 +1,43 @@ +import { Base, Config, Render, Networks } from '@/module' +import { kuaishouComments } from '@/platform/kuaishou' +import { KarinMessage } from 'node-karin' +import { KuaishouDataTypes, ExtendedKuaishouOptionsType } from '@/types' + +export class Kuaishou extends Base { + e: KarinMessage + type: KuaishouDataTypes[keyof KuaishouDataTypes] + is_mp4: any + constructor (e: KarinMessage, iddata: ExtendedKuaishouOptionsType) { + super(e) + this.e = e + this.type = iddata?.type + } + + async RESOURCES (data: any) { + if (data.VideoData.data.visionVideoDetail.status !== 1) { + await this.e.reply('不支持解析的视频') + return true + } + Config.kuaishou.kuaishoutip && await this.e.reply('检测到快手链接,开始解析') + const video_url = data.VideoData.data.visionVideoDetail.photo.photoUrl + const transformedData = Object.entries(data.EmojiData.data.visionBaseEmoticons.iconUrls).map(([ name, path ]) => { + return { name, url: `https:${path}` } + }) + const CommentsData = await kuaishouComments(data.CommentsData, transformedData) + const fileHeaders = await new Networks({ url: video_url, headers: this.headers }).getHeaders() + const fileSizeContent = fileHeaders['content-range']?.match(/\/(\d+)/) ? parseInt(fileHeaders['content-range']?.match(/\/(\d+)/)[1], 10) : 0 + const fileSizeInMB = (fileSizeContent / (1024 * 1024)).toFixed(2) + const img = await Render('kuaishou/comment', { + Type: '视频', + viewCount: data.VideoData.data.visionVideoDetail.photo.viewCount, + CommentsData, + CommentLength: String(CommentsData?.length ? CommentsData.length : 0), + share_url: video_url, + VideoSize: fileSizeInMB, + likeCount: data.VideoData.data.visionVideoDetail.photo.likeCount + }) + await this.e.reply(img) + await this.DownLoadVideo({ video_url, title: Config.app.rmmp4 ? 'tmp_' + Date.now() : data.VideoData.data.visionVideoDetail.photo.caption }) + return true + } +} diff --git a/src/types/config/app.ts b/src/types/config/app.ts new file mode 100644 index 0000000..c178f4c --- /dev/null +++ b/src/types/config/app.ts @@ -0,0 +1,26 @@ +/** 定义视频解析工具的配置接口 */ +export interface appConfig { + /** 默认解析,即识别最高优先级,修改后重启生效 */ + defaulttool: boolean + + /** 自定义优先级,「默认解析」关闭后才会生效。修改后重启生效 */ + priority: number + + /** 发送合并转发消息,可能多用于抖音解析 */ + sendforwardmsg: boolean + + /** 缓存自动删除,非必要不修改! */ + rmmp4: boolean + + /** 渲染精度,可选值50~200,建议100。设置高精度会提高图片的精细度,过高可能会影响渲染与发送速度 */ + renderScale: number + + /** 本地部署一个视频解析API服务,接口范围为本插件用到的所有,默认端口4567 */ + APIServer: boolean + + /** API服务端口 */ + APIServerPort: number + + /** 渲染图片的主题色,0为自动,1为浅色,2为深色 */ + Theme: number +} diff --git a/src/types/config/bilibili.ts b/src/types/config/bilibili.ts new file mode 100644 index 0000000..9e57ec1 --- /dev/null +++ b/src/types/config/bilibili.ts @@ -0,0 +1,35 @@ +/** 定义B站解析工具的配置接口 */ +export interface bilibiliConfig { + /** B站解析开关,单独开关,受「总开关」影响 */ + switch: boolean + + /** B站解析提示,发送提示信息:“检测到B站链接,开始解析” */ + tip: boolean + + /** B站评论图,发送哔哩哔哩作品评论图 */ + comment: boolean + + /** B站评论数量,设置接口返回的评论数量,范围1 ~ x 条 */ + numcomment: number + + /** 解析视频是否优先保内容,true为优先保证上传将使用最低分辨率,false为优先保清晰度将使用最高分辨率 */ + videopriority: boolean + + /** B站推送相关配置 */ + push: { + /** 推送开关,开启后需重启;使用「#设置B站推送 + 用户UID」配置推送列表 */ + switch: boolean + /** 动态中有指定关键词时,不推送 */ + banWords: string[] + /** 动态中有指定标签时,不推送 */ + banTags: string[] + /** 推送权限,all为所有人,admin为管理员,master为主人,group.owner为群主,group.admin为群管理员 */ + permission: 'all' | 'admin' | 'master' | 'group.owner' | 'group.admin' + /** 推送表达式 */ + cron: string + /** 推送时是否一同解析该动态 */ + parsedynamic: boolean, + /** 是否打印日志 */ + log: boolean + } +} \ No newline at end of file diff --git a/src/types/config/cookies.ts b/src/types/config/cookies.ts new file mode 100644 index 0000000..62e4b15 --- /dev/null +++ b/src/types/config/cookies.ts @@ -0,0 +1,9 @@ +/** 定义不同平台用户ck的配置接口 */ +export interface cookiesConfig { + /** B站ck */ + bilibili: string + /** 抖音ck */ + douyin: string + /** 快手ck */ + kuaishou: string +} \ No newline at end of file diff --git a/src/types/config/douyin.ts b/src/types/config/douyin.ts new file mode 100644 index 0000000..92cc471 --- /dev/null +++ b/src/types/config/douyin.ts @@ -0,0 +1,35 @@ +/** 定义抖音解析工具的配置接口 */ +export interface douyinConfig { + /** 抖音解析开关,单独开关,受「总开关」影响 */ + switch: boolean + + /** 抖音解析提示,发送提示信息:“检测到抖音链接,开始解析” */ + tip: boolean + + /** 抖音评论解析,发送抖音作品评论图 */ + comment: boolean + + /** 抖音评论数量,范围1 ~ x 条 */ + numcomment: number + + /**图集BGM是否使用高清语音发送,高清语音「ios/PC」系统均无法播放,自行衡量开关(仅icqq) */ + sendHDrecord: boolean + + /** 抖音推送相关配置 */ + push: { + /** 推送开关,开启后需重启;使用「#设置抖音推送 + 抖音号」配置推送列表 */ + switch: boolean + /** 作品中有指定关键词时,不推送 */ + banWords: string[] + /** 作品中有指定标签时,不推送 */ + banTags: string[] + /** 推送权限,all为所有人,admin为管理员,master为主人,group.owner为群主,group.admin为群管理员 */ + permission: 'all' | 'admin' | 'master' | 'group.owner' | 'group.admin' + /** 推送表达式 */ + cron: string + /** 推送时是否一同解析该作品 */ + parsedynamic: boolean, + /** 是否打印日志 */ + log: boolean + } +} \ No newline at end of file diff --git a/src/types/config/index.ts b/src/types/config/index.ts new file mode 100644 index 0000000..5b6385c --- /dev/null +++ b/src/types/config/index.ts @@ -0,0 +1,17 @@ +import { appConfig } from './app' +import { bilibiliConfig } from './bilibili' +import { cookiesConfig } from './cookies' +import { pushlistConfig } from './pushlist' +import { douyinConfig } from './douyin' +import { uploadConfig } from './upload' +import { kuaishouConfig } from './kuaishou' + +export interface ConfigType { + app: appConfig, + bilibili: bilibiliConfig, + douyin: douyinConfig + cookies: cookiesConfig, + pushlist: pushlistConfig, + upload: uploadConfig, + kuaishou: kuaishouConfig +} \ No newline at end of file diff --git a/src/types/config/kuaishou.ts b/src/types/config/kuaishou.ts new file mode 100644 index 0000000..ecaee95 --- /dev/null +++ b/src/types/config/kuaishou.ts @@ -0,0 +1,11 @@ +export interface kuaishouConfig { + [key: string]: any + /** 快手解析开关,单独开关,受「总开关」影响 */ + switch: boolean + + /** 快手解析提示,发送提示信息:“检测到快手链接,开始解析” */ + tip: boolean + + /** 快手评论数量,范围1~30条 */ + numcomment: number +} \ No newline at end of file diff --git a/src/types/config/pushlist.ts b/src/types/config/pushlist.ts new file mode 100644 index 0000000..5be7639 --- /dev/null +++ b/src/types/config/pushlist.ts @@ -0,0 +1,30 @@ +/** 定义推送列表项的接口 */ +export interface douyinPushItem { + /** sec_uid,与short_id二选一 */ + sec_uid: string + /** 抖音号,与sec_uid二选一 */ + short_id: string + /** 推送群号和机器人账号,多个则使用逗号隔开,必填。如:群号1:机器人账号1 */ + group_id: string[] + /** 博主或UP主的名字信息,可不填 */ + remark: string +} + +/** 定义推送列表项的接口 */ +export interface bilibiliPushItem { + /** B站用户的UID,必填 */ + host_mid: string + /** 推送群号和机器人账号,多个则使用逗号隔开,必填。如:群号1:机器人账号1 */ + group_id: string[] + /** 博主或UP主的名字信息,可不填 */ + remark: string +} + +/** 定义抖音和B站推送列表的接口 */ +export interface pushlistConfig { + [key: string]: any + /** 抖音推送列表的接口 */ + douyin: douyinPushItem[] + /** B站推送列表的接口 */ + bilibili: bilibiliPushItem[] +} \ No newline at end of file diff --git a/src/types/config/upload.ts b/src/types/config/upload.ts new file mode 100644 index 0000000..b2283a1 --- /dev/null +++ b/src/types/config/upload.ts @@ -0,0 +1,27 @@ +export interface uploadConfig { + [key: string]: any + + /** 发送视频经本插件转换为base64格式后再发送,适合Karin与机器人不在同一网络环境下开启 */ + sendbase64: boolean + + /** 视频文件上传限制,开启后会根据解析的视频文件大小判断是否需要上传(B站番剧无影响) */ + usefilelimit: boolean + + /** 视频文件大小限制(填数字),视频文件大于该数值则不会上传 单位: MB,「usefilelimit」开启后才会生效(B站番剧无影响) */ + filelimit: number + + /** 压缩视频,开启后会将视频文件压缩后再上传,适合上传大文件 */ + compress: boolean + + /** 压缩视频触发阈值,单位:MB。当文件大小超过该值时,才会压缩视频,「compress」开启后才会生效 */ + compresstrigger: number + + /** 压缩后的视频大小,单位:MB。若下载的视频大于该值,则会由本插件进行压缩至该值(±10 %),「compress」开启后才会生效 */ + compressvalue: number + + /** 使用群文件上传,开启后会将视频文件上传到群文件中 */ + usegroupfile: boolean + + /** 群文件上传阈值,当文件大小超过该值时将使用群文件上传,单位:MB,「usegroupfile」开启后才会生效 */ + groupfilevalue: number +} \ No newline at end of file diff --git a/src/types/datatypes.ts b/src/types/datatypes.ts new file mode 100644 index 0000000..1f5921e --- /dev/null +++ b/src/types/datatypes.ts @@ -0,0 +1,42 @@ +export interface BilibiliDataTypes { + one_video: 'one_video' + nock_video: 'nock_video' + video_playurl: 'video_playurl' + work_comments: 'work_comments' + bangumi_video_info: 'bangumi_video_info' + bangumi_video_playurl: 'bangumi_video_playurl' + user_dynamic: 'user_dynamic' + dynamic_info: 'dynamic_info' + dynamic_card: 'dynamic_card' + user_profile: 'user_profile' + live_room_detail: 'live_room_detail' + liveroom_def: 'liveroom_def' + emoji_list: 'emoji_list' + new_login_qrcode: 'new_login_qrcode' + check_qrcode: 'check_qrcode' + login_basic_info: 'login_basic_info' + undefined: 'undefined' +} + +export interface DouyinDataTypes { + /** 单个视频 */ + one_work: 'one_work' + work_comments: 'work_comments' + user_mix_videos: 'user_mix_videos' + user_dynamic: 'user_dynamic' + user_profile: 'user_profile' + live_room_detail: 'live_room_detail' + liveroom_def: 'liveroom_def' + emoji_list: 'emoji_list' + music_work: 'music_work' + suggest_words: 'suggest_words' + search_info: 'search_info' + undefined: 'undefined' +} + +export interface KuaishouDataTypes { + /** 单个视频 */ + one_work: 'one_work' + work_comments: 'work_comments' + emoji_list: 'emoji_list' +} \ No newline at end of file diff --git a/src/types/index.ts b/src/types/index.ts new file mode 100644 index 0000000..da1c4dc --- /dev/null +++ b/src/types/index.ts @@ -0,0 +1,4 @@ +export * from './config' +export * from './netrorks' +export { ExtendedDouyinOptionsType, ExtendedKuaishouOptionsType } from '@/platform' +export { BilibiliDataTypes, DouyinDataTypes, KuaishouDataTypes } from './datatypes' \ No newline at end of file diff --git a/src/types/netrorks/NetworksConfigType.ts b/src/types/netrorks/NetworksConfigType.ts new file mode 100644 index 0000000..cc9584a --- /dev/null +++ b/src/types/netrorks/NetworksConfigType.ts @@ -0,0 +1,39 @@ +import { ResponseType } from 'axios' +export type NetworksConfigType = { + /** + * 请求地址 + */ + url?: string + /** + * 请求方法 + */ + method?: string + /** + * 请求头 + */ + headers?: any + /** + * 返回数据类型,默认json + */ + type?: ResponseType + /** + * 请求体 + */ + body?: string + /** + * 超时时间,单位毫秒 + */ + timeout?: number + /** + * 默认跟随重定向到: 'follow',不跟随: manual + */ + redirect?: RequestRedirect + /** + * 文件保存路径 + */ + filepath?: string + /** + * 最大重试请求次数 + */ + maxRetries?: number +} diff --git a/src/types/netrorks/index.ts b/src/types/netrorks/index.ts new file mode 100644 index 0000000..f685074 --- /dev/null +++ b/src/types/netrorks/index.ts @@ -0,0 +1 @@ +export * from './NetworksConfigType' \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..7218f07 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,38 @@ +{ + "compilerOptions": { + "module": "ESNext", // 指定使用 ESNext 模块(ECMAScript 2015+) + "target": "ESNext", // 指定编译目标为 ESNext 版本 + "esModuleInterop": true, // 启用 ES6 模块互操作性,允许默认导入命名导出 + "moduleResolution": "Node", // 设置模块解析策略为 Node.js + "outDir": "./lib", // 指定输出目录 + "resolveJsonModule": true, // 允许导入 JSON 文件 + "allowSyntheticDefaultImports": true, // 允许默认导入从没有默认导出的模块 + "baseUrl": ".", // 指定基础目录,用于解析模块路径 + "paths": { // 指定路径映射 + "@/*": [ + "./src/*", // 映射 '@/' 前缀到 'src/' 目录下的文件 + ], + }, + "rootDir": "./src", // 指定源代码根目录 + "declaration": true, // 生成相应的 '.d.ts' 声明文件 + "noImplicitAny": true, // 禁止隐式 'any' 类型 + "strict": true, // 启用所有严格类型检查选项 + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true, + "removeComments": false, /* 删除注释 */ + "preserveWatchOutput": true, /* 保留 watch 输出 */ + "pretty": true, + "inlineSourceMap": true, /* 将源码映射文件内联到输出文件中 */ + "alwaysStrict": true, + "types": [ + "node" + ] + }, + "tsc-alias": { // tsc-alias 插件的配置 + "resolveFullPaths": true, // 解析完整路径 + "resolveFullExtension": ".js" // 指定解析的文件扩展名 + }, + "include": [ // 指定编译器应该包含的文件或目录 + "src/**/*" // 包括 'src' 目录下的所有文件 + ], +} \ No newline at end of file