华为云用户手册
-
系统表 表5 系统表 变更类型 序号 名称 变更描述 新增 1 gs_blocklist_query 新增系统表用于保存黑名单语句和异常规则触发信息。 2 pg_except_rule 新增pg_except_rule系统表,用于存储当前集群所创建的异常规则信息,包括规则名称,具体规则阈值,以及规则触发的action。 修改 3 pg_redaction_policy,pg_redaction_column 新增inherited列,说明策略是否由用户手动创建
-
解释说明 现在配置 可直接在购买页面进行配置,跨网段访问配置当前最多可支持配置30个源端网段, 源端网段之间不能重复。 创建后配置 跨网段访问配置当前最多可支持配置30个源端网段, 源端网段之间不能重复。 1. 登录文档数据库服务。 2. 在“实例管理”页面,选择指定的数据库实例,单击实例名称,进入“基本信息”页面。 3. 在左侧导航树,单击“连接管理”。 4. 在“内网连接”页签下,单击“跨网段访问配置”右侧的“立即开通”,设置对应的源端网段信息。 5. 开通成功后,“跨网段访问配置”的状态变更为“已开通”。 若您需要更改源端网段配置,可以单击“跨网段访问配置”右侧的“立即修改”。 源端E CS 连接实例的前提是与实例节点网络通信正常,如果网络不通,可以参考对等连接进行相关配置。
-
约束与限制 使用共享VPC的CCE集群不支持开启“网络互通”功能。 使用CCE集群中的Bursting插件对接CCI 2.0服务,支持配置独享型ELB的Ingress和Service。Bursting插件1.5.5以下版本不支持配置ELB类型的Service。 当前网络互通能力依赖sidecar容器的启动,如需使用以下功能,插件升级到1.5.28及以上版本: 业务容器需要使用postStart功能。 在初始化容器中使用网络互通能力,需要开启初始化容器网络互通开关。 开启网络互通能力、开启初始化容器网络互通开关等操作需等待相关组件就绪,再下发负载,否则会导致功能异常。 跨CCE和CCI实例Service网络互通只支持集群内访问(ClusterIP)类型。不支持在init-container中访问CCE侧ClusterIP service。 跨CCE和CCI实例,在对接LoadBalancer类型的Service或Ingress时: 禁止指定健康检查端口,在CCE集群下,由于CCI的容器与CCE的容器在ELB注册的后端使用端口不一致,指定健康检查端口会导致部分后端健康检查异常。 跨集群使用Service对接同一个ELB的监听器时,需确认健康检查方式,避免服务访问异常。 跨CCE和CCI实例,在对接共享型LoadBalancer类型的Service时,需要放通node安全组下100.125.0.0/16网段的容器端口。
-
初始化容器网络互通开关配置 初始化容器网络互通开关默认关闭,若要使用,请在开启网络互通功能开关的前提下,根据以下操作进行配置。 登录CCE控制台。 选择CCE集群,单击进入CCE集群总览页面。 在导航栏左侧单击“插件中心”,进入插件中心首页。 选择“CCE 突发弹性引擎 (对接 CCI)”插件,单击“编辑”。 图3 CCE 突发弹性引擎 (对接 CCI)插件 在“网络互通(可选)”开启的条件下,单击“编辑YAML”。 图4 编辑插件 将“set_proxy_as_first_initcontainer”配置为true。 图5 修改参数 在“CCE 突发弹性引擎 (对接 CCI)”插件的实例列表中查看实例名称为“bursting-cceaddon-virtual-kubelet-virtual-kubelet-xxx”、“cceaddon-virtual-kubelet-virtual-kubelet-xxx”状态显示为“运行中”,表示重新部署完毕,该功能可正常运行。 图6 查看插件部署状态
-
CCE集群pod与CCI集群中pod通过service互通的使用指导 安装插件,勾选”网络互通“功能。 安装成功后租户账号下会自动创建负载均衡器,可以通过网络控制台进行查看。 创建弹性CCI侧pod,并配置service发布。 为了方便验证,镜像选择暴露容器80端口的nginx。 为工作负载配置service。推荐自动创建新的负载均衡器,以避免和插件自动创建的elb产生冲突。 通过CCE集群控制台,获取该负载的访问方式。 创建CCE侧pod,并配置service发布。方法请参考步骤2,不选择弹性CCI标签。 验证网络互访。 创建弹性CCI的工作负载,镜像选择含有curl命令的镜像,如centos。 通过CCI侧进入该容器,执行图中命令,观测CCI访问CCE service网络打通。 图1 访问CCE pod的service 同理创建CCE侧pod,镜像选择含有curl命令的镜像,如centos。执行相同的命令。观测CCE访问CCI service网络打通。 图2 访问CCI pod的service
-
购买套餐包 MaaS服务提供了按需套餐包,用户可以提前购买按需套餐包,从而获得灵活的、更高性价比的算力资源。当购买了套餐包,在使用公共资源池运行任务时,将会优先抵扣套餐包的配额,超出当前套餐包的额度或使用时段,将自动转为按需收费。 关于套餐包的约束限制、资源包抵扣顺序和套餐包余量预警请参见套餐包。 购买操作如下: 登录ModelArts管理控制台。 在左侧导航栏中,选择“ModelArts Studio”进入ModelArts Studio大模型即服务平台。 在ModelArts Studio首页单击“购买套餐包”,进入购买页面。 在“购买”页面,选择套餐包“规格”和“购买数量”,单击“立即购买”,确认订单详情,单击“去支付”,根据界面提示完成套餐包支付。 支付完成后,在ModelArts Studio大模型即服务平台创建任务时,选择套餐包规格的公共资源池,在运行任务时即可优先使用套餐包资源。
-
权重校验 创建模型时,开启权重校验后,平台会自动创建一个权重校验的任务。在模型版本详情页面的“任务记录”区域,可以查看权重校验任务。 图1 查看权重校验任务 当状态显示运行失败时,鼠标悬停在状态即可查看失败信息,根据失败信息处理问题。常见的权重校验失败信息及其处理建议请参见表4。 表4 权重校验常见的失败信息 失败信息 信息解释 处理建议 Unknown error, please contact the operation and maintenance personnel or check the log to locate the specific problem. 未知错误。 查看日志定位处理问题,或者联系技术支持。 Backend model template selection error (metadata error). 后台模型模板选择错误。 查看日志定位处理问题,或者联系技术支持。 Failed to read standard config.json in the background. 后台读取标准config.json失败。 查看日志定位处理问题,或者联系技术支持。 Failed to read generation_config.json. generation_config.json内容格式错误。 检查“generation_config.json”文件中的内容是否为json格式。 The value of do_sample is not set to true in generation_config.json, which is inconsistent with the configured sampling parameters such as temperature, top_p, top_k etc. 在generation_config.json中没有将do_sample的值设置为true,与配置的temperature、top_p、top_k等采样参数矛盾。 将“generation_config.json”文件中的“do_sample”的值设置为“true”。 Failed to read user config.json. config.json不存在或内容不符合json格式。 检查“config.json”文件是否存在,或者是内容是否为json格式。 The quantization_config field is missing in config.json, please check whether it is awq quantization weight. config.json中缺少quantization_config字段,请检查是否为awq量化权重。 检查权重和模型模板是否匹配。 There is an extra quantization_config field in config.json. Please check whether it is a non-quantized weight. config.json中多出quantization_config字段,请检查是否为非量化权重。 检查权重和模型模板是否匹配。 Key fields describing the model structure are missing from config.json, or their values are inconsistent with standard open source. config.json中缺少描述模型结构的关键字段,或其值与标准开源不一致。 检查“config.json”文件中的配置是否与模型官方一致。 Error loading tokenizer in transformers. transformers加载tokenizer出错。 检查词表文件是否正确。 Error loading weights in transformers. transformers加载权重出错。 检查权重文件是否正确。
-
编辑构建任务 通过项目入口方式访问CodeArts Build服务首页。 在编译构建任务列表搜索目标任务。 单击编译构建任务所在行,在下拉列表中选择“编辑”,进入“编辑任务”页面。 基本信息:可修改任务名称、代码源、代码仓、默认分支、任务描述等信息。 构建步骤:可修改构建步骤、步骤参数等信息。 参数设置:可配置执行任务时的自定义参数。 执行计划:可配置触发事件(持续集成)和定时执行。 修改历史:可查看构建任务的修改记录。单击“比较差异”,可查看构建任务相比于上一次执行时调整的内容。 权限管理:可配置不同角色的权限。 通知:可配置任务事件类型通知信息(包括任务构建成功、失败、删除、配置更新、被禁用)。 根据需要选择对应页签并进行编辑,单击“保存”完成修改。
-
删除构建任务 单击编译构建任务所在行,在下拉列表中选择“删除”。请根据实际情况确定是否删除对应构建任务。 删除的构建任务可在构建任务回收站中查看。在编译构建首页右上角单击“更多”,在下拉列表选择“构建任务回收站”。 页面中展示已删除的构建任务,根据需要可以完成以下相关操作。 操作 说明 修改任务保留时间 单击“任务保留时间”下拉列表,根据需要选择时长,可选天数范围为1~30天。 搜索任务 在搜索框中输入待搜索内容,单击搜索,即可在页面中查看搜索结果。 删除任务 在列表中勾选待删除的任务,单击“删除”,即可将所选任务从回收站中删除。 恢复任务 在列表中勾选待恢复的任务,单击“恢复”,即可将所选任务恢复到编译构建服务的任务列表中。 清空回收站 单击“清空回收站”,可删除回收站中所有任务。
-
CodeArts Build服务首页功能总览 CodeArts Build提供多种外观主题,本节以“无限+经典”主题为例介绍导航栏内容。 表2 首页功能总览说明 菜单项 说明 单击下拉列表可切换服务所属区域。 每个区域之间数据及资源不互通,请选择您已购买的区域进行使用。 单击下拉列表,可选择“编译构建”,进入编译构建服务首页。 该页面展示当前租户创建的所有项目的所有构建任务。 如果以项目入口访问CodeArts Build服务,单击此处的下拉列表,可切换至其它项目。 单击可在下拉列表中访问自定义模板、自定义构建环境、文件管理、构建任务回收站和构建资源池管理。 单击可执行构建任务。 单击可收藏构建任务。 单击可在下拉框中编辑、复制、禁用和删除构建任务。
-
代码化构建(单仓下载) 参考以下代码示例,修改在创建代码化构建使用的YAML文件中的PRE_BUILD部分代码信息。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 version: 2.0 # 必须是2.0 steps: PRE_BUILD: - checkout: name: checkout inputs: scm: codehub # 代码来源:仅支持Repo url: xxxxxxxxx # 拉取代码的ssh地址。 branch: ${codeBranch} # 任何时候都必填,支持参数化 commit: ${commitId} lfs: true submodule: true depth: 100 tag: ${tag} path: test 表2 单仓下载代码示例参数说明 参数 类型 说明 scm string 填写代码源:当前只支持Repo,如果yaml文件中没配置,则使用构建任务配置的代码仓信息。 默认值:codehub。 url string 填写拉取代码的代码仓ssh地址。 branch string 拉取的代码分支。 支持参数化,可使用${codeBranch}调用。 commit string 可选参数。指定commitId构建时,填写拉取的commitId。 支持参数化,可使用${commitId}调用。 tag string 可选参数。指定tag构建时,填写拉取的tag。 支持参数化,可使用${tag}调用。如果同时指定commitId和tag,优先执行commitId构建。 depth int 可选参数。浅克隆深度:当选择commitId构建时,depth必须大于等于commitId所在深度。 默认值:1。 submodule bool 可选参数。配置是否拉取子模块。 true:拉取。 false:不拉取。 默认值:false。 lfs bool 可选参数。配置是否开启git lfs。 true:开启。 false:不开启。 构建默认不拉取音视频、图像等大型文件,开启git lfs后,构建将会全量拉取文件。默认值:false。 path string 可选参数。clone的子路径:代码将会下载到子目录下。
-
图形化构建 可选择使用指定代码仓库Tag或CommitID构建,同时可选择开启子模块(submodules)自动更新与Git LFS。 预置“代码下载配置”步骤,参考表1配置参数。 表1 代码下载配置参数说明 参数 说明 使用指定代码仓库Tag或CommitID构建 配置执行构建任务时是否指定Tag构建或CommitID构建。 不指定:拉取全部代码进行构建。 指定Tag构建:仅拉取指定Tag的代码进行构建。执行构建任务时需在弹框中输入Tag。 Tag是指代码仓库中的标签。如果代码源选择的是Repo,关于如何创建Tag可参见标签管理。如果代码源使用的是第三方代码仓,需在第三方代码仓中创建标签。 指定CommitID构建:仅拉取指定CommitID的代码进行构建。执行构建任务时需在弹框中输入CommitID。 CommitID是指提交代码时生成的编号。以Repo代码仓为例,CommitID在代码仓库中显示如图1。 图1 CommitID 克隆深度 可选参数。 克隆深度是指距离最近一次提交的提交次数,该值越大,检出代码的深度越深。深度为正整数,推荐最大深度为25。 例如:克隆深度5就表示只克隆最新5次提交记录以及提交之后的最新内容,不克隆历史提交。 子模块(submodules)自动更新 子模块(submodule)是Git为管理仓库共用而衍生出的一个工具,通过子模块用户可以将公共仓库作为子目录包含到用户的仓库中,并能够双向同步该公共仓库的代码,借助子模块用户能将公共仓库隔离、复用,能随时拉取最新代码以及对它提交修复,能大大提高团队效率。更多详情请参考配置代码仓库的子模块设置。 开启:当代码仓库存在子模块时,系统在构建时会自动拉取子模块仓库的代码。 不开启:系统不会自动拉取子模块仓库的代码。 开启Git LFS 根据需要选择是否开启“Git LFS”,构建默认不拉取音视频、图像等大型文件,开启“Git LFS”后,构建将会全量拉取文件。
-
代码化构建(manifest多仓下载) 在安卓、鸿蒙等场景下,一次构建需要同时集成数百甚至上千个代码仓,多个代码仓的集成下载效率至关重要。 编译构建集成Repo下载工具,用户只需进行简单配置即可实现多个代码仓的联动集成。当前支持仅Repo代码仓。 参考以下代码示例,修改在创建代码化构建使用的YAML文件中的PRE_BUILD部分代码信息。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 version: 2.0 # 必须是2.0 steps: PRE_BUILD: - manifest_checkout: name: "manifest" inputs: manifest_url: "https://example.example.example.example.example.com/xx/manifest.git" manifest_branch: "master" manifest_file: "default.xml" path: "dir/dir02" repo_url: "https://example.example.example.example.example.com/xx/git-repo.git" repo_branch: "master" username: "someone" password: "${PASSWD}" 表3 manifest多仓下载代码示例参数说明 参数 类型 说明 name string 可选参数。填写步骤名称。默认值为manifest_checkout。 manifest_url string 填写manifest仓地址,包含xml文件的仓库。 manifest_branch string 可选参数。填写manifest分支或revision。默认值为“HEAD”。 manifest_file string 可选参数。manifest文件路径。默认值为“default.xml”。 manifest_file中定义的多个仓库,必须为同一种代码源。 path string 可选参数。自定义manifest所有子仓下载路径,为工作目录的相对路径 路径不能以“/”开头,不能包含“.”。默认为工作目录。 repo_url string 可选参数。填写repo仓库地址。默认值为“https://gerrit.googlesource.com/git-repo”。 repo_url对应的repo仓库,需要有下载权限(仓库开源,或者仓库私有但配置了账号密码)。 repo_branch string 可选参数。填写repo仓库分支。默认值为“stable”。 username string 可选参数。填写下载仓库时使用的用户名,当下载非公开仓库时需填写。 password string 可选参数。填写下载仓库时使用的https密码,下载非公开仓库时需填写。 manifest_url与manifest_file必须为同一种代码源;如果为非公开仓库,username&password应该有下载权限。 以上非必填的参数,如果配置的值为空,则使用默认值。 建议在使用非公开仓库时,用户名密码通过构建的私密参数进行配置,详情参考配置构建任务参数。 该功能目前仅支持北京四区域使用,其余区域后续上线。
-
支持审计日志的操作 表1 云审计 服务支持CodeArts Build服务操作 操作名称 资源类型 事件名称 创建编译构建任务 BuildProjectService createJob 执行编译构建任务 BuildProjectService buildJob 删除编译构建任务 BuildProjectService deleteJob 更新编译构建任务 BuildProjectService updateJob 禁用编译构建任务 BuildProjectService disableJob 解除禁用编译构建任务 BuildProjectService enableJob 上传keystore文件 BuildProjectService uploadKeystore 更新keystore文件 BuildProjectService updateKeystore 删除keystore文件 BuildProjectService deleteKeystore 初始化EFS目录和存储配额 CloudBuildCache initEFSDirAndQuota 上传报告(包含单元测试和依赖分析) CloudBuildReport uploadReport 创建自定义模板 BuildProjectService createCustomTemplate 删除自定义模板 BuildProjectService deleteCustomTemplate 更新nextfs信息 nextfsInfo updateNextfsInfo 创建nextfs nextfsInfo createNextfsInfo 创建租户关联nextfs tenantNextfs createTenantNextfs 删除租户关联nextfs tenantNextfs deleteTenantNextfs 修改租户License信息 licenseInfo updateLicenseInfo 创建租户License licenseInfo createLicenseInfo 创建代码缓存信息 codeCacheInfo createCodeCacheInfo 删除代码缓存信息 codeCacheInfo deleteCodeCacheInfo 创建代码缓存使用记录 cacheHistoryInfo createCacheHistoryInfo 更新代码缓存使用信息 cacheHistoryInfo updateCacheHistoryInfo
-
高级选项 高级选项均为非必填选项,在构建过程中有工程无法执行需要特殊适配或优化性能时配置,若随意配置可能会导致构建失败。 表1 通用选项 参数 说明 示例 TB_GET_TRACE 构建结束后获取依赖json文件文件的开关。 1:开启。 0:关闭(默认)。 1 TB_NINJA_RULE_ALL 分割规则配置,target按数量比值分组。不设置时会自动配置合适值。 "1:2:3:4" TB_TARGETS_LIST_ALL 人工指定分发的target进行编译,每个英文逗号隔开一个worker的target。使用“*”分隔多个ninja工程的配置。不设置时会自动配置合适值。 "harmony_target_1 harmony_target_2,harmony_target_3 harmony_target_4" TB_HOOK_LOCK 对软链接也进行文件同步。若构建过程中发生软链接文件未同步导致的报错,需要开启此选项。 1:开启。 0:关闭(默认)。 1 TB_APPEND_PATH 构建时可向PATH环境变量中追加的参数。 1:开启。 0:关闭(默认)。 1 TB_SHUT_DOWN_SAME_TIME 所有worker都等待主节点执行完毕后再结束构建释放资源。 1:开启。 0:关闭(默认)。 1 TB_RSYNC_LOCK 构建加速的同时worker向构建执行机实时传输文件。开启后效率会进一步提升,但会存在概率性编译失败的情况。 1:开启。 0:关闭(默认)。 1 TB_MAKE_J 设置构建并发数。默认为worker核数。 16 TB_REFER_NINJA_FILE 如果存在串行执行一个一模一样的ninja工程时,可以使用此变量优化构建速度 1:开启。 0:关闭(默认)。 1 CCACHE_DIR 自定义编译缓存的本地目录。默认为/tmp/xcache目录。 ${WORKSPACE}/TBcache TB_CACHE_SIZE 使用自定义执行机自定义编译缓存的本地目录存储大小上限。默认为100G。 100G CCACHE_MAXSIZE 自定义编译缓存的本地目录存储大小上限。默认为20G。 100G TB_ONE_WORKER 使用自定义执行机且只使用一个worker进行构建时可以使用此变量打开编译缓存开关。 1:开启。 0:关闭(默认)。 1 TB_CLIENT 该变量在主节点client自动设置,可以通过比较此变量是否等于1判断该节点是否为主节点client。 不需要配置 TB_NET_INTERFACE_NAME 指定获取IP时读取的网卡名,在多网卡情况下获取IP使用,默认为空,多个网卡名通过逗号分隔,配置在前的网卡名有更高的优先级。 eth0,eth1 TB_ACC_PREPARE 使用自定义执行机时必须配置此变量。 false TB_OUTPUT_PATH 自定义产物目录路径,默认设置为out。 output TB_SELF_ENV worker编译target时使用本地环境变量,不使用client传递的变量。 1:开启。 0:关闭(默认)。 1 TB_RSYNC_FLAG 增加同步文件时rsync命令的参数。 --ignore-existing -a TBUILD_PLUGIN_PKG_TYPE 指定使用的TBuild版本为snapshot版本还是release版本。不设置时默认使用最新的release版本。 release TBUILD_PLUGIN_PKG_VERSION 指定使用的TBuild版本号。不设置时默认使用最新的release版本。 1.0.1 表2 依赖解析模式 参数项 说明 示例 TB_CPU_NUM 分发任务时,所有机器都以此值计算可分配任务量。默认为空。 16 TB_LOCAL_CONTAIN_PATTERN 根据关键字指定必须分发在client编译的target,此target生成的产物不需要文件传输回主节点。默认为空。 file_contexts.bin,com.android.vndk.current.,out/soong/host/linux-x86/bin/fileslist TB_LOCAL_NOT_CONTAIN_PATTERN 根据关键字指定必须不分发在client编译的target。默认为空。 Bluetooth.so TB_CAPACITY_ALL 单台机器可分配的任务权值上限,单位是分钟,以json文件的时间为参考,此时间为单纯的构建时间,不包括cpu空闲时间,实际构建时间会大于此值。可以指定为小数。超过此上限的target会分发至client,在所有agent编译完成后在本地最后编译。不设置时会根据json文件自动设置。 5.5 TB_TASK_SIZE_ALL 人工指定分割多少份target,可以大于机器数量,建议设置的值略大于机器数量,不建议少于机器数量,会导致机器浪费。不设置时会根据机器数量自动设置。 8 表3 ninja文件缓存选项 参数项 说明 示例 TB_CACHE_SERVER_IP ninja文件缓存开关,和TB_CACHE_ARCHIVE_PATH同时设置时缓存才会开启。 非空值:开启,如果开启了远端缓存,该值视为远端服务器IP。 空值:关闭(默认)。 172.example.example.example TB_CACHE_ARCHIVE_PATH ninja文件缓存本地归档目录,和TB_CACHE_SERVER_IP同时设置时缓存才会开启。 AOSP/ninja_cache TB_CACHE_RECACHE 本次构建会重新生成ninja文件缓存,不会命中历史缓存。 1:开启。 0:关闭(默认)。 1 TB_CACHE_REMOTE ninja文件缓存远端开关,命中时从远端获取缓存,生成缓存时也会归档至远端。 1:开启。 0:关闭(默认)。 1 TB_CACHE_LOCAL ninja文件缓存本地开关,命中时从本地获取缓存,优先级高于远端缓存,生成缓存时也会归档至本地。 1:开启(默认)。 0:关闭。 1 TB_CACHE_DEPENDS 增加指定的文件作为缓存命中的依赖文件,如果该文件产生变化,会使缓存不命中。默认为空。多个文件使用逗号分隔。 build.sh,test.sh TB_CACHE_VERSION 为缓存增加指定的版本号,如果版本号产生变化,会使缓存不命中。默认为空。 1.0 TB_CACHE_EXCLUDE_KEY 缓存时过滤掉带关键字的文件,多个关键字用逗号分隔,默认设置为".glob",可以用空字符串重置。 .so,.glob TB_NINJA_FILE_CACHE 设置被缓存的目录,多个目录使用逗号分隔,默认设置为"out"。 out,test TB_CACHE_NINJA_CACHE_SIZE ninja文件缓存本地归档目录空间上限,超过此上限会根据算法自动清理历史缓存。默认设置为50,单位是G。 100 TB_SKIP_TARGET 归档ninja文件缓存时跳过此target,即使命中ninja文件缓存此target也会重新编译。 update-api
-
通过BuildFlow组织加速构建 构建加速需要结合多任务代码化构建使用,可参考多任务YAML文件结构详解中的部分配置。 BuildFlow配置方法如下样例: 1 2 3 4 5 6 7 buildflow: jobs_resolver: # 必配 provider: tbuild_jobs_resolver # 必配,固定值 jobs: # 需要进行编排的任务集 - job: distribute_job # 构建任务名称 build_ref: accelerate.yml # 指定构建加速脚本,脚本名称可自定义 worker: 2 # 指定为16vCPU的倍数,例如2就代表使用了32vCPU进行加速 参数说明如下: jobs_resolver:buildflow的子节点,必配。 provider:此处使用的provider为jobs_resolver的高级选项,意为指定job对应的任务解析器,取值固定为tbuild_jobs_resolver。 jobs:需要进行编排的任务集,此处的jobs作为jobs_resolver的子节点,与普通构建场景buildflow下的jobs子节点有所区别,配置时请注意缩进。 job:构建任务名称,可自定义。 build_ref:该构建任务在构建过程中需要运行的加速构建脚本。 worker:指定为16vCPU的倍数,例如2就代表使用了32vCPU进行加速。
-
steps参数项详解 steps配置项定义了构建过程,示例中包含如下两个步骤:PRE_BUILD(构建前准备)和BUILD(编译构建)。 PRE_BUILD 此阶段主要做代码下载,参数解释如下: 1 2 3 4 5 6 7 8 9 PRE_BUILD: - checkout: # 代码下载步骤 name: "代码下载" # 步骤名称,可自定义 inputs: # 步骤参数 scm: "codehub " # 代码来源:只支持Repo url: "git@codehub.devcloud.example.example.com:test/python3.git" # 拉取代码的ssh地址。 branch: "master" # 拉取的代码分支。 lfs: false # 选择是否开启Git LFS,false关闭、true开启。构建默认不拉取音视频、图像等大型文件,开启Git LFS后,构建将会全量拉取文件。 submodule: false # false关闭、true开启。开启该功能,系统在构建时会自动拉取子模块仓库的代码。 BUILD 此阶段主要定义了download_artifact插件、tbuild_execute插件和upload_artifact插件,参数解释如下: 1 2 3 4 5 6 7 8 9 10 11 12 BUILD: - tbuild_execute: # 鸿蒙加速场景下固定配置,定义tbuild_execute插件 inputs: # 固定配置 image: "swr.xx-xx-x.myxxcloud.com/buildimage:ohos-x86-v1" # 构建使用的镜像,参考加速前准备章节制作docker镜像。 command: "mv /example/TB1.json OpenHarmony/TB1.json && cd OpenHarmony && BuildAccelerateL3 -HarmonyOS ./build.sh --product-name rk3568 --build-target make_all --ccache false -v && post_build.sh" # command为构建使用的命令,此处将构建分解为两个段落,准备和执行 # mv /example/TB1.json OpenHarmony/TB1.json是依赖解析模式独有的准备步骤,文件名字固定,如果工程中存在多个ninja构建,则文件的下标依次增加,例如TBTrace_target_2.json和TB2.json,以此类推。 # 准备阶段:使用加速前准备章节中获取的./build.sh --product-name rk3568 --build-target make_all --build-only-gn --ccache false -v # 构建阶段:依照加速级别调用加速命令(BuildAccelerateL1 BuildAccelerateL3)的鸿蒙模式(-HarmonyOS)直接执行构建,此处样例取值BuildAccelerateL3 -HarmonyOS # 后处理阶段:以实际工程需要为准,该示例仅使用post_build.sh # 依赖解析模式实际命令最终拼接为"mv /example/TB1.json OpenHarmony/TB1.json && cd OpenHarmony && BuildAccelerateL3 -HarmonyOS ./build.sh --product-name rk3568 --build-target make_all --ccache false -v && post_build.sh" # 产物分类模式实际命令最终拼接为"cd OpenHarmony && BuildAccelerateL3 -HarmonyOS ./build.sh --product-name rk3568 --build-target make_all --ccache false -v && post_build.sh" build.sh样例: 1 2 3 source build/envsetup.sh lunch aosp_x86_64-eng make -j64
-
params参数项详解 params配置项指定了一些使用鸿蒙构建加速必配的参数,参数说明如下: 参数 说明 TB_RSYNC 需要同步的产物文件目录,“:”前为根目录,“:”后为若干个以“,”分隔的子目录,子目录前带“!”代表此目录不同步,不带“!”代表此目录的所有文件会被同步,带“!”的优先级更高。在鸿蒙构建场景下,需要拼接为“${WORKSPACE}/实际目录”。 示例如下: "${WORKSPACE}/OpenHarmony/:out/rk3568,out/kernel,!out/rk3568/exe.unstripped,!out/rk3568/lib.unstripped,!out/rk3568/innerkits,!out/rk3568/.ninja_,!out/rk3568/Makefile,!out/rk3568/NOTICE_FILES,!out/rk3568/clang_x64/exe.unstripped,!out/rk3568/clang_x64/lib.unstripped,!out/rk3568/mingw_x86_64/lib.unstripped,+out/rk3568/obj/base/security/selinux_adapter" TB_GET_ORI_TRACE 配置示例1:依赖解析模式必填。 依赖解析模式下获取当前工程的依赖json文件开关。 1:开启。 0:关闭(默认)。 默认值:1。 TB_BUILDTRACE_ALL 配置示例1:依赖解析模式必填。 依赖解析模式开关,不设置时默认使用配置示例2:产物分类模式。 1:开启。 不设置:关闭(默认为OpenHarmony/harmony.json)。 非“1”的其他字符串:开启,字符串视为json文件的自定义路径和名字。 TB_SEARCH_TARGETS_ALL 配置示例2:产物分类模式必填。 该值填写工程中汇总了各个模块的target,如鸿蒙的: parts_test.stamp 、generate_src_installed_info.stamp。一般这样的target的下一层直接依赖是工程中的多个小模块,如鸿蒙的ark模块、ace模块。这些对应的target在同一个工程里一般不会变化。 默认值:"obj/build/ohos/common/generate_src_installed_info.stamp"。
-
配置示例1:依赖解析模式 获取json文件。 在分支A编写BuildFlow配置中build_ref指定的accelerate.yml,示例如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 version: 2.0 params: - name: TB_GET_ORI_TRACE value: "1" steps: PRE_BUILD: - checkout: name: "checkout" inputs: scm: "codehub" url: "git@codehub.devcloud.example.example.com:example.git" branch: "master" lfs: false submodule: false BUILD: - tbuild_execute: inputs: image: "swr.example.example.com/buildimage:ohos-x86-v1" command: "cd OpenHarmony && BuildAccelerateL3 -HarmonyOS ./build.sh --product-name rk3568 --build-target make_all --ccache false -v && post_build.sh && mv out/TBTrace_make_all_1.json /example/TB1.json" 执行分布式构建。 在分支B编写BuildFlow配置中build_ref指定的accelerate.yml,示例如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 version: 2.0 params: - name: TB_BUILDTRACE_ALL value: "1" - name: TB_RSYNC value: ${WORKSPACE}/OpenHarmony/:out/rk3568 steps: PRE_BUILD: - checkout: name: "checkout" inputs: scm: "codehub" url: "git@codehub.devcloud.example.example.com:example.git" branch: "master" lfs: false submodule: false BUILD: - tbuild_execute: inputs: image: "swr.example.example.com/buildimage:ohos-x86-v1" command: "mv /example/TB1.json OpenHarmony/TB1.json && cd OpenHarmony && BuildAccelerateL3 -HarmonyOS ./build.sh --product-name rk3568 --build-target make_all --ccache false -v && post_build.sh"
-
配置示例2:产物分类模式 在分支C编写BuildFlow配置中build_ref指定的accelerate.yml,示例如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 version: 2.0 params: - name: TB_RSYNC value: ${WORKSPACE}/OpenHarmony/:out/rk3568 - name: TB_SEARCH_TARGETS_ALL value: "obj/build/ohos/common/generate_src_installed_info.stamp" steps: PRE_BUILD: - checkout: name: "checkout" inputs: scm: "codehub" url: "git@codehub.devcloud.example.example.com:example.git" branch: "master" lfs: false submodule: false BUILD: - tbuild_execute: inputs: image: "swr.example.example.com/buildimage:ohos-x86-v1" command: "cd OpenHarmony && BuildAccelerateL3 -HarmonyOS ./build.sh --product-name rk3568 --build-target make_all --ccache false -v && post_build.sh"
-
约束与限制 增量编译技术需结合L3级别加速使用。 使用鸿蒙构建加速能力需要购买配套构建加速包,购买方法请参考购买增值特性。 该功能目前仅支持“华北-北京四”区域、代码源为CodeArts Repo的C/C++语言构建工程的编译构建加速。 本章节配置仅支持鸿蒙L1、L3级别的加速。 构建过程中不允许直接覆盖LD_LIBRARY_PATH和LD_PRELOAD环境变量,建议通过追加的方式使用,例如: 1 "export LD_LIBRARY_PATH=new_path:${LD_LIBRARY_PATH}"
-
加速前准备 在一般的构建工程中,其构建过程大致分为构建前准备(工具链、代码仓)、构建依赖件准备(ninja文件生成)、编译构建、构建后操作(打包、检查等)。其中,构建加速介入编译构建阶段,对此前的构建过程中生成的构建依赖件进行解析,并执行编译。 在配置构建加速前,需做如下准备: 找到构建依赖件准备的节点,以OpenHarmony为例,一个形态的编译命令如下: 1 ./build.sh --product-name rk3568 --build-target make_all --build-target make_test --ccache false -v 准备好构建使用的docker镜像,基于该docker镜像制作新镜像:在dockerfile中增加“/opt/buildtools”目录供加速工具部署,并确保构建用户对“/opt/buildtools”目录有权限写入。参考命令如下: 1 RUN mkdir -p /opt/buildtools && chmod -R 777 /opt/buildtools
-
YAML文件配置方法 参考创建代码化构建使用的YAML文件,在env中配置如下示例代码。 1 2 3 4 5 6 7 8 9 10 11 12 params: # 构建参数,可在构建过程中引用 - name: CLOUD_BUILD_UPLOAD_FLAG # 参数为有值和为空两种状态,可控制跳过缓存上传至文件服务器 value: true - name: CLOUD_BUILD_REMOTE_CACHE # 参数为有值和为空两种状态,可控制会从其他执行机获取缓存 value: true env: cache: # 使用代码缓存 - type:code #必填,使用缓存开关 local_path:code # 必填,代码在构建执行机上存放的相对路径 command:dos2unix build.sh && sh build.sh # 必填 branch:master # 选填,分支名,可自定义,与url一起确定缓存标签 url:git@codehub.devcloud.example.example.com:test/python3.git # 选填,可自定义,与branch一起确定缓存标签
-
配置CMake构建加速(图形化构建) 通过项目入口方式访问CodeArts Build服务首页。 单击需要配置构建加速的构建任务名称。 单击页面右上角“编辑”按钮,进入构建任务的构建步骤配置页面。 按照如下说明配置“CMake构建”构建步骤。 “工具版本”选择“cmake3.16.5-gcc7.3.0”,“命令”中填写如下代码。 根据加速原理以及效果的不同,构建加速分为L1/L2/L3三种模式,请根据购买的加速规格使用加速命令,以下示例为开启L1模式加速。 cmake -G'Unix Makefiles'../&& BuildAccelerateL1 make -j8 //开启构建加速只需在make前添加加速命令:BuildAccelerateL1 //切换模式只需将BuildAccelerate后的L1替换为L2/L3。 //最大并发CPU核数,即make -j后面的数字,最大256。 图1 构建加速命令 加速命令只允许写在最外层,不允许通过shell脚本等调用。 同一次构建任务中禁止混用不同级别的加速命令,将无法保存与执行构建任务。 图2 构建加速错误命令示例 配置后单击“保存并执行”执行构建任务。
-
代码化构建 参考以下构建环境配置代码示例,修改在创建代码化构建使用的YAML文件中的env部分代码信息。 1 2 3 4 5 6 7 version: 2.0 # 必须是2.0,该版本号必填且唯一 env: # 定义构建环境信息。非必填,如果不填写,默认使用X86 resource: type:docker # 资源池类型:docker或custom,其中docker表示使用默认执行机,custom表示使用自定义执行机 arch:X86 # 构建环境主机类型:X86或ARM class:8U16G # 规格:2U8G、4U8G、8U16G、16U32G或16U64G,当type为custom时无需填写该参数 pool:Mydocker #资源池名称,当type为custom时需要填写该参数 参考以下BuildSpace代码示例,在创建代码化构建使用的YAML文件中添加以下代码信息。 可使用的环境为自定义执行机、构建并发包和构建加速包L3。 version: 2.0 buildspace: #表示使用BuildSpace fixed: true path: kk clean: true clean_exclude: - cache #排除的具体路径 - aa #排除的具体路径 - bb #排除的具体路径 表3 BuildSpace代码示例参数说明 参数 类型 说明 fixed string 可选参数。 在编译构建服务中,默认每一次构建都会使用一个空白的且随机的目录(比如/devcloud/ws/sMMM/workspace/j_X/)作为此次构建的根目录,这个根目录所代表的空间称为BuildSpace。 BuildSpace的路径默认是随机的,即使是同一个项目的不同构建任务的BuildSpace也会被随机分配。 但是在某些场景下固定一个BuildSpace的路径是有必要的,因此编译构建服务支持配置BuildSpace,以固定构建执行目录。 true:使用固定路径。 false:不使用固定路径。 默认值:false。 path string 可选参数。 当使用固定路径时,路径为:/devcloud/slavespace/usr1/+"${domainId}"+/。配置path参数,表示在前面的固定路径基础上拼接路径。 例如:“path”配置路径为“kk”,那么固定路径为:/devcloud/slavespace/usr1/+"${domainId}"+/kk。 clean string 可选参数。 true:需要清理固定路径。即路径是固定的,但是每次执行完会清理路径下的文件。 false:不清理固定路径。但是工作空间可存储的容量是有限的,当文件容量达到工作空间上限后,需要手动清理工作空间(clean配置为true即可)。 说明: 如果未配置清理固定路径,当文件容量达到工作空间上限后,会自动清理当前租户下的固定路径中所有文件。 工作空间指的是用户自定义的执行机的规格。 默认值:true。 clean_exclude string 可选参数。配置后表示使用路径清理,但是排除配置的路径。仅支持指定固定路径下的一级文件夹。
-
图形化构建 CodeArts Build预置了“构建环境配置”步骤,参考表2配置参数。 表2 构建环境配置参数说明 参数 说明 构建环境主机类型 X86服务器、鲲鹏(ARM)服务器。 说明: 在不同芯片架构上运行的软件,需要选择对应的环境主机。如软件最终在鲲鹏服务器上运行,则选择鲲鹏服务器。 执行主机 选择用来执行编译构建任务的计算资源。在编译构建服务中,该计算资源为虚拟机。执行主机包括内置执行机和自定义执行机。 内置执行机:编译构建服务自身提供的执行主机,用户无需配置即可开箱即用。执行机默认规格为2U8G。 自定义执行机:用户自行提供表1的计算资源,通过注册的方式托管到编译构建服务中,通过编译构建服务进行调度并执行构建任务。 可根据实际情况选择内置执行机或自定义执行机,自定义执行机为在资源池中添加的代理执行机,具体自定义操作可参考资源池管理。 宿主机目录与容器目录映射 配置自定义执行机的目录和容器的目录映射,配置映射后,可将自定义执行机中的依赖项等文件挂载到容器中执行构建。当执行主机选择自定义执行时需要配置。 例如:宿主机目录填写“/home”,容器目录填写“/opt”,就会把执行机本地“/home”目录下的内容,挂载到容器内的“/opt”目录下。 使用固定路径 (执行主机选择自定义执行机时需要配置) 在编译构建服务中,默认每一次构建都会使用一个空白的且随机的目录(比如/devcloud/ws/sMMM/workspace/j_X/)作为此次构建的根目录,这个根目录所代表的空间称为BuildSpace。 BuildSpace的路径默认是随机的,即使是同一个项目的不同构建任务的BuildSpace也会被随机分配。 但是在某些场景下固定一个BuildSpace的路径是有必要的,因此编译构建服务支持配置BuildSpace,以固定构建执行目录。 可选参数。将开关设置为开启状态,表示使用固定路径,否则不使用固定路径。 固定路径后缀 (执行主机选择自定义执行机时需要配置) 可选参数。 当使用固定路径时,路径为:/devcloud/slavespace/usr1/+"${domainId}"+/。配置path参数,表示在前面的固定路径基础上拼接路径。 例如:“path”配置路径为“kk”,那么固定路径为:/devcloud/slavespace/usr1/+"${domainId}"+/kk。 说明: “使用固定路径”开关设置为开启状态时需要配置。 执行后清理固定路径 (执行主机选择自定义执行机时需要配置) 开启:需要清理固定路径。即路径是固定的,但是每次执行完会清理路径下的文件。 关闭:不清理固定路径。但是工作空间有限的,当文件容量达到工作空间上限后,需要手动清理工作空间(开关设置为开启状态即可)。 说明: 工作空间指的是用户自定义的执行机的规格。 如果未配置清理固定路径,当文件容量达到工作空间上限后,会自动清理当前租户下的固定路径中所有文件。 “使用固定路径”开关设置为开启状态时需要配置。 清理路径白名单 (执行主机选择自定义执行机时需要配置) 可选参数。单击“添加路径”,可添加清理路径白名单。即表示使用路径清理,但是排除白名单路径。仅支持指定固定路径下的一级文件夹。 说明: “使用固定路径”开关设置为开启状态时需要配置。
-
CodeArts Build基本操作流程 图1 CodeArts Build基本操作流程 表1 CodeArts Build操作流程说明 流程 说明 开通CodeArts Build 为您介绍如何开通CodeArts Build和购买构建加速包以及并发包。 配置CodeArts Build项目级角色权限 为您介绍使用CodeArts Build前的项目级基础权限配置、访问CodeArts Build服务页面的方式以及CodeArts Build首页功能总览。 新建构建任务 为您介绍图形化新建构建任务和代码化新建构建任务的操作指导,以及如何配置构建任务的参数、执行计划、单任务角色权限和事件通知。 配置构建步骤 CodeArts Build内置了30+种构建工具,您可以根据实际使用情况选择使用的构建工具,每种工具分别为您介绍了图形化构建的配置指导和代码化构建的代码示例。 执行构建任务 构建任务可通过流水线触发或者定时任务触发执行,本节为您介绍在CodeArts Build服务页面执行单个构建任务。 针对C/C++语言构建任务的效率提升,可参考购买构建并发包和加速构建任务实现构建加速。 针对多构建任务的效率提升,可参考多任务YAML文件结构详解和购买构建并发包搭配实现构建加速。 查看构建任务 为您介绍如何查看构建任务信息以及构建任务的执行结果。
-
Android版本说明 SDK:用户项目构建compileSdkVersion版本。 Build Tools:用户项目构建所需buildToolsVersion版本。 两个版本可以在项目下的“build.gradle”文件或是项目的全局配置文件(用户自定义)中找到。 用户需要选择正确的compileSdkVersion版本和buildToolsVersion版本。 也支持Gradle的wrapper构建方式,如果提供的gradle版本没有满足您的要求,您也可以直接使用gradlew命令,使用wrapper去构建,会自动下载您所需要的gradle版本,构建命令例如:./gradlew clean build。
-
代码化构建 参考以下代码示例,修改在创建代码化构建使用的YAML文件中的BUILD部分代码信息。 Android构建代码示例如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 version: 2.0 # 必须是2.0 steps: BUILD: - android: inputs: gradle: 4.8 jdk: 1.8 ndk: 17 command: | cat ~/.gradle/init.gradle cat ~/.gradle/gradle.properties cat ~/.gradle/init_template.gradle rm -rf ~/.gradle/init.gradle rm -rf /home/build/.gradle/init.gradle # 使用CodeArts Build提供的gradle wrapper,充分利用缓存加速 cp /cache/android/wrapper/gradle-wrapper.jar ./gradle/wrapper/gradle-wrapper.jar # 构建未签名的APK /bin/bash ./gradlew assembleDebug -Dorg.gradle.daemon=false -d --stacktrace ignore_fail: true 表2 Android构建代码示例参数说明 参数名称 参数类型 参数说明 command string 填写Gradle执行命令。如果需要配置更多命令,可参考Gradle官网。 gradle string 根据用户实际开发环境的需要,选择对应的工具版本。 CodeArts Build支持的工具版本,可查看构建工具版本。若当前的工具版本不满足您的使用要求,您可以自定义构建环境。 jdk string 根据用户实际开发环境的需要,选择对应的工具版本。 CodeArts Build支持的工具版本,可查看构建工具版本。若当前的工具版本不满足您的使用要求,您可以自定义构建环境。 ndk string 根据用户实际开发环境的需要,选择对应的工具版本。 CodeArts Build支持的工具版本,可查看构建工具版本。若当前的工具版本不满足您的使用要求,您可以自定义构建环境。 ignore_fail string 用于控制当前步骤执行失败后是否继续执行下一个步骤。 true:是。 为空:否。 Android APK签名代码示例如下: 1 2 3 4 5 6 7 8 9 10 11 12 version: 2.0 # 必须是2.0 steps: BUILD: - android_sign: inputs: file_path: build/bin/*.apk keystore_file: androidapk.jks keystore_password: xxxxxx alias: keyalias key_password: xxxxxx apksigner_commond: --verbose ignore_fail: true 表3 Android APK签名代码示例参数说明 参数名称 参数类型 参数说明 file_path string Android构建后生成要签名的“.apk”文件位置。 支持正则表达式,如:可以使用“build/bin/*.apk”匹配构建出来的APK包。 keystore_file string Keystore文件名。文件的制作以及上传指导可参考生成Keystore签名文件并上传至文件管理。 keystore_password string 可选参数。 填写自定义的密钥文件密码。 alias string 密钥别名。 以字母开头,支持字母、数字、“_”、“-”和“.”。 字符长度为1~128。 key_password string 可选参数。 填写自定义的密钥密码。 apksigner_commond string 自定义签名的参数,默认“--verbose”显示签名详情。 ignore_fail string 用于控制当前步骤执行失败后是否继续执行下一个步骤。 true:是。 为空:否。
-
图形化构建 在配置构建步骤中,添加“Android构建”构建步骤,参考表1配置参数。 表1 Android构建参数说明 参数 说明 步骤显示名称 构建步骤的名称,可自定义修改。 支持中文、英文、数字、“-”、“_”、英文逗号、英文分号、英文冒号、“.”、“/”、圆括号(中英文)。 字符长度范围为1~128。 Gradle 根据用户实际开发环境的需要,选择对应的工具版本。 CodeArts Build支持的工具版本,可查看构建工具版本。若当前的工具版本不满足您的使用要求,您可以自定义构建环境。 JDK 根据用户实际开发环境的需要,选择对应的工具版本。 CodeArts Build支持的工具版本,可查看构建工具版本。若当前的工具版本不满足您的使用要求,您可以自定义构建环境。 NDK 根据用户实际开发环境的需要,选择对应的工具版本。 CodeArts Build支持的工具版本,可查看构建工具版本。若当前的工具版本不满足您的使用要求,您可以自定义构建环境。 命令 配置Gradle命令,一般使用系统默认给出的命令即可。如果需要配置更多命令,可参考Gradle官网。 失败后是否继续运行 当前步骤执行失败后是否继续执行下一个步骤,根据实际使用场景选择是或否。 如果需要使用apksigner对Android APK进行签名,可添加“Android APK签名”构建步骤,参数说明如下: 参数 说明 步骤显示名称 构建步骤的名称,可自定义修改。 支持中文、英文、数字、“-”、“_”、英文逗号、英文分号、英文冒号、“.”、“/”、圆括号(中英文)。 字符长度范围为1~128。 需要签名的APK路径 Android构建后生成要签名的“.apk”文件位置。 支持正则表达式,如:可以使用“build/bin/*.apk”匹配构建出来的APK包。 Keystore文件 在下拉框中选择用于签名的Keystore文件。文件的制作以及上传指导可参考生成并上传Keystore签名文件。 keystore password 可选参数。 填写自定义的密钥文件密码。 别名(Alias) 自定义密钥别名。 以字母开头,支持字母、数字、“_”、“-”和“.”。 字符长度为1~128。 key password 可选参数。 填写自定义的密钥密码。 apksigner命令行 自定义签名的参数,默认“--verbose”显示签名详情。 失败后是否继续运行 当前步骤执行失败后是否继续执行下一个步骤,根据实际使用场景选择是或否。 配置完成后执行构建任务,当显示任务执行成功后,查看构建日志,若“Android APK签名”步骤对应日志中显示结果“Signed”,表示签名成功。
共100000条
- 1
- ...
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148
- 149
- 150
- 151
- 152
- 153
- 154
- 155
- 156
- 157
- 158
- 159
- 160
- 161
- 162
- 163
- 164
- 165
- 166
- 167
- 168
- 169
- 170
- 171
- 172
- 173
- 174
- 175
- 176
- 177
- 178
- 179
- 180
- 181
- 182
- 183
- 184
- 185
- 186
- 187
- 188
- 189
- 190
- 191
- 192
- 193
- 194
- 195
- 196
- 197
- 198
- 199
- 200
- 201
- 202
- 203
- 204
- 205
- 206
- 207
- 208
- 209
- 210
- 211
- 212
- 213
- 214
- 215
- 216
- 217
- 218
- 219
- 220
- 221
- 222
- 223
- 224
- 225
- 226
- 227
- 228
- 229
- 230
- 231
- 232
- 233
- 234
- 235
- 236
- 237
- 238
- 239
- 240
- 241
- 242
- 243
- 244
- 245
- 246
- 247
- 248
- 249
- 250
- 251
- 252
- 253
- 254
- 255
- 256
- 257
- 258
- 259
- 260
- 261
- 262
- 263
- 264
- 265
- 266
- 267
- 268
- 269
- 270
- 271
- 272
- 273
- 274
- 275
- 276
- 277
- 278
- 279
- 280
- 281
- 282
- 283
- 284
- 285
- 286
- 287
- 288
- 289
- 290
- 291
- 292
- 293
- 294
- 295
- 296
- 297
- 298
- 299
- 300
- 301
- 302
- 303
- 304
- 305
- 306
- 307
- 308
- 309
- 310
- 311
- 312
- 313
- 314
- 315
- 316
- 317
- 318
- 319
- 320
- 321
- 322
- 323
- 324
- 325
- 326
- 327
- 328
- 329
- 330
- 331
- 332
- 333
- 334
- 335
- 336
- 337
- 338
- 339
- 340
- 341
- 342
- 343
- 344
- 345
- 346
- 347
- 348
- 349
- 350
- 351
- 352
- 353
- 354
- 355
- 356
- 357
- 358
- 359
- 360
- 361
- 362
- 363
- 364
- 365
- 366
- 367
- 368
- 369
- 370
- 371
- 372
- 373
- 374
- 375
- 376
- 377
- 378
- 379
- 380
- 381
- 382
- 383
- 384
- 385
- 386
- 387
- 388
- 389
- 390
- 391
- 392
- 393
- 394
- 395
- 396
- 397
- 398
- 399
- 400
- 401
- 402
- 403
- 404
- 405
- 406
- 407
- 408
- 409
- 410
- 411
- 412
- 413
- 414
- 415
- 416
- 417
- 418
- 419
- 420
- 421
- 422
- 423
- 424
- 425
- 426
- 427
- 428
- 429
- 430
- 431
- 432
- 433
- 434
- 435
- 436
- 437
- 438
- 439
- 440
- 441
- 442
- 443
- 444
- 445
- 446
- 447
- 448
- 449
- 450
- 451
- 452
- 453
- 454
- 455
- 456
- 457
- 458
- 459
- 460
- 461
- 462
- 463
- 464
- 465
- 466
- 467
- 468
- 469
- 470
- 471
- 472
- 473
- 474
- 475
- 476
- 477
- 478
- 479
- 480
- 481
- 482
- 483
- 484
- 485
- 486
- 487
- 488
- 489
- 490
- 491
- 492
- 493
- 494
- 495
- 496
- 497
- 498
- 499
- 500
- 501
- 502
- 503
- 504
- 505
- 506
- 507
- 508
- 509
- 510
- 511
- 512
- 513
- 514
- 515
- 516
- 517
- 518
- 519
- 520
- 521
- 522
- 523
- 524
- 525
- 526
- 527
- 528
- 529
- 530
- 531
- 532
- 533
- 534
- 535
- 536
- 537
- 538
- 539
- 540
- 541
- 542
- 543
- 544
- 545
- 546
- 547
- 548
- 549
- 550
- 551
- 552
- 553
- 554
- 555
- 556
- 557
- 558
- 559
- 560
- 561
- 562
- 563
- 564
- 565
- 566
- 567
- 568
- 569
- 570
- 571
- 572
- 573
- 574
- 575
- 576
- 577
- 578
- 579
- 580
- 581
- 582
- 583
- 584
- 585
- 586
- 587
- 588
- 589
- 590
- 591
- 592
- 593
- 594
- 595
- 596
- 597
- 598
- 599
- 600
- 601
- 602
- 603
- 604
- 605
- 606
- 607
- 608
- 609
- 610
- 611
- 612
- 613
- 614
- 615
- 616
- 617
- 618
- 619
- 620
- 621
- 622
- 623
- 624
- 625
- 626
- 627
- 628
- 629
- 630
- 631
- 632
- 633
- 634
- 635
- 636
- 637
- 638
- 639
- 640
- 641
- 642
- 643
- 644
- 645
- 646
- 647
- 648
- 649
- 650
- 651
- 652
- 653
- 654
- 655
- 656
- 657
- 658
- 659
- 660
- 661
- 662
- 663
- 664
- 665
- 666
- 667
- 668
- 669
- 670
- 671
- 672
- 673
- 674
- 675
- 676
- 677
- 678
- 679
- 680
- 681
- 682
- 683
- 684
- 685
- 686
- 687
- 688
- 689
- 690
- 691
- 692
- 693
- 694
- 695
- 696
- 697
- 698
- 699
- 700
- 701
- 702
- 703
- 704
- 705
- 706
- 707
- 708
- 709
- 710
- 711
- 712
- 713
- 714
- 715
- 716
- 717
- 718
- 719
- 720
- 721
- 722
- 723
- 724
- 725
- 726
- 727
- 728
- 729
- 730
- 731
- 732
- 733
- 734
- 735
- 736
- 737
- 738
- 739
- 740
- 741
- 742
- 743
- 744
- 745
- 746
- 747
- 748
- 749
- 750
- 751
- 752
- 753
- 754
- 755
- 756
- 757
- 758
- 759
- 760
- 761
- 762
- 763
- 764
- 765
- 766
- 767
- 768
- 769
- 770
- 771
- 772
- 773
- 774
- 775
- 776
- 777
- 778
- 779
- 780
- 781
- 782
- 783
- 784
- 785
- 786
- 787
- 788
- 789
- 790
- 791
- 792
- 793
- 794
- 795
- 796
- 797
- 798
- 799
- 800
- 801
- 802
- 803
- 804
- 805
- 806
- 807
- 808
- 809
- 810
- 811
- 812
- 813
- 814
- 815
- 816
- 817
- 818
- 819
- 820
- 821
- 822
- 823
- 824
- 825
- 826
- 827
- 828
- 829
- 830
- 831
- 832
- 833
- 834
- 835
- 836
- 837
- 838
- 839
- 840
- 841
- 842
- 843
- 844
- 845
- 846
- 847
- 848
- 849
- 850
- 851
- 852
- 853
- 854
- 855
- 856
- 857
- 858
- 859
- 860
- 861
- 862
- 863
- 864
- 865
- 866
- 867
- 868
- 869
- 870
- 871
- 872
- 873
- 874
- 875
- 876
- 877
- 878
- 879
- 880
- 881
- 882
- 883
- 884
- 885
- 886
- 887
- 888
- 889
- 890
- 891
- 892
- 893
- 894
- 895
- 896
- 897
- 898
- 899
- 900
- 901
- 902
- 903
- 904
- 905
- 906
- 907
- 908
- 909
- 910
- 911
- 912
- 913
- 914
- 915
- 916
- 917
- 918
- 919
- 920
- 921
- 922
- 923
- 924
- 925
- 926
- 927
- 928
- 929
- 930
- 931
- 932
- 933
- 934
- 935
- 936
- 937
- 938
- 939
- 940
- 941
- 942
- 943
- 944
- 945
- 946
- 947
- 948
- 949
- 950
- 951
- 952
- 953
- 954
- 955
- 956
- 957
- 958
- 959
- 960
- 961
- 962
- 963
- 964
- 965
- 966
- 967
- 968
- 969
- 970
- 971
- 972
- 973
- 974
- 975
- 976
- 977
- 978
- 979
- 980
- 981
- 982
- 983
- 984
- 985
- 986
- 987
- 988
- 989
- 990
- 991
- 992
- 993
- 994
- 995
- 996
- 997
- 998
- 999
- 1000
- 1001
- 1002
- 1003
- 1004
- 1005
- 1006
- 1007
- 1008
- 1009
- 1010
- 1011
- 1012
- 1013
- 1014
- 1015
- 1016
- 1017
- 1018
- 1019
- 1020
- 1021
- 1022
- 1023
- 1024
- 1025
- 1026
- 1027
- 1028
- 1029
- 1030
- 1031
- 1032
- 1033
- 1034
- 1035
- 1036
- 1037
- 1038
- 1039
- 1040
- 1041
- 1042
- 1043
- 1044
- 1045
- 1046
- 1047
- 1048
- 1049
- 1050
- 1051
- 1052
- 1053
- 1054
- 1055
- 1056
- 1057
- 1058
- 1059
- 1060
- 1061
- 1062
- 1063
- 1064
- 1065
- 1066
- 1067
- 1068
- 1069
- 1070
- 1071
- 1072
- 1073
- 1074
- 1075
- 1076
- 1077
- 1078
- 1079
- 1080
- 1081
- 1082
- 1083
- 1084
- 1085
- 1086
- 1087
- 1088
- 1089
- 1090
- 1091
- 1092
- 1093
- 1094
- 1095
- 1096
- 1097
- 1098
- 1099
- 1100
- 1101
- 1102
- 1103
- 1104
- 1105
- 1106
- 1107
- 1108
- 1109
- 1110
- 1111
- 1112
- 1113
- 1114
- 1115
- 1116
- 1117
- 1118
- 1119
- 1120
- 1121
- 1122
- 1123
- 1124
- 1125
- 1126
- 1127
- 1128
- 1129
- 1130
- 1131
- 1132
- 1133
- 1134
- 1135
- 1136
- 1137
- 1138
- 1139
- 1140
- 1141
- 1142
- 1143
- 1144
- 1145
- 1146
- 1147
- 1148
- 1149
- 1150
- 1151
- 1152
- 1153
- 1154
- 1155
- 1156
- 1157
- 1158
- 1159
- 1160
- 1161
- 1162
- 1163
- 1164
- 1165
- 1166
- 1167
- 1168
- 1169
- 1170
- 1171
- 1172
- 1173
- 1174
- 1175
- 1176
- 1177
- 1178
- 1179
- 1180
- 1181
- 1182
- 1183
- 1184
- 1185
- 1186
- 1187
- 1188
- 1189
- 1190
- 1191
- 1192
- 1193
- 1194
- 1195
- 1196
- 1197
- 1198
- 1199
- 1200
- 1201
- 1202
- 1203
- 1204
- 1205
- 1206
- 1207
- 1208
- 1209
- 1210
- 1211
- 1212
- 1213
- 1214
- 1215
- 1216
- 1217
- 1218
- 1219
- 1220
- 1221
- 1222
- 1223
- 1224
- 1225
- 1226
- 1227
- 1228
- 1229
- 1230
- 1231
- 1232
- 1233
- 1234
- 1235
- 1236
- 1237
- 1238
- 1239
- 1240
- 1241
- 1242
- 1243
- 1244
- 1245
- 1246
- 1247
- 1248
- 1249
- 1250
- 1251
- 1252
- 1253
- 1254
- 1255
- 1256
- 1257
- 1258
- 1259
- 1260
- 1261
- 1262
- 1263
- 1264
- 1265
- 1266
- 1267
- 1268
- 1269
- 1270
- 1271
- 1272
- 1273
- 1274
- 1275
- 1276
- 1277
- 1278
- 1279
- 1280
- 1281
- 1282
- 1283
- 1284
- 1285
- 1286
- 1287
- 1288
- 1289
- 1290
- 1291
- 1292
- 1293
- 1294
- 1295
- 1296
- 1297
- 1298
- 1299
- 1300
- 1301
- 1302
- 1303
- 1304
- 1305
- 1306
- 1307
- 1308
- 1309
- 1310
- 1311
- 1312
- 1313
- 1314
- 1315
- 1316
- 1317
- 1318
- 1319
- 1320
- 1321
- 1322
- 1323
- 1324
- 1325
- 1326
- 1327
- 1328
- 1329
- 1330
- 1331
- 1332
- 1333
- 1334
- 1335
- 1336
- 1337
- 1338
- 1339
- 1340
- 1341
- 1342
- 1343
- 1344
- 1345
- 1346
- 1347
- 1348
- 1349
- 1350
- 1351
- 1352
- 1353
- 1354
- 1355
- 1356
- 1357
- 1358
- 1359
- 1360
- 1361
- 1362
- 1363
- 1364
- 1365
- 1366
- 1367
- 1368
- 1369
- 1370
- 1371
- 1372
- 1373
- 1374
- 1375
- 1376
- 1377
- 1378
- 1379
- 1380
- 1381
- 1382
- 1383
- 1384
- 1385
- 1386
- 1387
- 1388
- 1389
- 1390
- 1391
- 1392
- 1393
- 1394
- 1395
- 1396
- 1397
- 1398
- 1399
- 1400
- 1401
- 1402
- 1403
- 1404
- 1405
- 1406
- 1407
- 1408
- 1409
- 1410
- 1411
- 1412
- 1413
- 1414
- 1415
- 1416
- 1417
- 1418
- 1419
- 1420
- 1421
- 1422
- 1423
- 1424
- 1425
- 1426
- 1427
- 1428
- 1429
- 1430
- 1431
- 1432
- 1433
- 1434
- 1435
- 1436
- 1437
- 1438
- 1439
- 1440
- 1441
- 1442
- 1443
- 1444
- 1445
- 1446
- 1447
- 1448
- 1449
- 1450
- 1451
- 1452
- 1453
- 1454
- 1455
- 1456
- 1457
- 1458
- 1459
- 1460
- 1461
- 1462
- 1463
- 1464
- 1465
- 1466
- 1467
- 1468
- 1469
- 1470
- 1471
- 1472
- 1473
- 1474
- 1475
- 1476
- 1477
- 1478
- 1479
- 1480
- 1481
- 1482
- 1483
- 1484
- ...
- 1485
- 1486
- 1487
- 1488
- 1489
- 1490
- 1491
- 1492
- 1493
- 1494
- 1495
- 1496
- 1497
- 1498
- 1499
- 1500
- 1501
- 1502
- 1503
- 1504
- 1505
- 1506
- 1507
- 1508
- 1509
- 1510
- 1511
- 1512
- 1513
- 1514
- 1515
- 1516
- 1517
- 1518
- 1519
- 1520
- 1521
- 1522
- 1523
- 1524
- 1525
- 1526
- 1527
- 1528
- 1529
- 1530
- 1531
- 1532
- 1533
- 1534
- 1535
- 1536
- 1537
- 1538
- 1539
- 1540
- 1541
- 1542
- 1543
- 1544
- 1545
- 1546
- 1547
- 1548
- 1549
- 1550
- 1551
- 1552
- 1553
- 1554
- 1555
- 1556
- 1557
- 1558
- 1559
- 1560
- 1561
- 1562
- 1563
- 1564
- 1565
- 1566
- 1567
- 1568
- 1569
- 1570
- 1571
- 1572
- 1573
- 1574
- 1575
- 1576
- 1577
- 1578
- 1579
- 1580
- 1581
- 1582
- 1583
- 1584
- 1585
- 1586
- 1587
- 1588
- 1589
- 1590
- 1591
- 1592
- 1593
- 1594
- 1595
- 1596
- 1597
- 1598
- 1599
- 1600
- 1601
- 1602
- 1603
- 1604
- 1605
- 1606
- 1607
- 1608
- 1609
- 1610
- 1611
- 1612
- 1613
- 1614
- 1615
- 1616
- 1617
- 1618
- 1619
- 1620
- 1621
- 1622
- 1623
- 1624
- 1625
- 1626
- 1627
- 1628
- 1629
- 1630
- 1631
- 1632
- 1633
- 1634
- 1635
- 1636
- 1637
- 1638
- 1639
- 1640
- 1641
- 1642
- 1643
- 1644
- 1645
- 1646
- 1647
- 1648
- 1649
- 1650
- 1651
- 1652
- 1653
- 1654
- 1655
- 1656
- 1657
- 1658
- 1659
- 1660
- 1661
- 1662
- 1663
- 1664
- 1665
- 1666
- 1667
- 1668
- 1669
- 1670
- 1671
- 1672
- 1673
- 1674
- 1675
- 1676
- 1677
- 1678
- 1679
- 1680
- 1681
- 1682
- 1683
- 1684
- 1685
- 1686
- 1687
- 1688
- 1689
- 1690
- 1691
- 1692
- 1693
- 1694
- 1695
- 1696
- 1697
- 1698
- 1699
- 1700
- 1701
- 1702
- 1703
- 1704
- 1705
- 1706
- 1707
- 1708
- 1709
- 1710
- 1711
- 1712
- 1713
- 1714
- 1715
- 1716
- 1717
- 1718
- 1719
- 1720
- 1721
- 1722
- 1723
- 1724
- 1725
- 1726
- 1727
- 1728
- 1729
- 1730
- 1731
- 1732
- 1733
- 1734
- 1735
- 1736
- 1737
- 1738
- 1739
- 1740
- 1741
- 1742
- 1743
- 1744
- 1745
- 1746
- 1747
- 1748
- 1749
- 1750
- 1751
- 1752
- 1753
- 1754
- 1755
- 1756
- 1757
- 1758
- 1759
- 1760
- 1761
- 1762
- 1763
- 1764
- 1765
- 1766
- 1767
- 1768
- 1769
- 1770
- 1771
- 1772
- 1773
- 1774
- 1775
- 1776
- 1777
- 1778
- 1779
- 1780
- 1781
- 1782
- 1783
- 1784
- 1785
- 1786
- 1787
- 1788
- 1789
- 1790
- 1791
- 1792
- 1793
- 1794
- 1795
- 1796
- 1797
- 1798
- 1799
- 1800
- 1801
- 1802
- 1803
- 1804
- 1805
- 1806
- 1807
- 1808
- 1809
- 1810
- 1811
- 1812
- 1813
- 1814
- 1815
- 1816
- 1817
- 1818
- 1819
- 1820
- 1821
- 1822
- 1823
- 1824
- 1825
- 1826
- 1827
- 1828
- 1829
- 1830
- 1831
- 1832
- 1833
- 1834
- 1835
- 1836
- 1837
- 1838
- 1839
- 1840
- 1841
- 1842
- 1843
- 1844
- 1845
- 1846
- 1847
- 1848
- 1849
- 1850
- 1851
- 1852
- 1853
- 1854
- 1855
- 1856
- 1857
- 1858
- 1859
- 1860
- 1861
- 1862
- 1863
- 1864
- 1865
- 1866
- 1867
- 1868
- 1869
- 1870
- 1871
- 1872
- 1873
- 1874
- 1875
- 1876
- 1877
- 1878
- 1879
- 1880
- 1881
- 1882
- 1883
- 1884
- 1885
- 1886
- 1887
- 1888
- 1889
- 1890
- 1891
- 1892
- 1893
- 1894
- 1895
- 1896
- 1897
- 1898
- 1899
- 1900
- 1901
- 1902
- 1903
- 1904
- 1905
- 1906
- 1907
- 1908
- 1909
- 1910
- 1911
- 1912
- 1913
- 1914
- 1915
- 1916
- 1917
- 1918
- 1919
- 1920
- 1921
- 1922
- 1923
- 1924
- 1925
- 1926
- 1927
- 1928
- 1929
- 1930
- 1931
- 1932
- 1933
- 1934
- 1935
- 1936
- 1937
- 1938
- 1939
- 1940
- 1941
- 1942
- 1943
- 1944
- 1945
- 1946
- 1947
- 1948
- 1949
- 1950
- 1951
- 1952
- 1953
- 1954
- 1955
- 1956
- 1957
- 1958
- 1959
- 1960
- 1961
- 1962
- 1963
- 1964
- 1965
- 1966
- 1967
- 1968
- 1969
- 1970
- 1971
- 1972
- 1973
- 1974
- 1975
- 1976
- 1977
- 1978
- 1979
- 1980
- 1981
- 1982
- 1983
- 1984
- 1985
- 1986
- 1987
- 1988
- 1989
- 1990
- 1991
- 1992
- 1993
- 1994
- 1995
- 1996
- 1997
- 1998
- 1999
- 2000
- 2001
- 2002
- 2003
- 2004
- 2005
- 2006
- 2007
- 2008
- 2009
- 2010
- 2011
- 2012
- 2013
- 2014
- 2015
- 2016
- 2017
- 2018
- 2019
- 2020
- 2021
- 2022
- 2023
- 2024
- 2025
- 2026
- 2027
- 2028
- 2029
- 2030
- 2031
- 2032
- 2033
- 2034
- 2035
- 2036
- 2037
- 2038
- 2039
- 2040
- 2041
- 2042
- 2043
- 2044
- 2045
- 2046
- 2047
- 2048
- 2049
- 2050
- 2051
- 2052
- 2053
- 2054
- 2055
- 2056
- 2057
- 2058
- 2059
- 2060
- 2061
- 2062
- 2063
- 2064
- 2065
- 2066
- 2067
- 2068
- 2069
- 2070
- 2071
- 2072
- 2073
- 2074
- 2075
- 2076
- 2077
- 2078
- 2079
- 2080
- 2081
- 2082
- 2083
- 2084
- 2085
- 2086
- 2087
- 2088
- 2089
- 2090
- 2091
- 2092
- 2093
- 2094
- 2095
- 2096
- 2097
- 2098
- 2099
- 2100
- 2101
- 2102
- 2103
- 2104
- 2105
- 2106
- 2107
- 2108
- 2109
- 2110
- 2111
- 2112
- 2113
- 2114
- 2115
- 2116
- 2117
- 2118
- 2119
- 2120
- 2121
- 2122
- 2123
- 2124
- 2125
- 2126
- 2127
- 2128
- 2129
- 2130
- 2131
- 2132
- 2133
- 2134
- 2135
- 2136
- 2137
- 2138
- 2139
- 2140
- 2141
- 2142
- 2143
- 2144
- 2145
- 2146
- 2147
- 2148
- 2149
- 2150
- 2151
- 2152
- 2153
- 2154
- 2155
- 2156
- 2157
- 2158
- 2159
- 2160
- 2161
- 2162
- 2163
- 2164
- 2165
- 2166
- 2167
- 2168
- 2169
- 2170
- 2171
- 2172
- 2173
- 2174
- 2175
- 2176
- 2177
- 2178
- 2179
- 2180
- 2181
- 2182
- 2183
- 2184
- 2185
- 2186
- 2187
- 2188
- 2189
- 2190
- 2191
- 2192
- 2193
- 2194
- 2195
- 2196
- 2197
- 2198
- 2199
- 2200
- 2201
- 2202
- 2203
- 2204
- 2205
- 2206
- 2207
- 2208
- 2209
- 2210
- 2211
- 2212
- 2213
- 2214
- 2215
- 2216
- 2217
- 2218
- 2219
- 2220
- 2221
- 2222
- 2223
- 2224
- 2225
- 2226
- 2227
- 2228
- 2229
- 2230
- 2231
- 2232
- 2233
- 2234
- 2235
- 2236
- 2237
- 2238
- 2239
- 2240
- 2241
- 2242
- 2243
- 2244
- 2245
- 2246
- 2247
- 2248
- 2249
- 2250
- 2251
- 2252
- 2253
- 2254
- 2255
- 2256
- 2257
- 2258
- 2259
- 2260
- 2261
- 2262
- 2263
- 2264
- 2265
- 2266
- 2267
- 2268
- 2269
- 2270
- 2271
- 2272
- 2273
- 2274
- 2275
- 2276
- 2277
- 2278
- 2279
- 2280
- 2281
- 2282
- 2283
- 2284
- 2285
- 2286
- 2287
- 2288
- 2289
- 2290
- 2291
- 2292
- 2293
- 2294
- 2295
- 2296
- 2297
- 2298
- 2299
- 2300
- 2301
- 2302
- 2303
- 2304
- 2305
- 2306
- 2307
- 2308
- 2309
- 2310
- 2311
- 2312
- 2313
- 2314
- 2315
- 2316
- 2317
- 2318
- 2319
- 2320
- 2321
- 2322
- 2323
- 2324
- 2325
- 2326
- 2327
- 2328
- 2329
- 2330
- 2331
- 2332
- 2333
- 2334
- 2335
- 2336
- 2337
- 2338
- 2339
- 2340
- 2341
- 2342
- 2343
- 2344
- 2345
- 2346
- 2347
- 2348
- 2349
- 2350
- 2351
- 2352
- 2353
- 2354
- 2355
- 2356
- 2357
- 2358
- 2359
- 2360
- 2361
- 2362
- 2363
- 2364
- 2365
- 2366
- 2367
- 2368
- 2369
- 2370
- 2371
- 2372
- 2373
- 2374
- 2375
- 2376
- 2377
- 2378
- 2379
- 2380
- 2381
- 2382
- 2383
- 2384
- 2385
- 2386
- 2387
- 2388
- 2389
- 2390
- 2391
- 2392
- 2393
- 2394
- 2395
- 2396
- 2397
- 2398
- 2399
- 2400
- 2401
- 2402
- 2403
- 2404
- 2405
- 2406
- 2407
- 2408
- 2409
- 2410
- 2411
- 2412
- 2413
- 2414
- 2415
- 2416
- 2417
- 2418
- 2419
- 2420
- 2421
- 2422
- 2423
- 2424
- 2425
- 2426
- 2427
- 2428
- 2429
- 2430
- 2431
- 2432
- 2433
- 2434
- 2435
- 2436
- 2437
- 2438
- 2439
- 2440
- 2441
- 2442
- 2443
- 2444
- 2445
- 2446
- 2447
- 2448
- 2449
- 2450
- 2451
- 2452
- 2453
- 2454
- 2455
- 2456
- 2457
- 2458
- 2459
- 2460
- 2461
- 2462
- 2463
- 2464
- 2465
- 2466
- 2467
- 2468
- 2469
- 2470
- 2471
- 2472
- 2473
- 2474
- 2475
- 2476
- 2477
- 2478
- 2479
- 2480
- 2481
- 2482
- 2483
- 2484
- 2485
- 2486
- 2487
- 2488
- 2489
- 2490
- 2491
- 2492
- 2493
- 2494
- 2495
- 2496
- 2497
- 2498
- 2499
- 2500
- 2501
- 2502
- 2503
- 2504
- 2505
- 2506
- 2507
- 2508
- 2509
- 2510
- 2511
- 2512
- 2513
- 2514
- 2515
- 2516
- 2517
- 2518
- 2519
- 2520
- 2521
- 2522
- 2523
- 2524
- 2525
- 2526
- 2527
- 2528
- 2529
- 2530
- 2531
- 2532
- 2533
- 2534
- 2535
- 2536
- 2537
- 2538
- 2539
- 2540
- 2541
- 2542
- 2543
- 2544
- 2545
- 2546
- 2547
- 2548
- 2549
- 2550
- 2551
- 2552
- 2553
- 2554
- 2555
- 2556
- 2557
- 2558
- 2559
- 2560
- 2561
- 2562
- 2563
- 2564
- 2565
- 2566
- 2567
- 2568
- 2569
- 2570
- 2571
- 2572
- 2573
- 2574
- 2575
- 2576
- 2577
- 2578
- 2579
- 2580
- 2581
- 2582
- 2583
- 2584
- 2585
- 2586
- 2587
- 2588
- 2589
- 2590
- 2591
- 2592
- 2593
- 2594
- 2595
- 2596
- 2597
- 2598
- 2599
- 2600
- 2601
- 2602
- 2603
- 2604
- 2605
- 2606
- 2607
- 2608
- 2609
- 2610
- 2611
- 2612
- 2613
- 2614
- 2615
- 2616
- 2617
- 2618
- 2619
- 2620
- 2621
- 2622
- 2623
- 2624
- 2625
- 2626
- 2627
- 2628
- 2629
- 2630
- 2631
- 2632
- 2633
- 2634
- 2635
- 2636
- 2637
- 2638
- 2639
- 2640
- 2641
- 2642
- 2643
- 2644
- 2645
- 2646
- 2647
- 2648
- 2649
- 2650
- 2651
- 2652
- 2653
- 2654
- 2655
- 2656
- 2657
- 2658
- 2659
- 2660
- 2661
- 2662
- 2663
- 2664
- 2665
- 2666
- 2667
- 2668
- 2669
- 2670
- 2671
- 2672
- 2673
- 2674
- 2675
- 2676
- 2677
- 2678
- 2679
- 2680
- 2681
- 2682
- 2683
- 2684
- 2685
- 2686
- 2687
- 2688
- 2689
- 2690
- 2691
- 2692
- 2693
- 2694
- 2695
- 2696
- 2697
- 2698
- 2699
- 2700
- 2701
- 2702
- 2703
- 2704
- 2705
- 2706
- 2707
- 2708
- 2709
- 2710
- 2711
- 2712
- 2713
- 2714
- 2715
- 2716
- 2717
- 2718
- 2719
- 2720
- 2721
- 2722
- 2723
- 2724
- 2725
- 2726
- 2727
- 2728
- 2729
- 2730
- 2731
- 2732
- 2733
- 2734
- 2735
- 2736
- 2737
- 2738
- 2739
- 2740
- 2741
- 2742
- 2743
- 2744
- 2745
- 2746
- 2747
- 2748
- 2749
- 2750
- 2751
- 2752
- 2753
- 2754
- 2755
- 2756
- 2757
- 2758
- 2759
- 2760
- 2761
- 2762
- 2763
- 2764
- 2765
- 2766
- 2767
- 2768
- 2769
- 2770
- 2771
- 2772
- 2773
- 2774
- 2775
- 2776
- 2777
- 2778
- 2779
- 2780
- 2781
- 2782
- 2783
- 2784
- 2785
- 2786
- 2787
- 2788
- 2789
- 2790
- 2791
- 2792
- 2793
- 2794
- 2795
- 2796
- 2797
- 2798
- 2799
- 2800
- 2801
- 2802
- 2803
- 2804
- 2805
- 2806
- 2807
- 2808
- 2809
- 2810
- 2811
- 2812
- 2813
- 2814
- 2815
- 2816
- 2817
- 2818
- 2819
- 2820
- 2821
- 2822
- 2823
- 2824
- 2825
- 2826
- 2827
- 2828
- 2829
- 2830
- 2831
- 2832
- 2833
- 2834
- 2835
- 2836
- 2837
- 2838
- 2839
- 2840
- 2841
- 2842
- 2843
- 2844
- 2845
- 2846
- 2847
- 2848
- 2849
- 2850
- 2851
- 2852
- 2853
- 2854
- 2855
- 2856
- 2857
- 2858
- 2859
- 2860
- 2861
- 2862
- 2863
- 2864
- 2865
- 2866
- 2867
- 2868
- 2869
- 2870
- 2871
- 2872
- 2873
- 2874
- 2875
- 2876
- 2877
- 2878
- 2879
- 2880
- 2881
- 2882
- 2883
- 2884
- 2885
- 2886
- 2887
- 2888
- 2889
- 2890
- 2891
- 2892
- 2893
- 2894
- 2895
- 2896
- 2897
- 2898
- 2899
- 2900
- 2901
- 2902
- 2903
- 2904
- 2905
- 2906
- 2907
- 2908
- 2909
- 2910
- 2911
- 2912
- 2913
- 2914
- 2915
- 2916
- 2917
- 2918
- 2919
- 2920
- 2921
- 2922
- 2923
- 2924
- 2925
- 2926
- 2927
- 2928
- 2929
- 2930
- 2931
- 2932
- 2933
- 2934
- 2935
- 2936
- 2937
- 2938
- 2939
- 2940
- 2941
- 2942
- 2943
- 2944
- 2945
- 2946
- 2947
- 2948
- 2949
- 2950
- 2951
- 2952
- 2953
- 2954
- 2955
- 2956
- 2957
- 2958
- 2959
- 2960
- 2961
- 2962
- 2963
- 2964
- 2965
- 2966
- 2967
- 2968
- 2969
- 2970
- 2971
- 2972
- 2973
- 2974
- 2975
- 2976
- 2977
- 2978
- 2979
- 2980
- 2981
- 2982
- 2983
- 2984
- 2985
- 2986
- 2987
- 2988
- 2989
- 2990
- 2991
- 2992
- 2993
- 2994
- 2995
- 2996
- 2997
- 2998
- 2999
- 3000
- 3001
- 3002
- 3003
- 3004
- 3005
- 3006
- 3007
- 3008
- 3009
- 3010
- 3011
- 3012
- 3013
- 3014
- 3015
- 3016
- 3017
- 3018
- 3019
- 3020
- 3021
- 3022
- 3023
- 3024
- 3025
- 3026
- 3027
- 3028
- 3029
- 3030
- 3031
- 3032
- 3033
- 3034
- 3035
- 3036
- 3037
- 3038
- 3039
- 3040
- 3041
- 3042
- 3043
- 3044
- 3045
- 3046
- 3047
- 3048
- 3049
- 3050
- 3051
- 3052
- 3053
- 3054
- 3055
- 3056
- 3057
- 3058
- 3059
- 3060
- 3061
- 3062
- 3063
- 3064
- 3065
- 3066
- 3067
- 3068
- 3069
- 3070
- 3071
- 3072
- 3073
- 3074
- 3075
- 3076
- 3077
- 3078
- 3079
- 3080
- 3081
- 3082
- 3083
- 3084
- 3085
- 3086
- 3087
- 3088
- 3089
- 3090
- 3091
- 3092
- 3093
- 3094
- 3095
- 3096
- 3097
- 3098
- 3099
- 3100
- 3101
- 3102
- 3103
- 3104
- 3105
- 3106
- 3107
- 3108
- 3109
- 3110
- 3111
- 3112
- 3113
- 3114
- 3115
- 3116
- 3117
- 3118
- 3119
- 3120
- 3121
- 3122
- 3123
- 3124
- 3125
- 3126
- 3127
- 3128
- 3129
- 3130
- 3131
- 3132
- 3133
- 3134
- 3135
- 3136
- 3137
- 3138
- 3139
- 3140
- 3141
- 3142
- 3143
- 3144
- 3145
- 3146
- 3147
- 3148
- 3149
- 3150
- 3151
- 3152
- 3153
- 3154
- 3155
- 3156
- 3157
- 3158
- 3159
- 3160
- 3161
- 3162
- 3163
- 3164
- 3165
- 3166
- 3167
- 3168
- 3169
- 3170
- 3171
- 3172
- 3173
- 3174
- 3175
- 3176
- 3177
- 3178
- 3179
- 3180
- 3181
- 3182
- 3183
- 3184
- 3185
- 3186
- 3187
- 3188
- 3189
- 3190
- 3191
- 3192
- 3193
- 3194
- 3195
- 3196
- 3197
- 3198
- 3199
- 3200
- 3201
- 3202
- 3203
- 3204
- 3205
- 3206
- 3207
- 3208
- 3209
- 3210
- 3211
- 3212
- 3213
- 3214
- 3215
- 3216
- 3217
- 3218
- 3219
- 3220
- 3221
- 3222
- 3223
- 3224
- 3225
- 3226
- 3227
- 3228
- 3229
- 3230
- 3231
- 3232
- 3233
- 3234
- 3235
- 3236
- 3237
- 3238
- 3239
- 3240
- 3241
- 3242
- 3243
- 3244
- 3245
- 3246
- 3247
- 3248
- 3249
- 3250
- 3251
- 3252
- 3253
- 3254
- 3255
- 3256
- 3257
- 3258
- 3259
- 3260
- 3261
- 3262
- 3263
- 3264
- 3265
- 3266
- 3267
- 3268
- 3269
- 3270
- 3271
- 3272
- 3273
- 3274
- 3275
- 3276
- 3277
- 3278
- 3279
- 3280
- 3281
- 3282
- 3283
- 3284
- 3285
- 3286
- 3287
- 3288
- 3289
- 3290
- 3291
- 3292
- 3293
- 3294
- 3295
- 3296
- 3297
- 3298
- 3299
- 3300
- 3301
- 3302
- 3303
- 3304
- 3305
- 3306
- 3307
- 3308
- 3309
- 3310
- 3311
- 3312
- 3313
- 3314
- 3315
- 3316
- 3317
- 3318
- 3319
- 3320
- 3321
- 3322
- 3323
- 3324
- 3325
- 3326
- 3327
- 3328
- 3329
- 3330
- 3331
- 3332
- 3333
- 3333