iewHolder
import com.mtkresearch.breezeapp.presentation.common.widget.MessageBubbleView
import com.mtkresearch.breezeapp.presentation.chat.model.ChatMessage
import com.mtkresearch.breezeapp.core.utils.MessageType

/**
 * 聊天訊息列表適配器
 *
 * 功能特色:
 * - 使用MessageBubbleView顯示訊息氣泡
 * - 自動處理用戶和AI訊息的不同樣式
 * - 支援訊息狀態變化動畫
 * - 提供訊息互動回調 (語音播放、點讚、重試等)
 * - DiffUtil自動計算列表差異，提供流暢動畫
 */
class MessageAdapter : BaseAdapter<ChatMessage, MessageAdapter.MessageViewHolder>(
    MessageDiffCallback()
) {

    // 內部維護的訊息列表，用於同步更新
    private val _messages = mutableListOf<ChatMessage>()

    /**
     * 訊息互動回調介面
     */
    interface MessageInteractionListener {
        fun onSpeakerClick(message: ChatMessage)
        fun onLikeClick(message: ChatMessage, isPositive: Boolean)
        fun onRetryClick(message: ChatMessage)
        fun onMessageLongClick(message: ChatMessage): Boolean
        fun onImageClick(message: ChatMessage, imageUrl: String)
    }

    private var interactionListener: MessageInteractionListener? = null

    /**
     * 設置訊息互動監聽器
     */
    fun setMessageInteractionListener(listener: MessageInteractionListener?) {
        this.interactionListener = listener
    }

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MessageViewHolder {
        val binding = ItemChatMessageBinding.inflate(
            LayoutInflater.from(parent.context),
            parent,
            false
        )
        return MessageViewHolder(binding)
    }

    /**
     * 訊息ViewHolder
     */
    inner class MessageViewHolder(
        private val binding: ItemChatMessageBinding
    ) : BaseViewHolder<ChatMessage>(binding.root) {

        override fun bind(item: ChatMessage, position: Int) {
            // 設置訊息氣泡
            setupMessageBubble(item)

            // 設置互動監聽器
            setupInteractionListeners(item)

            // 設置長按監聽器
            setupLongClickListener(item)
        }

        override fun bind(item: ChatMessage, position: Int, payloads: List<Any>) {
            if (payloads.isNotEmpty()) {
                // 處理部分更新，例如只更新訊息狀態
                val payload = payloads.first()
                when (payload) {
                    "STATE_UPDATE" -> updateMessageState(item)
                    "TEXT_UPDATE" -> updateMessageText(item)
                    else -> bind(item, position)
                }
            } else {
                bind(item, position)
            }
        }

        override fun onViewRecycled() {
            super.onViewRecycled()
            // 清理資源，例如停止動畫
            // 移除監聽器來避免記憶體洩漏
            binding.messageBubble.setOnSpeakerClickListener(null)
            binding.messageBubble.setOnLikeClickListener(null)
            binding.messageBubble.setOnRetryClickListener(null)
            binding.messageBubble.setOnLongClickListener(null)
        }

        /**
         * 設置訊息氣泡
         */
        private fun setupMessageBubble(message: ChatMessage) {
            val messageType = if (message.isFromUser) {
                MessageType.USER
            } else {
                MessageType.AI
            }

            val messageState = when (message.state) {
                ChatMessage.MessageState.NORMAL -> MessageBubbleView.MessageState.NORMAL
                ChatMessage.MessageState.SENDING -> MessageBubbleView.MessageState.LOAD


erializer
import ru.inforion.lab403.kopycat.cores.base.abstracts.ACPU
import ru.inforion.lab403.kopycat.cores.base.enums.AccessAction
import ru.inforion.lab403.kopycat.cores.base.exceptions.GeneralException
import ru.inforion.lab403.kopycat.cores.x86.enums.x86GPR
import ru.inforion.lab403.kopycat.cores.x86.hardware.registers.*
import ru.inforion.lab403.kopycat.cores.x86.hardware.systemdc.x86SystemDecoder
import ru.inforion.lab403.kopycat.cores.x86.instructions.AX86Instruction
import ru.inforion.lab403.kopycat.cores.x86.instructions.cpu.control.Nop
import ru.inforion.lab403.kopycat.interfaces.IAutoSerializable
import ru.inforion.lab403.kopycat.modules.BUS32
import ru.inforion.lab403.kopycat.modules.cores.x86Core
import ru.inforion.lab403.kopycat.serializer.loadValue
import ru.inforion.lab403.kopycat.serializer.storeValues

class x86CPU(val x86: x86Core, name: String):
    ACPU<x86CPU, x86Core, AX86Instruction, x86GPR>(x86, name), IAutoSerializable {

    companion object {
        const val EFER = 0xC0000080uL
        const val LME = 8 // Long Mode Enable
    }

    enum class Mode { R16, R32, R64 }

    // Cached CS.D value
    var csd = false
    // Cached CS.L value
    var csl = false

    // Operand and Address size mode! Not real or protected!
    // Real or protected mode defined by cregs.vpe
    val mode: Mode get() = when {
        csl && cregs.cr4.pae && x86.config.efer[LME].truth && cregs.cr0.pg -> Mode.R64
        csd && cregs.cr0.pe -> Mode.R32
        else -> Mode.R16
    }

    /** Long mode: compatibility submode AKA IA-32e */
    val is64BitCompatibilityMode get() = mode != Mode.R64 && x86.config.efer[LME].truth && x86.cpu.cregs.cr0.pg

    override fun reg(index: Int): ULong = regs[index].value
    override fun reg(index: Int, value: ULong) = run { regs[index].value = value }
    override fun count() = regs.count()
    override fun flags() = flags.eflags.value

    /**
     * Stub for debugging purpose of x86CPU core
     * Read - returns physical CPU.PC address
     * Write - setup only offset of virtual address within cs segment
     */
    override var pc: ULong
        get() = regs.rip.value
        set(value) = run { regs.rip.value = value }

    val regs = GPRBank()
    val flags = FLBank(x86) // TODO: split to flags and eflags
    val sregs = SSRBank(x86)
    val dregs = DBGBank()
    val cregs = CTRLBank(x86)

    private val decoder = x86SystemDecoder(x86, this)

    override fun reset() {
        super.reset()
        decoder.reset()
        regs.reset()
        flags.reset()
        sregs.reset()
        insn = Nop.create(x86)
    }

    override fun decode() {
        insn = decoder.decode(regs.rip.value)
//        log.info { "cs=${sregs.cs.value.hex} eip=${regs.eip.value.hex} $insn" }
    }

    override fun execute(): Int {
        regs.rip.


     $t2, 0x0004($a0)           ## 00000004
/* 01A00 80A7A9B0 3C01FFFE */  lui     $at, 0xFFFE                ## $at = FFFE0000
/* 01A04 80A7A9B4 3421FFFF */  ori     $at, $at, 0xFFFF           ## $at = FFFEFFFF
/* 01A08 80A7A9B8 01415824 */  and     $t3, $t2, $at
/* 01A0C 80A7A9BC AC8B0004 */  sw      $t3, 0x0004($a0)           ## 00000004
/* 01A10 80A7A9C0 AFA40018 */  sw      $a0, 0x0018($sp)
/* 01A14 80A7A9C4 0C29E6EB */  jal     func_80A79BAC
/* 01A18 80A7A9C8 8FA5001C */  lw      $a1, 0x001C($sp)
/* 01A1C 80A7A9CC 3C028016 */  lui     $v0, 0x8016                ## $v0 = 80160000
/* 01A20 80A7A9D0 2442E660 */  addiu   $v0, $v0, 0xE660           ## $v0 = 8015E660
/* 01A24 80A7A9D4 944C13FA */  lhu     $t4, 0x13FA($v0)           ## 8015FA5A
/* 01A28 80A7A9D8 3C01FFFF */  lui     $at, 0xFFFF                ## $at = FFFF0000
/* 01A2C 80A7A9DC 34217FFF */  ori     $at, $at, 0x7FFF           ## $at = FFFF7FFF
/* 01A30 80A7A9E0 318DFFF0 */  andi    $t5, $t4, 0xFFF0           ## $t5 = 00000000
/* 01A34 80A7A9E4 35AF0002 */  ori     $t7, $t5, 0x0002           ## $t7 = 00000002
/* 01A38 80A7A9E8 8FA8001C */  lw      $t0, 0x001C($sp)
/* 01A3C 80A7A9EC 01E1C024 */  and     $t8, $t7, $at
/* 01A40 80A7A9F0 A44F13FA */  sh      $t7, 0x13FA($v0)           ## 8015FA5A
/* 01A44 80A7A9F4 37198000 */  ori     $t9, $t8, 0x8000           ## $t9 = 00008000
/* 01A48 80A7A9F8 3C010001 */  lui     $at, 0x0001                ## $at = 00010000
/* 01A4C 80A7A9FC 8FA40018 */  lw      $a0, 0x0018($sp)
/* 01A50 80A7AA00 A45913FA */  sh      $t9, 0x13FA($v0)           ## 8015FA5A
/* 01A54 80A7AA04 00280821 */  addu    $at, $at, $t0
/* 01A58 80A7AA08 A02004BF */  sb      $zero, 0x04BF($at)         ## 000104BF
/* 01A5C 80A7AA0C 8FAA001C */  lw      $t2, 0x001C($sp)
/* 01A60 80A7AA10 3C010001 */  lui     $at, 0x0001                ## $at = 00010000
/* 01A64 80A7AA14 24090036 */  addiu   $t1, $zero, 0x0036         ## $t1 = 00000036
/* 01A68 80A7AA18 002A0821 */  addu    $at, $at, $t2
/* 01A6C 80A7AA1C A02903DC */  sb


iz
DATA_WORD(b__MAX7naqebvq6IrpgbeVAF_2jcVAF_12VZrqvnFbheprRRRR7qb_pbclRCiCXiz)
.weak b__MAX7naqebvq6IrpgbeVAF_2jcVAF_12VZrqvnFbheprRRRR7qb_pbclRCiCXiz
DATA_WORD(b__MAX7naqebvq6IrpgbeVAF_2jcVAF_12VZrqvnFbheprRRRR8qb_fcyngRCiCXiz)
.weak b__MAX7naqebvq6IrpgbeVAF_2jcVAF_12VZrqvnFbheprRRRR8qb_fcyngRCiCXiz
DATA_WORD(b__MAX7naqebvq6IrpgbeVAF_2jcVAF_12VZrqvnFbheprRRRR15qb_zbir_sbejneqRCiCXiz)
.weak b__MAX7naqebvq6IrpgbeVAF_2jcVAF_12VZrqvnFbheprRRRR15qb_zbir_sbejneqRCiCXiz
DATA_WORD(b__MAX7naqebvq6IrpgbeVAF_2jcVAF_12VZrqvnFbheprRRRR16qb_zbir_onpxjneqRCiCXiz)
.weak b__MAX7naqebvq6IrpgbeVAF_2jcVAF_12VZrqvnFbheprRRRR16qb_zbir_onpxjneqRCiCXiz
.space (__SIZEOF_POINTER__ * 2)
DATA_WORD(local_label)
DATA_WORD(local_label)
DATA_WORD(local_label)
.space (__SIZEOF_POINTER__ * 2)
DATA_WORD(local_label)
DATA_WORD(local_label)
DATA_WORD(b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR12qb_pbafgehpgRCiz)
.weak b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR12qb_pbafgehpgRCiz
DATA_WORD(b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR10qb_qrfgeblRCiz)
.weak b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR10qb_qrfgeblRCiz
DATA_WORD(b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR7qb_pbclRCiCXiz)
.weak b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR7qb_pbclRCiCXiz
DATA_WORD(b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR8qb_fcyngRCiCXiz)
.weak b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR8qb_fcyngRCiCXiz
DATA_WORD(b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR15qb_zbir_sbejneqRCiCXiz)
.weak b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR15qb_zbir_sbejneqRCiCXiz
DATA_WORD(b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR16qb_zbir_onpxjneqRCiCXiz)
.weak b__MAX7naqebvq6IrpgbeVAF_7Fgevat8RR16qb_zbir_onpxjneqRCiCXiz
.space (__SIZEOF_POINTER__ * 2)
DATA_WORD(local_label)
DATA_WORD(local_label)
DATA_WORD(b__MAX7naqebvq6IrpgbeVAF_17RkgenpgbeVafgnaprRR12q


// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * Copyright (c) 2016 Fujitsu Ltd.
 * Author: Guangwen Feng <fenggw-fnst@cn.fujitsu.com>
 * Copyright (c) 2021 Xie Ziyao <xieziyao@huawei.com>
 */

/*\
 * Basic test for epoll_pwait() and epoll_pwait2().
 *
 * - With a sigmask a signal is ignored and the syscall safely waits until
 *   either a file descriptor becomes ready or the timeout expires.
 *
 * - Without sigmask if signal arrives a syscall is iterrupted by a signal.
 *   The call should return -1 and set errno to EINTR.
 */

#include <stdlib.h>
#include <sys/epoll.h>

#include "tst_test.h"
#include "epoll_pwait_var.h"

static int efd, sfd[2];
static struct epoll_event e;
static sigset_t signalset;
static struct sigaction sa;

static void sighandler(int sig LTP_ATTRIBUTE_UNUSED) {}

static void verify_sigmask(void)
{
	TEST(do_epoll_pwait(efd, &e, 1, NULL, &signalset));

	if (TST_RET != 1) {
		tst_res(TFAIL, "do_epoll_pwait() returned %li, expected 1",
			TST_RET);
		return;
	}

	tst_res(TPASS, "do_epoll_pwait() with sigmask blocked signal");
}

static void verify_nonsigmask(void)
{
	TST_EXP_FAIL(do_epoll_pwait(efd, &e, 1, NULL, NULL), EINTR,
		     "do_epoll_pwait() without sigmask");
}

static void (*testcase_list[])(void) = {verify_sigmask, verify_nonsigmask};

static void run(unsigned int n)
{
	char b;
	pid_t pid;

	if (!SAFE_FORK()) {
		pid = getppid();

		TST_PROCESS_STATE_WAIT(pid, 'S', 0);
		SAFE_KILL(pid, SIGUSR1);

		usleep(10000);
		SAFE_WRITE(SAFE_WRITE_ALL, sfd[1], "w", 1);
		exit(0);
	}

	testcase_list[n]();

	SAFE_READ(1, sfd[0], &b, 1);
	tst_reap_children();
}

static void setup(void)
{
	epoll_pwait_init();

	SAFE_SIGEMPTYSET(&signalset);
	SAFE_SIGADDSET(&signalset, SIGUSR1);

	sa.sa_flags = 0;
	sa.sa_handler = sighandler;
	SAFE_SIGEMPTYSET(&sa.sa_mask);
	SAFE_SIGACTION(SIGUSR1, &sa, NULL);

	SAFE_SOCKETPAIR(AF_UNIX, SOCK_STREAM, 0, sfd);

	efd = epoll_create(1);
	if (efd == -1)
		tst_brk(TBROK | TERRNO, "epoll_create()");

	e.events = EPOLLIN;
	if (epoll_ctl(efd, EPOLL_CTL_ADD, sfd[0], &e))
		tst_brk(TBROK | TERRNO, "epoll_ctl(..., EPOLL_CTL_ADD, ...)");
}

static void cleanup(void)
{
	if (efd > 0)
		SAFE_CLOSE(efd);

	if (sfd[0] > 0)
		SAFE_CLOSE(sfd[0]);

	if (sfd[1] > 0)
		SAFE_CLOSE(sfd[1]);
}

static struct tst_test test = {
	.test = run,
	.setup = setup,
	.cleanup = cleanup,
	.forks_child = 1,
	.test_variants = TEST_VARIANTS,
	.tcnt = ARRAY_SIZE(testcase_list),
};


ndroid.Build.Tasks", "1.0.0.0")]
	public partial class Resource
	{

		static Resource()
		{
			global::Android.Runtime.ResourceIdManager.UpdateIdValues();
		}

		public partial class Attribute
		{

			static Attribute()
			{
				global::Android.Runtime.ResourceIdManager.UpdateIdValues();
			}

			private Attribute()
			{
			}
		}

		public partial class String
		{

			// aapt resource value: 0x7f020000
			public static int library_name = 2130837504;

			static String()
			{
				global::Android.Runtime.ResourceIdManager.UpdateIdValues();
			}

			private String()
			{
			}
		}
	}
}
#pragma warning restore 1591


char),
    pub is_widget_type: extern "C" fn(self_c: *const RUBase) -> bool,
    pub is_window_type: extern "C" fn(self_c: *const RUBase) -> bool,
    pub signals_blocked: extern "C" fn(self_c: *const RUBase) -> bool,
    pub block_signals: extern "C" fn(self_c: *const RUBase, b: bool) -> bool,
    pub start_timer: extern "C" fn(self_c: *const RUBase, interval: i32, timer_type: u32) -> i32,
    pub start_timer_2: extern "C" fn(self_c: *const RUBase, time: u32, timer_type: u32) -> i32,
    pub kill_timer: extern "C" fn(self_c: *const RUBase, id: i32),
    pub set_parent: extern "C" fn(self_c: *const RUBase, parent: *const RUBase),
    pub install_event_filter: extern "C" fn(self_c: *const RUBase, filter_obj: *const RUBase),
    pub dump_object_tree: extern "C" fn(self_c: *const RUBase),
    pub dump_object_info: extern "C" fn(self_c: *const RUBase),
    pub dump_object_tree_2: extern "C" fn(self_c: *const RUBase),
    pub dump_object_info_2: extern "C" fn(self_c: *const RUBase),
    pub parent: extern "C" fn(self_c: *const RUBase) -> RUObject,
    pub delete_later: extern "C" fn(self_c: *const RUBase),
    pub set_custom_event: extern "C" fn(
        object: *const RUBase,
        user_data: *const c_void,
        trampoline_func: *const c_void,
        callback: *const c_void,
    ),

    pub remove_custom_event: extern "C" fn(object: *const RUBase),
}

#[repr(C)]
#[derive(Copy, Clone)]
pub struct RUObjectAllFuncs {
    pub object_funcs: *const RUObjectFuncs,
}

#[repr(C)]
#[derive(Copy, Clone)]
pub struct RUObject {
    pub qt_data: *const RUBase,
    pub host_data: *const RUBase,
    pub all_funcs: *const RUObjectAllFuncs,
}
<gh_stars>0
use super::super::*;

pub struct Task;

impl Solution for Task {
    type Input = Vec<usize>;
    type Output = usize;

    fn parse_input(&self, input: String) -> Self::Input {
        input
            .trim()
            .split(",")
            .map(|s| s.parse().expect("invalid number"))
            .collect()
    }

    fn part1(&self, input: Self::Input) -> Self::Output {
        solve(input, 2020)
    }

    fn part2(&self, input: Self::Input) -> Self::Output {
        solve(input, 30_000_000)
    }
}

fn solve(input: Vec<usize>, stop: usize) -> usize {
    let mut mem = vec![0; stop];
    for turn in 0..input.len() - 1 {
        mem[input[turn]] = turn + 1;
    }

    (input.len()..stop).fold(*input.last().unwrap(), |last, turn| {
        let last_turn = mem[last];
        let next = if last_turn == 0 { 0 } else { turn - last_turn };
        mem[last] = turn;
        next
    })
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn test_part1() {
        assert_eq!(436, Task.part1(vec![0, 3, 6]));
        assert_eq!(1, Task.part1(vec![1, 3, 2]));
        assert_eq!(10,


  fun tearDown() {
        session.close()
    }

    @Test
    fun `ChangeStreamIterable#listen listens all changes`() {
        col.insertOne(session, Friend("Joe"))
        val friends = ArrayBlockingQueue<Friend>(3)
        Thread.sleep(100)
        col.watch(session).fullDocument(FullDocument.UPDATE_LOOKUP).listen {
            println(it.fullDocument)
            if(it.fullDocument != null) {
                friends.add(it.fullDocument)
            }
        }

        Thread.sleep(100)
        val fred = Friend("Fred")
        col.insertOne(fred)
        Thread.sleep(100)
        val ivan = Friend("Ivan")
        col.insertOne(ivan)
        Thread.sleep(100)
        val lea = Friend("Lea")
        col.insertOne(lea)
        Thread.sleep(100)

        //retrieve all friends in the right order
        assertEquals(fred, friends.poll(50, TimeUnit.SECONDS))
        assertEquals(ivan, friends.poll(50, TimeUnit.SECONDS))
        assertEquals(lea, friends.poll(50, TimeUnit.SECONDS))
    }
}/*
 * Copyright (C) 2016/2022 Litote
 *
 * 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.litote.kmongo.issues

import com.mongodb.client.model.Filters
import kotlinx.serialization.Contextual
import kotlinx.serialization.Serializable
import org.junit.Test
import org.litote.kmongo.AllCategoriesKMongoBaseTest
import org.litote.kmongo.eq
import org.litote.kmongo.findOne
import org.litote.kmongo.issues.Issue12EqToLocaleQueryCrash.ClassWithLocalField
import java.util.Locale
import kotlin.test.assertEquals

/**
 *
 */
class Issue12EqToLocaleQueryCrash : AllCategoriesKMongoBaseTest<ClassWithLocalField>() {

    @Serializable
    data class ClassWithLocalField(@Contextual val locale: Locale)

    @Test
    fun testSerializeAndDeserializeLocale() {
        val l = ClassWithLocalField(Locale.ENGLISH)
        col.insertOne(l)
        val l2 = col.findOne(Filters.eq("locale", Locale.ENGLISH))
        assertEquals(l, l2)
        val l3 = col.findOne(l::locale eq Locale.ENGLISH)
        assertEquals(l, l3)
    }

}/*
 * Copyright (C) 2016/2022 Litote
 *
 * 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.litote.kmongo.issues

import kotlinx.serialization.Serializable
import org.junit.Test
import org.litote.kmongo.AllCategoriesKMongoBaseTest
import org.litote.kmongo.MongoOperator.set
import org.litote.kmongo.findOneById
import org.litote.kmongo.issues.Issue4FilterIdToExtendedJsonThrowKotlinException.ClassWithValue
import org.litote.kmongo.issues.Issue4FilterIdToExtendedJsonThrowKotlinException.


1-.1.7.1 1 .1 1 .1l.3 3z" }), /*#__PURE__*/
React.createElement("path", { d: "M496.9 648.3s-1.2.6-3.4 1.6-5.3 2.4-9.1 4.1c-1.9.9-3.9 1.8-6.1 2.7-2.2.9-4.4 2-6.7 3.1-4.7 2.1-9.7 4.4-14.7 6.6-4.9 2.4-9.9 4.7-14.5 6.9-2.3 1.1-4.6 2.1-6.7 3.2-2.1 1.1-4.1 2.1-5.9 2.9-1.8.9-3.6 1.7-5.1 2.3-1.5.7-2.9 1.2-4 1.7-2.2.9-3.5 1.4-3.5 1.4l-1.7-3.2s1.1-.8 3.2-2c1-.6 2.3-1.4 3.8-2.2 1.5-.8 3.1-1.7 5-2.7 1.8-1 3.8-2 6-3l3.3-1.5c1.1-.5 2.3-1 3.5-1.5 4.7-2 9.8-4.2 14.9-6.3 5.1-2 10.3-4 15.1-5.8 2.4-.9 4.7-1.8 7-2.6 2.2-.8 4.3-1.5 6.3-2.2 3.9-1.4 7.1-2.5 9.4-3.3 2.3-.8 3.6-1.2 3.6-1.2l.3 1z" }), /*#__PURE__*/
React.createElement("path", { d: "M151.9 742s.2.5.7 1.4c.2.4.5 1 .8 1.7.3.6.7 1.3 1.1 2.1.4.8.9 1.7 1.4 2.7.5 1 1.1 2 1.7 3.1 1.3 2.2 2.7 4.7 4.4 7.3 1.6 2.7 3.6 5.4 5.6 8.4 2.1 2.9 4.5 5.8 7.1 8.7 1.3 1.4 2.7 2.8 4.2 4.1.8.6 1.5 1.3 2.3 1.9l1.2.9.6.5.1.1c.1.1-.1 0 0 0l.1.1.3.2c.9.5 1.8 1.2 2.6 1.6l1.3.7c.4.2.9.4 1.4.6 1.8.8 3.7 1.2 5.7 1.6 3.9.6 8 .3 12-.6 4-.8 7.9-2.1 11.6-3.4 3.7-1.3 7.3-2.7 10.8-3.9 3.5-1.2 6.8-2.2 10-2.9 3.1-.7 6.1-1.1 8.7-1.2 1.3 0 2.5 0 3.7.1 1.1 0 2.2.2 3.1.4 1.8.3 3.3.7 4.2 1.1l1.5.5s-.5-.1-1.5-.4c-1-.3-2.4-.5-4.2-.7-1.8-.2-4.1-.2-6.6 0-2.6.3-5.4.8-8.4 1.7-3 .9-6.2 2-9.6 3.4-3.4 1.3-6.9 2.9-10.6 4.4-3


dat(MT.STONES.Basalt), ST.make(MD.PR_EXPLORATION, "projectred.exploration.stone", 1, 2));
			OM.reg(OP.stone.dat(MT.STONES.Basalt), ST.make(MD.PR_EXPLORATION, "projectred.exploration.stone", 1, 3));
			OM.reg(OP.stone.dat(MT.STONES.Basalt), ST.make(MD.PR_EXPLORATION, "projectred.exploration.stone", 1, 4));
			for (int i = 0; i < 16; i++) {
			OM.reg(DYE_OREDICTS_MIXABLE[i], ST.make(MD.PR_EXPLORATION, "projectred.exploration.lilyseed", 1, 15-i));
			OM.data(MD.PR, "projectred.core.part", 1, i+19, ANY.Glowstone, 2*U);
			}
			OM.data(MD.PR, "projectred.core.part", 1, 16, ANY.Cu, U);
			OM.data(MD.PR, "projectred.core.part", 1, 17, ANY.Fe, U);
			OM.data(MD.PR, "projectred.core.part", 1, 18, MT .Au, U);

			StoneLayer.REPLACEABLE_BLOCKS.add(ST.block(MD.PR_EXPLORATION, "projectred.exploration.ore", null));

			OreDictManager.INSTANCE.setTarget(OP.oreVanillastone, MT.Ruby        , MD.PR_EXPLORATION, "projectred.exploration.ore", 0);
			OreDictManager.INSTANCE.setTarget(OP.oreVanillastone, MT.BlueSapphire, MD.PR_EXPLORATION, "projectred.exploration.ore", 1);
			OreDictManager.INSTANCE.setTarget(OP.oreVanillastone, MT.Peridot     , MD.PR_EXPLORATION, "projectred.exploration.ore", 2);
			OreDictManager.INSTANCE.setTarget(OP.oreVanillastone, MT.Cu          , MD.PR_EXPLORATION, "projectred.exploration.ore", 3);
			OreDictManager.INSTANCE.setTarget(OP.oreVanillastone, MT.Sn          , MD.PR_EXPLORATION, "projectred.exploration.ore", 4);
			OreDictManager.INSTANCE.setTarget(OP.oreVanillastone, MT.Ag          , MD.PR_EXPLORATION, "projectred.exploration.ore", 5);
			OreDictManager.INSTANCE.setTarget(OP.oreVanillastone, MT.Nikolite    , MD.PR_EXPLORATION, "projectred.exploration.ore", 6);
		}

		// Yay for ChickenBones ALWAYS doing it wrong...
		if (MD.WR_CBE_C.mLoaded) {
			OreDictManager.INSTANCE.setTarget(OP.stick, MT.Obsidian, MD.WR_CBE_C, "obsidianStick", 0);
		}
		if (MD.FMB.mLoaded) {
			OreDictManager.INSTANCE.setTarget(OP.stick, MT.Stone, MD.FMB, "stoneRod", 0);
		}
		if (MD.TRANSLOCATOR.mLoaded) {
			OreDictManager.INSTANCE.setTarget(OP.nugget, MT.Diamond, MD.TRANSLOCATOR, "diamondNugget", 0);
		}

		// Oh look, Matter Overdrive does this shit too...
		if (MD.MO.mLoaded) {
			StoneLayer.REPLACEABLE_BLOCKS.add(ST.block(MD.MO, "dilithium_ore", null));
			StoneLayer.REPLACEABLE_BLOCKS.add(ST.block(MD.MO, "tritanium_ore", null));

			OreDictManager.INSTANCE.setTarget(OP.oreVanillastone, MT.Dolamide


95.8464-57.7536 138.8544-24.576 25.8048-63.8976 58.9824-120.4224 98.304-101.9904 70.0416-169.5744 124.1088-201.5232 160.9728C233.0624 788.8896 204.8 866.304 204.8 956.0064h611.9424z"  ></path></symbol><symbol id="icon-chuangjianMockfuwu" viewBox="0 0 1024 1024"><path d="M706.46070293 65.16363627a79.43757547 79.43757547 0 0 1 54.3030304 21.46055786l148.11384214 138.69304214A79.43757547 79.43757547 0 0 1 934.0121216 283.30666667V879.39878827a79.43757547 79.43757547 0 0 1-79.43757653 79.43757546H169.42545493a79.43757547 79.43757547 0 0 1-79.43757653-79.43757546V144.60121173A79.43757547 79.43757547 0 0 1 169.42545493 65.16363627h537.035248zM512 238.93333333a49.64848533 49.64848533 0 0 0-49.64848533 49.64848534v173.769696H288.58181867a49.64848533 49.64848533 0 0 0-49.58642454 47.1660608L238.93333333 512a49.64848533 49.64848533 0 0 0 49.64848534 49.64848533h173.769696v173.769696a49.64848533 49.64848533 0 0 0 47.1660608 49.58642454L512 785.06666667a49.64848533 49.64848533 0 0 0 49.64848533-49.64848534V561.64848533h173.769696a49.64848533 49.64848533 0 0 0 49.58642454-47.1660608L785.06666667 512a49.64848533 49.64848533 0 0 0-49.64848534-49.64848533H561.64848533V288.58181867a49.64848533 49.64848533 0 0 0-47.1660608-49.58642454z"  ></path></symbol><symbol id="icon-chuangjianwenjianjia" viewBox="0 0 1024 1024"><path d="M348.2 100.568a109.716 109.716 0 0 1 80.22 34.884l75.636 81.084h350.796a109.716 109.716 0 0 1 109.716 109.716v487.464a109.716 109.716 0 0 1-109.716 109.716H169.16a109.716 109.716 0 0 1-109.716-109.716V210.284a109.716 109.716 0 0 1 109.716-109.716z m0 82.284H169.136a27.432 27.432 0 0 0-27.432 27.432v603.432a27.432 27.432 0 0 0 27.432 27.432H854.84a27.432 27.432 0 0 0 27.432-27.432V326.24a27.432 27.432 0 0 0-27.432-27.432H504.056a82.284 82.284 0 0 1-60.168-26.16l-75.636-81.084a27.432 27.432 0 0 0-20.064-8.724zM512 388.568a41.148 41.148 0 0 1 41.148 41.148l-0.012 109.704h109.716a41.148 41.148 0 1 1 0 82.296h-109.716v109.716a41.148 41.148 0 1 1-82.284 0v-109.728h-109.704a41.148 41.148 0 1 1 0-82


      {
            "Levels/ONS_MP_002" => "BC2_Valparaiso.jpg",
            "Levels/ONS_MP_004" => "BC2_Isla_Inocentes.jpg",
            "Levels/ONS_MP_005" => "BC2_Atacama_Desert.jpg",
            "Levels/ONS_MP_008" => "BC2_Nelson_Bay.jpg",
            "levels/wake_island_s" => "BC1943_Wake_Island.jpg",
            _ => string.Empty,
        };

        return string.Concat(hostBase, fileName);
    }
}


x.derivatives.edci.t7.v13.0.packet", ftypes.STRING)
omi_eurex_derivatives_edci_t7_v13_0.fields.pad_2 = ProtoField.new("Pad 2", "eurex.derivatives.edci.t7.v13.0.pad2", ftypes.BYTES)
omi_eurex_derivatives_edci_t7_v13_0.fields.pad_3 = ProtoField.new("Pad 3", "eurex.derivatives.edci.t7.v13.0.pad3", ftypes.BYTES)
omi_eurex_derivatives_edci_t7_v13_0.fields.pad_4 = ProtoField.new("Pad 4", "eurex.derivatives.edci.t7.v13.0.pad4", ftypes.BYTES)
omi_eurex_derivatives_edci_t7_v13_0.fields.pad_6 = ProtoField.new("Pad 6", "eurex.derivatives.edci.t7.v13.0.pad6", ftypes.BYTES)
omi_eurex_derivatives_edci_t7_v13_0.fields.pad_7 = ProtoField.new("Pad 7", "eurex.derivatives.edci.t7.v13.0.pad7", ftypes.BYTES)
omi_eurex_derivatives_edci_t7_v13_0.fields.partition_grp_comp = ProtoField.new("Partition Grp Comp", "eurex.derivatives.edci.t7.v13.0.partitiongrpcomp", ftypes.STRING)
omi_eurex_derivatives_edci_t7_v13_0.fields.partition_id = ProtoField.new("Partition Id", "eurex.derivatives.edci.t7.v13.0.partitionid", ftypes.UINT16)
omi_eurex_derivatives_edci_t7_v13_0.fields.party_end_client_identification = ProtoField.new("Party End Client Identification", "eurex.derivatives.edci.t7.v13.0.partyendclientidentification", ftypes.STRING)
omi_eurex_derivatives_edci_t7_v13_0.fields.party_executing_firm = ProtoField.new("Party Executing Firm", "eurex.derivatives.edci.t7.v13.0.partyexecutingfirm", ftypes.STRING)
omi_eurex_derivatives_edci_t7_v13_0.fields.party_id_client_id = ProtoField.new("Party Id Client Id", "eurex.derivatives.edci.t7.v13.0.partyidclientid", ftypes.UINT64)
omi_eurex_derivatives_edci_t7_v13_0.fields.party_id_executing_trader = ProtoField.new("Party Id Executing Trader", "eurex.derivatives.edci.t7.v13.0.partyidexecutingtrader", ftypes.UINT32)
omi_eurex_derivatives_edci_t7_v13_0.fields.party_id_executing_unit = ProtoField.new("Party Id Executing Unit", "eurex.derivatives.edci.t7.v13.0.partyidexecutingunit", ftypes.UINT32)
omi_eurex_derivatives_edci_t7_v13_0.fields.party_id_investment_decision_maker = ProtoField.new("Party Id Investment Decision Maker", "eurex.derivatives.edci.t7.v13.0.partyidinvestmentdecisionmaker", ftypes.UINT64)
omi_eurex_derivatives_edci_t7_v13_0.fields.party_id_investment_decision_maker_qualifier = ProtoField.new("Party Id Investment Decision Maker Qualifier", "eurex.derivatives.edci.t7.v13.0.partyidinvestmentdecisionmakerqualifier", fty


rty$SYMBOL_PLACEMENT$Type).hashCode;

  @core$_.override
  bool operator ==(Object other) {
    return other.runtimeType == ($Property$SYMBOL_PLACEMENT$Type) &&
        other is $Property$SYMBOL_PLACEMENT$Type;
  }
}

/// from: `org.maplibre.android.style.layers.Property$SYMBOL_Z_ORDER`
class Property$SYMBOL_Z_ORDER extends jni$_.JObject {
  @jni$_.internal
  @core$_.override
  final jni$_.JObjType<Property$SYMBOL_Z_ORDER> $type;

  @jni$_.internal
  Property$SYMBOL_Z_ORDER.fromReference(
    jni$_.JReference reference,
  ) : $type = type,
      super.fromReference(reference);

  static final _class = jni$_.JClass.forName(
    r'org/maplibre/android/style/layers/Property$SYMBOL_Z_ORDER',
  );

  /// The type which includes information such as the signature of this class.
  static const nullableType = $Property$SYMBOL_Z_ORDER$NullableType();
  static const type = $Property$SYMBOL_Z_ORDER$Type();

  /// Maps a specific port to the implemented interface.
  static final core$_.Map<int, $Property$SYMBOL_Z_ORDER> _$impls = {};
  static jni$_.JObjectPtr _$invoke(
    int port,
    jni$_.JObjectPtr descriptor,
    jni$_.JObjectPtr args,
  ) {
    return _$invokeMethod(
      port,
      jni$_.MethodInvocation.fromAddresses(
        0,
        descriptor.address,
        args.address,
      ),
    );
  }

  static final jni$_.Pointer<
    jni$_.NativeFunction<
      jni$_.JObjectPtr Function(jni$_.Int64, jni$_.JObjectPtr, jni$_.JObjectPtr)
    >
  >
  _$invokePointer = jni$_.Pointer.fromFunction(_$invoke);

  static jni$_.Pointer<jni$_.Void> _$invokeMethod(
    int $p,
    jni$_.MethodInvocation $i,
  ) {
    try {
      final $d = $i.methodDescriptor.toDartString(releaseOriginal: true);
      final $a = $i.args;
    } catch (e) {
      return jni$_.ProtectedJniExtensions.newDartException(e);
    }
    return jni$_.nullptr;
  }

  static void implementIn(
    jni$_.JImplementer implementer,
    $Property$SYMBOL_Z_ORDER $impl,
  ) {
    late final jni$_.RawReceivePort $p;
    $p = jni$_.RawReceivePort(($m) {
      if ($m == null) {
        _$impls.remove($p.sendPort.nativePort);
        $p.close();
        return;
      }
      final $i = jni$_.MethodInvocation.fromMessage($m);
      final $r = _$invokeMethod($p.sendPort.nativePort, $i);
      jni$_.ProtectedJniExtensions.returnResult($i.result, $r);
    });
    implementer.add(
      r'org.maplibre.android.style.layers.Property$SYMBOL_Z_ORDER',
      $p,
      _$invokePointer,
      [],
    );
    final $a = $p.sendPort.nativePort;
    _$impls[$a] = $impl;
  }

  factory Property$SYMBOL_Z_ORDER.implement(
    $Property$SYMBOL_Z_ORDER $impl,
  ) {
    final $i = jni$_.JImplementer();
    implementIn($i, $impl);
    return Property$SYMBOL_Z_ORDER.fromReference(
      $i.implementReference(),
    );
  }
}

abstract base mixin class $Property$SYMBOL_Z_ORDER {
  factory $Property$SYMBOL_Z_ORDER() = _$Property$SYMBOL_Z_


抽样分布就接近于正态分布\
当 n ≥ 30, t分布已不在要求样本的正态性, 可以直接进行 t 检验. 叫做 大样本容量时 t 检验对于 非正态性 总体的 robustness. 样本大小都要检验正态性(严谨).

3. 正态性检验: Kolmogorov-Smirnov Test, Shspiro-Wilk Test, Anderson-Darling Test

### 正篇 16 双样本t检验 two-sample t test = independent samples t test
Use case:
比较两个总体是否有显著差别, 但是没条件计算出真实的 $μ_1, μ_2$, 只能分别从两个总体抽取一个样本 $X_1, X_2$ 然后计算两个样本的均值的差值. 这时假设 $H_0: μ_1=μ_2$, 或者说 假设双样本 $X_1, X_2$来自同一个总体, 抽样得到 2分差值的概率多大, 极不极端. 通过差值抽样分布 算出差值的 p 然后比较 p 和 α 就知道是否拒绝原假设

双样本 t 分布 计算公式\
$S_p^2=\frac{(n_1-1)S_1^2+(n_2-1)S_2^2}{n_1+n_2-2}$\
$t=\frac{x̄_1-x̄_2}{\sqrt{\frac{S_p^2}{n_1}+\frac{S_p^2}{n_2}}}$\
当 $n_1=n_2$, $t=\frac{x̄_1-x̄_2}{\sqrt{s_1^2+s_2^2}/\sqrt{n}}$\
这个t分布的自由度 $(n_1-1)+(n_2-1)=n_1+n_2-2$

双样本和单样本的t分布是同一个t分布

单样本 t 检验\
检验: 单样本 是否来自 已知的总体

双样本 t 检验\
检验: 两个样本是否 来自 一个总体(可以理解为 两个 μ 是否显著差别)\
双样本也需要检验 样本的正态性

paired t test 不是 2 samples test

双样本 t 检验前置条件 样本正态性 方差齐性 和 样本独立性 后面再讲

### 正篇 17 Independent Samples
Independent Samples: There is no relationship between the subjects in each sample.
具体 三个方面:
1. Subjects in the first sample cannot also be in the second sample(avoid overlapping subject, record subjects' info that can distinguish the target from others)
2. No subjects in either sample can influence subjects in the other sample(国内海外考


wable>>;

pub struct Screen {
    pub components: DrawableList,
}

impl Screen {
    pub fn run(&self) {
        println!("Running Screen");
        for component in self.components.iter() {
            component.draw();
        }
    }
}#![cfg_attr(rustc_nightly, feature(test))]

#[cfg(test)]
extern crate byteorder;
extern crate chrono;
extern crate clap;
extern crate ctrlc;
extern crate elf;
extern crate env_logger;
#[macro_use]
extern crate failure;
#[macro_use]
extern crate failure_derive;
extern crate libc;
#[macro_use]
extern crate log;
extern crate read_process_memory;
#[cfg(test)]
extern crate rbspy_testdata;
extern crate rand;
#[cfg(target_os = "macos")]
extern crate regex;
extern crate ruby_bindings as bindings;
#[cfg(test)]
extern crate tempdir;

use chrono::prelude::*;
use clap::{App, AppSettings, Arg, ArgMatches, SubCommand};
use libc::pid_t;
use failure::Error;
use failure::ResultExt;
use std::fs::DirBuilder;
use std::io::Write;
use std::path::{PathBuf, Path};
use std::env;
use std::process::Command;
use std::sync::atomic::{AtomicUsize, Ordering};
use std::sync::Arc;

#[cfg(test)]
use tempdir::TempDir;

pub mod proc_maps;
pub mod address_finder;
pub mod initialize;
pub mod copy;
pub mod ruby_version;

const FLAMEGRAPH_SCRIPT: &'static [u8] = include_bytes!("../vendor/flamegraph/flamegraph.pl");

/// The kinds of things we can call `rbspy record` on.
#[derive(Clone, Eq, PartialEq, Ord, PartialOrd, Hash, Debug)]
enum Target {
    Pid { pid: pid_t },
    Subprocess {
        prog: String,
        args: Vec<String>,
    },
}
use Target::*;

/// Subcommand.
#[derive(Clone, Eq, PartialEq, Ord, PartialOrd, Hash, Debug)]
enum SubCmd {
    /// Record `target`, writing output `output`.
    Record { target: Target, out_path: PathBuf  },
    /// Capture and print a stacktrace snapshot of process `pid`.
    Snapshot {pid: pid_t},
}
use SubCmd::*;

/// Top level args type.
#[derive(Clone, Eq, PartialEq, Ord, PartialOrd, Hash, Debug)]
struct Args {
    cmd: SubCmd,
}

fn do_main() -> Result<(), Error> {
    env_logger::init().unwrap();

    let args = Args::from_args()?;

    match args.cmd {
        Snapshot { pid } => snapshot(pid),
        Record { target, out_path } => {
            let (pid, spawned) = match target {
                Pid {pid} => (pid, false),
                Subprocess { prog, args } => (Command::new(prog)
                    .args(args)
                    .spawn()?.id() as pid_t, true)
            };

            record(&out_path, pid, spawned)
        },
    }
}

fn main() {
    match do_main() {
        Err(x) => {
            eprintln!("Error. Causes: ");
            for c in x.causes() {
                eprintln!("- {}", c);
            }
            eprintln!("{}", x.backtrace());
            std::process::exit(1);
        }
        _ => {}
    }
}

fn snapshot(pid: pid_t) -> Result<(), Error> {
    let getter = initialize::initialize(pid)?;
    let trace = getter.get


.be.true;
    expect(logger.isInfoEnabled()).to.be.false;
  }
}

@suite('core.diagnostics.Logger config')
class LoggerConfigTest extends CoreUnitTest {

  config: IConfig = {
    appenders: [
    ],

    levels: {
      '[all]': 'WARN',
      'Test': 'DEBUG',
      'Test2': 'INFO'
    }
  };

  @test 'should test log level for Test'() {
    // tslint:disable-next-line:no-unused-variable
    const value = new Test('hirsch');

    // Hinweis: die Level-Instanzen sind unterschiedlich (Level <-> log4js.Level)
    expect(Test.logger.level.isEqualTo(levels.DEBUG)).to.be.true;
  }

  @test 'should test log level for Test2'() {
    // tslint:disable-next-line:no-unused-variable
    const value = new Test2('hirsch');
    expect(Test2.logger.level.isEqualTo(levels.INFO)).to.be.true;
  }

  @test 'should test log level for Test3'() {
    // tslint:disable-next-line:no-unused-variable
    const value = new Test3('hirsch');
    // expect(Test3.logger.level.isEqualTo(levels.WARN)).to.be.true;
    expect(Test3.logger.level.toString()).to.equal(levels.WARN.toString());
  }

  protected before() {
    super.before();
    configure(this.config);
  }

}

@suite('Logger extended')
class LoggerExtendedTest extends CoreUnitTest {

  @test 'should create Test instance'() {
    const value = new Test('hugo');
    expect(value).to.be.not.null;
  }

  @test 'should create Test2 instance'() {
    const value = new Test2('hirsch');
    expect(value).to.be.not.null;
  }

  @test 'should test Test2.getLogLevel'() {
    const value = new Test2('hirsch');
    expect(value.getLogLevel()).to.be.equal(levels.INFO);
  }
}import { Request, Response } from 'express';
import { v4 as uuid } from 'uuid';

import Payment from '../models/Payment';
import Creditor from '../models/Creditor';
import Debtor from '../models/Debtor';

export default {
  async create(req: Request, res: Response) {
    try {

      const creditor = await Creditor.findOne({
        where: {
          creditor_id: req.body.creditor_id
        }
      });

      const debtor = await Debtor.findOne({
        where: {
          debtor_id: req.body.debtor_id
        }
      });

      let newPayment = {
        payment_id: uuid(),
        creditor_id: req.body.creditor_id,
        debtor_id: req.body.debtor_id,
        initial_value: req.body.initial_value,
        final_value: req.body.final_value,
        date: new Date(Date.now()),
        status: req.body.status,
        reason: req.body.reason,
      }

      // Regra de negocio 1
      if(creditor?.status !== 'approved'){
        newPayment.status = 'Invalid';
        newPayment.reason = 'Incomplete debtor registration.';
        await Payment.create(newPayment);
        return res.status(401).json({ error: newPayment.reason });
      }

      // Regra de negocio 2
      if(!debtor){
        newPayment.status = 'Invalid';
        newPayment.reason = 'Debtor not found.';
        await Payment.create(newPayment);
        return res.status(401).json({ error: newPayment.reason });
      }

      // Regra de negocio 3
      if(req.body.initial_value < 0 || req.body.final_value < 0){
        newPayment.status = 'Invalid';


 products derived from this software without
//   specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// POSSIBILITY OF SUCH DAMAGE.
//
// Author: wjr@google.com (William Rucklidge)

#include "ceres/parallel_utils.h"

namespace ceres {
namespace internal {

void LinearIndexToUpperTriangularIndex(int k, int n, int* i, int* j) {
  // This works by unfolding a rectangle into a triangle.
  // Say n is even. 4 is a nice even number. The 10 i,j pairs that we
  // want to produce are:
  // 0,0 0,1 0,2 0,3
  //     1,1 1,2 1,3
  //         2,2 2,3
  //             3,3
  // This triangle can be folded into a 5x2 rectangle:
  // 3,3 0,0 0,1 0,2 0,3
  // 2,2 2,3 1,1 1,2 1,3

  // If N is odd, say 5, then the 15 i,j pairs are:
  // 0,0 0,1 0,2 0,3 0,4
  //     1,1 1,2 1,3 1,4
  //         2,2 2,3 2,3
  //             3,3 3,4
  //                 4,4
  // which folds to a 5x3 rectangle:
  // 0,0 0,1 0,2 0,3 0,4
  // 4,4 1,1 1,2 1,3 1,4
  // 3,3 3,4 2,2 2,3 2,4

  // All this function does is map the linear iteration position to a
  // location in the rectangle and work out the appropriate (i, j) for that
  // location.
  if (n & 1) {
    // Odd n. The tip of the triangle is on row 1.
    int w = n;  // Width of the rectangle to unfold
    int i0 = k / w;
    int j0 = k % w;
    if (j0 >= i0) {
      *i = i0;
      *j = j0;
    } else {
      *i = n - i0;
      *j = *i + j0;
    }
  } else {
    // Even n. The tip of the triangle is on row 0, making it one wider.
    int w = n + 1;
    int i0 = k / w;
    int j0 = k % w;
    if (j0 > i0) {
      *i = i0;
      *j = j0 - 1;
    } else {
      *i = n - 1 - i0;
      *j = *i + j0;
    }
  }
}

}  // namespace internal
}  // namespace ceres
// Ceres Solver - A fast non-linear least squares minimizer
// Copyright 2015 Google Inc. All rights reserved.
// http://ceres-solver.org/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are met:
//
// * Redistributions of source code must retain the above copyright notice,
//   this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above copyright notice,
//   this list of conditions and the following disclaimer in the documentation
//   and/or other materials provided with the distribution.
// * Neither the name of Google Inc. nor the names of its contributors may be
//   used to endorse or promote products derived from this software without
//   specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO


ry::QueryWriter::new(&mut out, "ModifyVpnTunnelOptions", "2016-11-15");
    #[allow(unused_mut)]
    let mut scope_4551 = writer.prefix("VpnConnectionId");
    if let Some(var_4552) = &input.vpn_connection_id {
        scope_4551.string(var_4552);
    }
    #[allow(unused_mut)]
    let mut scope_4553 = writer.prefix("VpnTunnelOutsideIpAddress");
    if let Some(var_4554) = &input.vpn_tunnel_outside_ip_address {
        scope_4553.string(var_4554);
    }
    #[allow(unused_mut)]
    let mut scope_4555 = writer.prefix("TunnelOptions");
    if let Some(var_4556) = &input.tunnel_options {
        crate::query_ser::serialize_structure_modify_vpn_tunnel_options_specification(
            scope_4555, var_4556,
        );
    }
    #[allow(unused_mut)]
    let mut scope_4557 = writer.prefix("DryRun");
    if let Some(var_4558) = &input.dry_run {
        scope_4557.boolean(*var_4558);
    }
    writer.finish();
    Ok(smithy_http::body::SdkBody::from(out))
}

pub fn serialize_operation_monitor_instances(
    input: &crate::input::MonitorInstancesInput,
) -> Result<smithy_http::body::SdkBody, std::convert::Infallible> {
    let mut out = String::new();
    #[allow(unused_mut)]
    let mut writer = smithy_query::QueryWriter::new(&mut out, "MonitorInstances", "2016-11-15");
    #[allow(unused_mut)]
    let mut scope_4559 = writer.prefix("InstanceId");
    if let Some(var_4560) = &input.instance_ids {
        let mut list_4562 = scope_4559.start_list(true, Some("InstanceId"));
        for item_4561 in var_4560 {
            #[allow(unused_mut)]
            let mut entry_4563 = list_4562.entry();
            entry_4563.string(item_4561);
        }
        list_4562.finish();
    }
    #[allow(unused_mut)]
    let mut scope_4564 = writer.prefix("DryRun");
    if let Some(var_4565) = &input.dry_run {
        scope_4564.boolean(*var_4565);
    }
    writer.finish();
    Ok(smithy_http::body::SdkBody::from(out))
}

pub fn serialize_operation_move_address_to_vpc(
    input: &crate::input::MoveAddressToVpcInput,
) -> Result<smithy_http::body::SdkBody, std::convert::Infallible> {
    let mut out = String::new();
    #[allow(unused_mut)]
    let mut writer = smithy_query::QueryWriter::new(&mut out, "MoveAddressToVpc", "2016-11-15");
    #[allow(unused_mut)]
    let mut scope_4566 = writer.prefix("DryRun");
    if let Some(var_4567) = &input.dry_run {
        scope_4566.boolean(*var_4567);
    }
    #[allow(unused_mut)]
    let mut scope_4568 = writer.prefix("PublicIp");
    if let Some(var_4569) = &input.public_ip {
        scope_4568.string(var_4569);
    }
    writer.finish();
    Ok(smithy_http::body::SdkBody::from(out))
}

pub fn serialize_operation_provision_byoip_cidr(
    input: &crate::


46:return m_c(b,zGe(c[0]),zGe(c[1]),pGe(c[2]));case 2447:return b.oz(),null;case 2536:case 3124:case 2448:return b.iz(c[0]),null;case 2449:return n_c(b,AGe(c[0]),c[1]);case 3126:case 2450:return b.lz(c[0],c[1]),null;case 3127:case 2451:return b.jz(c[0],c[1]),null;case 3128:case 2452:return oGe(),b.Az(c[0])?true:false;case 2453:return oGe(),o_c(b,c[0],pGe(c[1]))?true:false;case 2454:return p_c(b,AGe(c[0]),pGe(c[1]));case 2455:return b.pz(),null;case 2457:return b.uz(c[0]);case 2459:return oGe(),q_c(b,AGe(c[0]),AGe(c[1]))?true:false;case 2460:return oGe(),b.Jz(c[0],c[1])?true:false;case 2461:return r_c(b,AGe(c[0]));case 2462:return b.wz();case 2463:return oGe(),b.xi()?true:false;case 2464:return s_c(b,pGe(c[0]));case 2465:return oGe(),b.yz()?true:false;case 2466:return b.zz(c[0],c[1]);case 2467:return t_c(b,pGe(c[0]),pGe(c[1]));case 2468:return b.rz();case 2470:return u_c(b,c[0],AGe(c[1]));case 2471:return new Leb;case 2473:return new CHe(b.Rz());case 2474:return v_c(b,zGe(c[0]));case 2475:return new CHe(b.Sz());case 2476:return w_c(b,zGe(c[0]));case 2477:return b.Uz();case 2478:return b.dA(c[0]),null;case 2479:return gIe(b.Oz());case 2480:return x_c(b,AGe(c[0]));case 2481:return gIe(b.Lz());case 2482:return y_c(b,AGe(c[0]));case 2483:return gIe(b.Nz());case 2484:return z_c(b,AGe(c[0]));case 2485:return dHe(b.Mz());case 2486:return A_c(b,c[0].a);case 2487:return gIe(b.Qz());case 2488:return B_c(b,AGe(c[0]));case 2489:return b.Pz();case 2490:return b.$z(c[0]),null;case 2491:return b.eA(c[0],c[1]);case 2492:return oGe(),b.Vz()?true:false;case 2493:return oGe(),b.Tz()?true:false;case 2494:return C_c(b,pGe(c[0]));case 2496:return new Cfb;case 2497:return jgb(),Pae(Iae(Jhe,1),J3e,125,0,[ggb,igb,hgb,egb,_fb,agb,fgb,bgb,dgb,cgb]);case 2498:return jgb(),Nb((ngb(),mgb),c[0]);case 2506:return oGe(),E_c(b,c[0],zGe(c[1]),zGe(c[2]),AGe(c[3]),AGe(c[4]))?true:false;case 2507:return F_c(b,c[0],zGe(c[1]),zGe(c[2]),AGe(c[3]),AGe(c[4]));case 2508:return G_c(b,c[0],zGe(c[1]),zGe(c[2]),AGe(c[3]));case 2509:return oGe(),H_c(b,c[


TEST_WRAMEN2
  rts
.endproc

.proc mmc3_test_irq
  lda nmis
:
  cmp nmis
  beq :-
  lda #JMP_OPCODE
  sta irq_handler
  lda #<mmc3_irq_handler
  sta irq_handler+1
  lda #>mmc3_irq_handler
  sta irq_handler+2
  lda #BG_ON
  sta PPUMASK
  lda #VBLANK_NMI|BG_0000|OBJ_1000
  sta PPUCTRL
  lda #0
  sta PPUSCROLL
  sta PPUSCROLL
  sta irqs
  lda #64
  sta MMC3_IRQ_PERIOD
  sta MMC3_IRQ_RELOAD
  sta MMC3_IRQ_ENABLE

  ; Now wait a frame for the IRQs to come in
  cli
  lda nmis
:
  cmp nmis
  beq :-
  sei
  lda #0
  sta PPUMASK
  lda irqs
  eor #3
  beq :+
  lda #MAPTEST_IRQ
:
  rts
.endproc
.proc mmc3_irq_handler
  inc irqs
  sta MMC3_IRQ_DISABLE
  sta MMC3_IRQ_ENABLE
  rti
.endproc

; FME-7 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; FME7_CHRBANK+0-7: Swap 1K CHR into $0000, $0400, $0800, ..., $1C00
; FME7_PRGBANK+0-3: Swap 8K PRG into $6000, $8000, $A000, $C000
; $6000 is special: $00 is ROM, $80 is open bus, $C0 is RAM
; FME7_IRQCTRL:
;   FME7_IRQ_COUNT means run counter
;   FME7_IRQ_ENABLE means generate IRQs (clear then set to ack)
;FME7_IRQ_LOW and FME7_IRQ_HIGH set the counter
; when counter becomes $FFFF while counting, assert /IRQ until ack

.segment "DRIVER_FME7"
  jmp fme7_set_prg_8k
  jmp fme7_set_chr_8k
.proc fme7_test_mapper
  ; Read all PRG ROM bank tags through each PRG ROM window
  lda #$00
  sta driver_prg_result
  ldx #3
prgwinloop:
  jsr fme7_test_one_prg_window
  asl a
  rol driver_prg_result
  dex
  bpl prgwinloop

  ; Verify PRG RAM protection
  jsr fme7_test_wram_protection
  ora driver_prg_result
  sta driver_prg_result

.if 1
  ; Test that IRQ line is connected
  jsr fme7_test_irq
.else
  lda #0
.endif
  sta driver_chr_result

  ; Read all CHR bank tags through each single CHR window
  ldx #7
chrwinloop:
  jsr fme7_test_one_chr_window
  ora driver_chr_result
  sta driver_chr_result
  dex
  bpl chrwinloop
  rts
.endproc
.proc fme7_set_prg_8k
  and #$1F
  ora #FME7_PRGBANK_RAM
  ldy #FME7_PRGBANK+0
  sty FME7_SELECT
  sta FME7_DATA
  rts
.endproc
.proc fme7_set_chr_8k
  asl a
  asl a
  asl a
  clc
  ldy #FME7_CHRBANK
loop:
  sty FME7_SELECT
  sta FME7_DATA
  adc #1
  iny
  cpy #FME7_CHRBANK+8
  bcc loop
  rts
.endproc

;;
; Tests all banks in one window.


r_VotingPowerInfoV2">

## Struct `VotingPowerInfoV2`

public struct VotingPowerInfoV2 has drop

Fields

validator_index: u64

voting_power: u64

stake: u64

## Constants

Set total_voting_power as 10_000 by convention. Individual voting powers can be interpreted
as easily understandable basis points (e.g., voting_power: 100 = 1%, voting_power: 1 = 0.01%) rather than
opaque quantities whose meaning changes from epoch to epoch as the total amount staked shifts.
Fixing the total voting power allows clients to hardcode the quorum threshold and total_voting power rather
than recomputing these.

const TOTAL_VOTING_POWER: u64 = 10000;

Quorum threshold for our fixed voting power--any message signed by this much voting power can be trusted
up to BFT assumptions

const QUORUM_THRESHOLD: u64 = 6667;

const MAX_VOTING_POWER: u64 = 1000;

const ETotalPowerMismatch: u64 = 1;

const ERelativePowerMismatch: u64 = 2;

const <a href="../sui_system/voting_power


ant implements IResturant
{
    ResturantID : number;
    ResturantName : string;
    ResturantAddress: string;
    ResturantCountry : string;
    constructor(RID : number,RName : string,RAddress : string,RCountry : string)
    {
        this.ResturantID = RID;
        this.ResturantName = RName;
        this.ResturantAddress = RAddress;
        this.ResturantCountry = RCountry;
    }
}
export var resturant = [new Resturant(1,"Honest","Sola","India"),new Resturant(2,"Sankalp","Atlanta","USA"),new Resturant(3,"Jalaram Parotha House","Any","Canada")];import 'whatwg-fetch'

const jsonParsingError = {
  error: 'Parsing Error',
  message: 'Impossible to parse server`s response'
}

const filterStatus = (response: Response) => {
  if (response.status >= 200 && response.status < 300) {
    return response.json()
  } else {
    return response.json()
      .then(j => Promise.reject(j))
      .catch(err => Promise.reject(err instanceof Error ? jsonParsingError : err))
  }
}

interface RequestOptions {
  method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH'
  body?: {}
  headers?: HeadersInit
}

export function fetchJson<T>(url: string, options?: RequestOptions) {

  const jsonBody = (options && options.body) ? JSON.stringify(options.body) : undefined

  const newOptions: any = {
    method: options ? options.method : 'GET',
    body: jsonBody,
    headers: {
      'content-type': 'application/json',
      'pragma': 'no-cache',
      'cache-control': 'no-cache'
    },
    credentials: 'include'
  }

  // tslint:disable:no-any
  return fetch(url, newOptions)
    .then(filterStatus)
    .then((value: any) => value as T)
}
import { Component, OnInit, Input } from '@angular/core';
import { Task } from 'src/app/models/task.interface';

@Component({
  selector: 'app-tasks',
  templateUrl: './tasks.component.html',
  styleUrls: ['./tasks.component.scss']
})
export class TasksComponent implements OnInit {
  @Input()
  listOfTasks: Task[];

  constructor() { }

  ngOnInit() {
  }

  deleteTask(index: number) {
    this.listOfTasks.splice(index, 1);
  }

  export() {
    var fileName = "thyme-tasks-"+ new Date().toLocaleString()  + ".txt";
    var taskLines = "";
    this.listOfTasks.forEach(task => {
      taskLines += task.time + " - " + task.tag + " - " + task.date + "\n";
    });
    this.saveTextAsFile(taskLines, fileName);
  }

  saveTextAsFile (data: BlobPart, filename: string) {
    if (!data) {
      console.error('Console.save: No data')
      return;
    }

    if (!filename) filename = 'console.json'

    var blob = new Blob([data], {type: 'text/plain'});
    var e = document.createEvent('MouseEvents');
    var a = document.createElement('a');

    // FOR IE:
    if (window.navigator && window.navigator.msSaveOrOpenBlob) {
      window.navigator.msSaveOrOpenBlob(blob, filename);
    } else {
      var e = document.createEvent('MouseEvents');
      var a = document.createElement('a');

      a.download = filename;
      a.href = window.URL.createObjectURL(blob);
      a.dataset.downloadurl = ['text/plain', a.download, a.href].join(':');
      e.initEvent('click', true, false);
      a.dispa


a:hover{border-color:transparent #ddd #ddd #ddd}.tabs-left>.nav-tabs>li,.tabs-right>.nav-tabs>li{float:none}.tabs-left>.nav-tabs>li>a,.tabs-right>.nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px}.tabs-left>.nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd}.tabs-left>.nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.tabs-left>.nav-tabs>li>a:hover{border-color:#eee #ddd #eee #eee}.tabs-left>.nav-tabs .active>a,.tabs-left>.nav-tabs .active>a:hover{border-color:#ddd transparent #ddd #ddd;*border-right-color:#fff}.tabs-right>.nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd}.tabs-right>.nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.tabs-right>.nav-tabs>li>a:hover{border-color:#eee #eee #eee #ddd}.tabs-right>.nav-tabs .active>a,.tabs-right>.nav-tabs .active>a:hover{border-color:#ddd #ddd #ddd transparent;*border-left-color:#fff}.nav>.disabled>a{color:#999}.nav>.disabled>a:hover{text-decoration:none;cursor:default;background-color:transparent}.navbar{*position:relative;*z-index:2;margin-bottom:20px;overflow:visible}.navbar-inner{min-height:40px;padding-right:20px;padding-left:20px;background-color:#fafafa;background-image:-moz-linear-gradient(top,#fff,#f2f2f2);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#f2f2f2));background-image:-webkit-linear-gradient(top,#fff,#f2f2f2);background-image:-o-linear-gradient(top,#fff,#f2f2f2);background-image:linear-gradient(to bottom,#fff,#f2f2f2);background-repeat:repeat-x;border:1px solid #d4d4d4;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#fff2f2f2',GradientType=0);*zoom:1;-webkit-box-shadow:0 1px 4px rgba(0,0,0,0.065);-moz-box-shadow:0 1px 4px rgba(0,0,0,0.065);box-shadow:0 1px 4px rgba(0,0,0,0.065)}.navbar-inner:before,.navbar-inner:after{display:table;line-height:0;content:""}.navbar-inner:after{clear:both}.navbar .container{width:auto}.nav-collapse.collapse{height:auto;overflow:visible}.navbar .brand{display:block;float:left;padding:10px 20px 10px;margin-left:-20px;font-size:20px;font-weight:200;color:#777;text-shadow:0 1px 0 #fff}.navbar .brand:hover{text-decoration:none}.navbar-text{margin-bottom:0;line-height:40px;color:#777}.navbar-link{color:#777}.navbar-link:hover{color:#333}.navbar .divider-vertical{height:40px;margin:0 9px;border-right:1px solid #fff;border-left:1px solid #f2f2f2}.navbar .btn,.navbar .btn-group{margin-top:5px}.navbar .btn-group .btn,.navbar .input-


baabaabba
babbbbaabbbbbabbbbbbaabaaabaaa
aaabbbbbbaaaabaababaabababbabaaabbababababaaa
bbbbbbbaaaabbbbaaabbabaaa
bbbababbbbaaaaaaaabbababaaababaabab
ababaaaaaabaaab
ababaaaaabbbaba
baabbaaaabbaaaababbaababb
abbbbabbbbaaaababbbbbbaaaababb
aaaaabbaabaaaaababaa
aaaabbaaaabbaaa
aaaabbaabbaaaaaaabbbabbbaaabbaabaaa
babaaabbbaaabaababbaabababaaab
aabbbbbaabbbaaaaaabbbbbababaaaaabbaaabba";
        assert_eq!(part2(&parse_input(input)), 12);
    }
}
<filename>src/lib/dll_hook/src/structs.rs
use byteorder::{LittleEndian, ReadBytesExt};
use std::{
    io::{self, Read},
    ptr,
};

#[derive(Default, Debug, Copy, Clone)]
#[allow(non_snake_case)]
#[repr(C)]
pub struct ItemOptimizationData {
    pub ElementNo: u32,
    pub Today: u32,
    pub TheGrade: u8,
    pub TheFirstGrade: u8,
    pub LastRepetition: u32,
    pub OldInterval: u32,
    pub UsedInterval: u32,
    pub VirtualUsedInterval: u32,
    pub OI16: u32,
    pub NI16: u32,
    pub OI17: f64,
    pub NI17: f64,
    pub NewInterval: u32,
    pub Repetitions: u16,
    pub NewRepetitions: u16,
    pub Lapses: u16,
    pub NewLapses: u16,
    pub RequestedFI: u8,
    pub Ordinal: f64,
    pub AFactor: f64,
    pub NewAFactor: f64,
    pub UFactor: f64,
    pub NewUFactor: f64,
    pub OldRF: f64,
    pub NewRF: f64,
    pub OldOF: f64,
    pub NewOF: f64,
    pub Cases: u32,
    pub EstimatedFI: f64,
    pub ExpectedFI: f64,
    pub NormalizedGrade: f64,
    pub NGMin: f64,
    pub NGMax: f64,
    pub RepetitionsCategory: f64,
    pub RepetitionsHistory: u32,
    pub ExpR: f64,
    pub UsualR: f64,
    pub PredictedR: f64,
    pub Postpones: u32,
    pub _ItemDifficulty: f64,
}

#[derive(Debug, Copy, Clone)]
#[allow(non_snake_case)]
#[repr(C)]
pub struct RepHistRecord {
    pub ElNo: u32,
    pub Repetitions: u16,
    pub Lapses: u16,
    pub LastInterval: u16,
    pub RepDate: u8,
    pub TheHour: [u8; 6],
    pub Grade: u8,
    pub Difficulty: u16,
    pub PriorityPos: u32,
    pub Postpones: u16,
    pub RecType: u8,
    pub ExpR: u8,
    pub Next: *mut RepHistRecord,
}

impl Default for RepHistRecord {
    fn default() -> Self {
        Self {
            ElNo: 0,
            Repetitions: 0,
            Lapses: 0,
            LastInterval: 0,
            RepDate: 0,
            TheHour: [0; 6],
            Grade: 0,
            Difficulty: 0,
            PriorityPos: 0,
            Postpones: 0,
            RecType: 0,
            ExpR: 0,
            Next: ptr::null_mut(),
        }
    }
}

#[derive(Debug, Copy, Clone)]
#[allow(non_snake_case)]
#[repr(C)]
pub struct ItemInfo {
    pub EType: u8,
    pub EStatus: u8,
    pub TitlePtr: u32,
    pub C


�를 꾸며주는 로직 : Component, html, css
    */
    return constructorFN
}

@Component()
class AppComponent {

    @Input() height: number;

    constructor(){

    }
}export interface IRedisList {
  push(key: string, value: string): Promise<number>;

  pop(key: string): Promise<string>;

  shift(key: string): Promise<string>;

  length(key: string): Promise<number>;

  remove(key: string, value: string): Promise<number>;

  select(key: string, offset: number, limit: number): Promise<Array<string>>;

  dump(key: string): Promise<Array<string>>;
}
import {promisify} from 'util';
import * as fs from 'fs';
import * as path from 'path';

const readFile = promisify(fs.readFile);
const writeFile = promisify(fs.writeFile);
const readdir = promisify(fs.readdir);
const exists = promisify(fs.exists);
const mkdir = promisify(fs.mkdir);
const stat = promisify(fs.stat);

export default async function(topRoot: string, extension?: string): Promise<string[]> {
    let paths = new Array<string>();
    let stack = new Array<[string, Promise<string[]>]>();

    stack.push([topRoot, readdir(topRoot)]);

    while (stack.length > 0) {
        let next = stack.pop();
        if (next === undefined) continue;

        let [root, filesp] = next;

        let files = await filesp;
        files = files.map(f => path.join(root, f));

        let stats = await Promise.all(files.map(f => stat(f)));

        for (let i = 0; i < files.length; i++) {
            if (stats[i].isDirectory()) {
                stack.push([files[i], readdir(files[i])]);
            } else if (extension && files[i].endsWith(extension) || extension === undefined) {
                paths.push(path.relative(topRoot, files[i]));
            }
        }
    }

    paths.sort();
    return paths;
}import { Injectable } from '@angular/core';
import { HttpHeaders, HttpClient } from '@angular/common/http';
import { Observable, of } from 'rxjs';
import { API_URL } from '../config/config';
import { catchError } from 'rxjs/operators';
import { Worker } from '../models/Worker';

const URL_CONTROLLER : string = "/workers";

const httpOptions = {
  headers: new HttpHeaders({
    'Content-Type':  'application/json',
    'Authorization': 'my-auth-token'
  })
};

@Injectable({
  providedIn: 'root'
})
export class WorkerService {

  constructor(private http : HttpClient) { }

  public findAll() : Observable<Worker[]> {
    return this.http.get<Worker[]>( API_URL + URL_CONTROLLER )
      .pipe(
        catchError(this.handleError('findAllWorkers', [] ))
      );
  }

  public findById(id : number) :Observable<Worker> {
    return this.http.get<Worker>(API_URL + URL_CONTROLLER + "/" + id)
      .pipe(
        catchError(this.handleError<Worker>("find Worker By ID : " + id))
      );
  }

  public save(Worker : Worker) : Observable<Worker> {
    return this.http.post<Worker>(API_URL + URL_CONTROLLER, Worker, httpOptions)
      .pipe(
        catchError(this.handleError<Worker>("save Worker"))
      );
  }

  public update(id : number, Worker : Worker) : Observable<a


, (_T("Can't remove items from public group")));
			SOSRV_RETURN_INTERFACE_FUNCTION_RES(OPC_E_PUBLIC, RemoveItems(res, dwNumItems, phServer, ppErrors))
		}

	// remove every item
	for (DWORD i = 0; i < dwNumItems; i++)
	{
		(*ppErrors)[i] = m_me->removeItem(phServer[i]);

		if (FAILED((*ppErrors)[i]))
		{
			res = S_FALSE;
		}
	}

	m_me->onRemoveItems();

	if (m_me->getUpdateRate() == 0)
	{
		// recalc notify all changes
		m_me->calcNotifyAllChanges();
	}

	// free unused blocks in item list of the group and request list of the cyclic transaction
	{
		SOCmnList<SOCmnElement> itemList(m_me->getLeafList());
		itemList.freeUnusedBlocks();
		itemList.autoUnlock();
		SOCmnPointer<SODaSTransaction> tac = m_me->getCyclicTransaction();

		if (!!tac)
		{
			if (tac->getType() == SODaSTransaction::cyclic)
			{
				SOCmnList<SODaSRequest> rList(tac->getRequestList());
				rList.freeUnusedBlocks();
			}
		}
	}
	SOSRV_END_INTERFACE_FUNCTION(RemoveItems(res, dwNumItems, phServer, ppErrors))
} // RemoveItems

//-----------------------------------------------------------------------------
// SetActiveState (interface IOPCItemMgt)
//
// - set activation state of the items
//
// returns:
//      S_OK          - set activation state of all items without error
//      S_FALSE       - some item handles were invalid
//      E_FAIL        - group allready removed
//      E_INVALIDARG  - NULL pointer parameter
//      E_OUTOFMEMORY - can't allocate result buffers
//
STDMETHODIMP SODaSComGroup::SetActiveState(
	IN DWORD dwNumItems,    // number of items
	IN OPCHANDLE* phServer, // items
	IN BOOL bActive,        // activation state
	OUT HRESULT** ppErrors) // errors
{
	SOSRV_BEGIN_INTERFACE_FUNCTION(DA, IOPCItemMgt::SetActiveState, SetActiveState(dwNumItems, phServer, bActive, ppErrors))
	SOSRV_BEGIN_PARAMS_CHECK()
	SOSRV_OUT_PARAM_PTR(ppErrors)
	SOSRV_IN_PARAM(dwNumItems != 0)
	SOSRV_IN_PARAM(phServer != NULL)
	SOSRV_END_PARAMS_CHECK(SetActiveState(res, dwNumItems, phServer, bActive, ppErrors))
	SOCmnPointer<SODaSItem> item;

	// item management standard parameter check
	if (FAILED(res = itemArrayCheckAndAlloc(dwNumItems, phServer, phServer, (void**)ppErrors, ppErrors)))
		SOSRV_RETURN_INTERFACE_FUNCTION(SetActiveState(res, dwNumItems, phServer, bActive, ppErrors))
		// generate initial value read
		SOCmnPointer<SODaSEntry> engine = ::getSODaSEntry();

	SOCmnPointer<SODaSCreator> creator = engine->getCreator();
	SOCmnPointer<SODaSServer> srv = (SODaSServer*)m_me->getParentBranch();
	SOCmnPointer<SODaSTransaction> tac;
	SOCmnList<SODaSRequest> reqList;

	if ((m_me->m_active) && (bActive))
	{
		// create a asynchronous read transaction with the connection id of the cyclic notification transaction
		tac = creator->createTransaction(m_me, SODaSTransaction::refresh, SODaSTransaction::allConnections, 0);
		reqList = tac->getRequestList();
	}

	// set activation state of every item
	for (DWOR


type"])||""} "> ${(null===(t=this.data)||void 0===t?void 0:t["::type"])||""}

          ${"true"===this.allowSchemaDescriptionExpandToggle?J`

                ${"true"===this.schemaDescriptionExpanded?"Single line description":"Multiline description"}

            `:""}

         ${$R(Xe((null===(r=this.data)||void 0===r?void 0:r["::description"])||""))}

 Field

 Type

 Description

          ${this.data?J`
              ${this.generateTree("array"===this.data["::type"]?this.data["::props"]:this.data,this.data["::type"],this.data["::array-type"])}`:""}

    `}generateTree(e,t="object",r="",s="",n="",i=0,o=0,a="",l=!1){var c,p;if("true"===this.schemaHideReadOnly){if("array"===t&&"readonly"===a)return;if(e&&"readonly"===e["::readwrite"])return}if("true"===this.schemaHideWriteOnly){if("array"===t&&"writeonly"===a)return;if(e&&"writeonly"===e["::readwrite"])return}if(!e)return J`

         ${s.replace("::OPTION~","")}
        ${"array"===t?J`<span class='mono-font'> [ ] </span>`:"object"===t?J`<span class='mono-font'> { } </span>`:J`<span class='mono-font'> schema undefined </span>`}

`;const u=null!==(c=e["::type"])&&void 0!==c&&c.startsWith("xxx-of")?i:i+1,d="xxx-of-option"===t||"xxx-of-option"===e["::type"]||s.startsWith("::OPTION")?o:o+1,h=16*d;if(0===Object.keys(e).length)return J`<span class="td key object" style='padding-left:${h}px'>${s}</span>`;let m="",f="",g=!1;if(s.startsWith("::ONE~OF")||s.startsWith("::ANY~OF"))m=s.replace("::","").replace("~"," "),g=!0;else if(s.startsWith("::OPTION")){const e=s.split("~");m=e[1],f=e[2]}else m=s;let y="";if("object"===e["::type"]?y="array"===t?"array of object":e["::dataTypeLabel"]||e["::type"]:"array"===e["::type"]&&(y="array"===


Conical Equal-Area projection.
------------------------------------------- */
export function phi1z(eccent, qs) {
  var sinphi, cosphi, con, com, dphi;
  var phi = asinz(0.5 * qs);
  if (eccent < EPSLN) {
    return phi;
  }

  var eccnts = eccent * eccent;
  for (var i = 1; i <= 25; i++) {
    sinphi = Math.sin(phi);
    cosphi = Math.cos(phi);
    con = eccent * sinphi;
    com = 1 - con * con;
    dphi = 0.5 * com * com / cosphi * (qs / (1 - eccnts) - sinphi / com + 0.5 / eccent * Math.log((1 - con) / (1 + con)));
    phi = phi + dphi;
    if (Math.abs(dphi) <= 1e-7) {
      return phi;
    }
  }
  return null;
}

export var names = ['Albers_Conic_Equal_Area', 'Albers_Equal_Area', 'Albers', 'aea'];
export default {
  init: init,
  forward: forward,
  inverse: inverse,
  names: names,
  phi1z: phi1z
};
var datums = {
  wgs84: {
    towgs84: '0,0,0',
    ellipse: 'WGS84',
    datumName: 'WGS84'
  },
  ch1903: {
    towgs84: '674.374,15.056,405.346',
    ellipse: 'bessel',
    datumName: 'swiss'
  },
  ggrs87: {
    towgs84: '-199.87,74.79,246.62',
    ellipse: 'GRS80',
    datumName: 'Greek_Geodetic_Reference_System_1987'
  },
  nad83: {
    towgs84: '0,0,0',
    ellipse: 'GRS80',
    datumName: 'North_American_Datum_1983'
  },
  nad27: {
    nadgrids: '@conus,@alaska,@ntv2_0.gsb,@ntv1_can.dat',
    ellipse: 'clrk66',
    datumName: 'North_American_Datum_1927'
  },
  potsdam: {
    towgs84: '598.1,73.7,418.2,0.202,0.045,-2.455,6.7',
    ellipse: 'bessel',
    datumName: 'Potsdam Rauenberg 1950 DHDN'
  },
  carthage: {
    towgs84: '-263.0,6.0,431.0',
    ellipse: 'clark80',
    datumName: 'Carthage 1934 Tunisia'
  },
  hermannskogel: {
    towgs84: '577.326,90.129,463.919,5.137,1.474,5.297,2.4232',
    ellipse: 'bessel',
    datumName: 'Hermannskogel'
  },
  mgi: {
    towgs84: '577.326,90.129,463.919,5.137,1.474,5.297,2.4232',
    ellipse: 'bessel',
    datumName: 'Militar-Geographische Institut'
  },
  osni52: {
    towgs84: '482.530,-130.596,564.557,-1.042,-0.214,-0.631,8.15',
    ellipse: 'airy',
    datumName: 'Irish National'
  },
  ire65: {
    towgs84: '482.530,-130.596,564.557,-1.042,-0.214,-0.631,8.15',
    ellipse: 'mod_airy',
    datumName: 'Ireland 1965'
  },


		}
	}
	catch (errorEx &err) {
		XCA_ERROR(err);
		delete newcert;
	}
	delete dlg;
	emit columnsContentChanged();
}

void db_x509::revoke(QModelIndexList indexes)
{
	if (indexes.size() == 0)
		return;
	Revocation *revoke = new Revocation(indexes);
	if (revoke->exec()) {
		do_revoke(indexes, revoke->getRevocation());
	}
	delete revoke;
	emit columnsContentChanged();
}

void db_x509::do_revoke(QModelIndexList indexes, const x509rev &r)
{
	pki_x509 *parent = NULL, *cert, *iss;
	x509revList revlist;

	foreach(QModelIndex idx, indexes) {
		cert = fromIndex<pki_x509>(idx);
		if (!cert)
			continue;
		iss = cert->getSigner();
		if (parent == NULL) {
			parent = iss;
		} else if (parent != iss) {
			parent = NULL;
			break;
		}
	}
	if (!parent) {
		qWarning("%s(%d): Certs have different/no signer",
			 __func__, __LINE__);
	}
	foreach(QModelIndex idx, indexes) {
		cert = fromIndex<pki_x509>(idx);
		if (!cert)
			continue;
		x509rev rev(r);
		rev.setSerial(cert->getSerial());
		cert->setRevoked(rev);
		revlist << rev;
	}
	parent->mergeRevList(revlist);
}

void db_x509::unRevoke(QModelIndexList indexes)
{
	pki_x509 *parent = NULL;
	x509revList revList;

	foreach(QModelIndex idx, indexes) {
		pki_x509 *cert = fromIndex<pki_x509>(idx);
		if (!cert)
			continue;
		pki_x509 *iss = cert->getSigner();
		if (parent == NULL) {
			parent = iss;
		} else if (parent != iss) {
			parent = NULL;
			break;
		}
	}
	if (!parent) {
		qWarning("%s(%d): Certs have different/no issuer\n",
			 __func__, __LINE__);
		return;
	}
	revList = parent->getRevList();

	foreach(QModelIndex idx, indexes) {
		int i;
		x509rev rev;
		pki_x509 *cert = fromIndex<pki_x509>(idx);

		if (!cert)
			continue;

		cert->setRevoked(x509rev());
		rev.setSerial(cert->getSerial());
		i = revList.indexOf(rev);
		if (i != -1)
			revList.takeAt(i);
	}
	parent->setRevocations(revList);
	emit columnsContentChanged();
}

void db_x509::toCertificate(QModelIndex index)
{
	pki_x509 *cert = fromIndex<pki_x509>(index);
	if (!cert)
		return;
	if (!cert->getRefKey() && cert->getSigner() != cert)
		extractPubkey(index);
	cert->pkiSource = transformed;
	newCert(cert);
}

void db_x509::toRequest(QModelIndex idx)
{
	db_x509req *reqs = Database.model<db_x509req>();
	pki_x509 *cert = fromIndex<pki_x509>(idx);
	if (!cert)
		return;

	try {
		pki_x509req *req = new pki_x509req();
		Q_CHECK_PTR(req);
		req->pkiSource = transformed;
		req->setIntName(cert->getIntName());
		req->createReq(cert->getRefKey(), cert->getSubject(),
			cert->getDigest(), cert->getV3ext());
		createSuccess(reqs->insert


g, x,y )
	love.graphics.printf(helpStrKeys, x+20, y+20, 120, "right")
	love.graphics.printf(helpStr, x+150, y+20, HELP_WIDTH-170, "left")
end

function quickHelp.toggle()
	if showQuickHelp then
		showQuickHelp = false
	else
		showQuickHelp = true
		if tutorial and tutorial.f1Event then
			tutorial.f1Event()
		end
	end
end

function quickHelp.setVisibility(vis)
	if vis then
		showQuickHelp = true
	else
		showQuickHelp = false
	end
end

local helpBgThread

function quickHelp.init(maxNumThreads)
	helpBg = love.graphics.newImage( "Images/helpBg.png" )
end

return quickHelp


     return "$s${a.roundToLong()}"
    }

    val fac = 10.0.pow(p).roundToLong()
    var fracF = ((a % 1.0) * fac).roundToLong()
    if (fracF == fac) {
        fracF = 0
        a += 1
    }

    var frac = fracF.toString()
    while (frac.length < p) {
        frac = "0$frac"
    }
    return "$s${a.toLong()}.$frac"
}

expect fun <T> nativeGet(array :Array<T>, index: Int): T
expect fun <T> nativeSet(array: Array<T>, index: Int, element: T)
expect fun nativeSet(array: IntArray, index: Int, element: Int)
expect fun nativeSet(array: ByteArray, index: Int, element: Byte)
expect fun nativeIndexOf(array: IntArray, element: Int): Int
expect fun nativeGet(array :ShortArray, index: Int): Short
expect fun nativeGet(array : IntArray, index: Int): Int
expect fun nativeGet(array : FloatArray, index: Int): Float
expect fun nativeGetOrNull(array: FloatArray, index: Int): Float?
expect fun nativeGet(array : ByteArray, index: Int): Bytepackage com.littlekt.file

import com.littlekt.Context
import com.littlekt.async.await
import com.littlekt.log.Logger
import org.khronos.webgl.ArrayBuffer
import org.khronos.webgl.Uint8Array
import org.w3c.fetch.Response

/**
 * @author Colton Daily
 * @date 11/6/2021
 */
class WebLocalVfs(context: Context, logger: Logger, assetsBaseDir: String) :
    LocalVfs(context, logger, assetsBaseDir) {

    override suspend fun loadRawAsset(rawRef: RawAssetRef) =
        LoadedRawAsset(rawRef, loadRaw(rawRef.url))

    override suspend fun loadSequenceStreamAsset(
        sequenceRef: SequenceAssetRef
    ): SequenceStreamCreatedAsset {
        val buffer = loadRaw(sequenceRef.url)
        val stream = if (buffer != null) JsByteSequenceStream(buffer) else null
        return SequenceStreamCreatedAsset(sequenceRef, stream)
    }

    private suspend fun loadRaw(url: String): ByteBuffer? {
        val data = fetchData(url).map { ByteBufferImpl(Uint8Array(it.arrayBuffer().await<ArrayBuffer>())) }
        return data.getOrNull()
    }

    private suspend fun fetchData(url: String): Result<Response> {
        val response = fetch(url).await<Response>()
        return if (response.ok) {
            Result.success(response)
        } else {
            val error = "Failed loading resource: $url: ${response.status} ${response.statusText}"
            logger.error { error }
            Result.failure(IllegalStateException(error))
        }
    }
}package com.littlekt.graphics.webgpu

import kotlin.js.Promise
import org.khronos.webgl.ArrayBuffer
import org.khronos.webgl.ArrayBufferView
import org.w3c.dom.RenderingContext
import kotlin.js.JsAny
import kotlin.js.JsArray
import kotlin.js.JsNumber
import kotlin.js.definedExternally

external val navigator: Navigator

external class Navigator {
    val gpu: GPU
}
external class GPU {
    /**
     * @return A string indicating a canvas texture format. The value can be `rgba8unorm` or
     *   `bgra8unorm`.
     */
    fun getPreferredCanvasFormat(): String

    fun requestAdapter(options: GPURequestAdapterOptions = definedExternally): Promise<GPUAdapter>
}

external class GPUCanvasContext : RenderingContext {
    fun configure(configuration: GPUCanvasConfiguration)

    fun getCurrentTexture(): GPUTexture
}

open external class GPUAdapter : JsAny {
    val name: String

    val


 pixels in the undistorted image are
 * valid) and 1 (when all the source image pixels are retained in the undistorted image). See
 * stereoRectify for details.
 *
 * @param newImgSize Image size after rectification. By default, it is set to imageSize .
 *
 * @param validPixROI Optional output rectangle that outlines all-good-pixels region in the undistorted
 * image. See roi1, roi2 description in stereoRectify .
 *
 * @param centerPrincipalPoint Optional flag that indicates whether in the new camera matrix the
 * principal point should be at the image center or not. By default, the principal point is chosen to
 * best fit a subset of the source image (determined by alpha) to the corrected image.
 */
export declare function getOptimalNewCameraMatrix(cameraMatrix: InputArray, distCoeffs: InputArray, imageSize: Size, alpha: double, newImgSize?: Size, validPixROI?: any, centerPrincipalPoint?: bool): Mat

export declare function getValidDisparityROI(roi1: Rect, roi2: Rect, minDisparity: int, numberOfDisparities: int, SADWindowSize: int): Rect

/**
 * The function estimates and returns an initial camera matrix for the camera calibration process.
 * Currently, the function only supports planar calibration patterns, which are patterns where each
 * object point has z-coordinate =0.
 *
 * @param objectPoints Vector of vectors of the calibration pattern points in the calibration pattern
 * coordinate space. In the old interface all the per-view vectors are concatenated. See
 * calibrateCamera for details.
 *
 * @param imagePoints Vector of vectors of the projections of the calibration pattern points. In the
 * old interface all the per-view vectors are concatenated.
 *
 * @param imageSize Image size in pixels used to initialize the principal point.
 *
 * @param aspectRatio If it is zero or negative, both $f_x$ and $f_y$ are estimated independently.
 * Otherwise, $f_x = f_y * \texttt{aspectRatio}$ .
 */
export declare function initCameraMatrix2D(objectPoints: InputArrayOfArrays, imagePoints: InputArrayOfArrays, imageSize: Size, aspectRatio?: double): Mat

/**
 * The function computes the joint undistortion and rectification transformation and represents the
 * result in the form of maps for remap. The undistorted image looks like original, as if it is
 * captured with a camera using the camera matrix =newCameraMatrix and zero distortion. In case of a
 * monocular camera, newCameraMatrix is usually equal to cameraMatrix, or it can be computed by
 * [getOptimalNewCameraMatrix] for a better control over scaling. In case of a stereo camera,
 * newCameraMatrix is normally set to P1 or P2 computed by [stereoRectify] .
 *
 * Also, this new camera is oriented differently in the coordinate space, according to R. That, for
 * example, helps to align two heads of a stereo camera so that the epipolar lines on both images
 * become horizontal and have the same y- coordinate (in case of a horizontally aligned stereo camera).
 *
 * The function actually builds the maps for the inverse mapping algorithm that is used by remap. That
 * is, for each pixel `$(u, v)$` in the destination (corrected and rectified) image, the function
 * computes the correspo


_RECEIVER)
                .input(circuit, Tier.ZPM)
                .input(SENSOR_LuV)
                .fluidInputs(Polybenzimidazole.getFluid(L * 2))
                .output(COMPUTATION_HATCH_RECEIVER)
                .cleanroom(CleanroomType.CLEANROOM)
                .duration(200).EUt(VA[LuV]).buildAndRegister();

        ASSEMBLER_RECIPES.recipeBuilder()
                .input(OPTICAL_DATA_HATCH_TRANSMITTER)
                .input(circuit, Tier.ZPM)
                .input(EMITTER_LuV)
                .fluidInputs(Polybenzimidazole.getFluid(L * 2))
                .output(COMPUTATION_HATCH_TRANSMITTER)
                .cleanroom(CleanroomType.CLEANROOM)
                .duration(200).EUt(VA[LuV]).buildAndRegister();

        ASSEMBLER_RECIPES.recipeBuilder()
                .input(POWER_TRANSFORMER[LuV])
                .input(circuit, Tier.LuV, 2)
                .input(wireGtSingle, IndiumTinBariumTitaniumCuprate, 8)
                .input(ULTRA_HIGH_POWER_INTEGRATED_CIRCUIT, 2)
                .fluidInputs(PCBCoolant.getFluid(1000))
                .output(ACTIVE_TRANSFORMER)
                .duration(300).EUt(VA[LuV]).buildAndRegister();

        /*
         * TODO UPSATUPDATE
         * ASSEMBLER_RECIPES.recipeBuilder()
         * .input(HULL[LuV])
         * .input(lens, Diamond)
         * .input(EMITTER_LuV)
         * .input(wireGtSingle, IndiumTinBariumTitaniumCuprate, 2)
         * .output(LASER_OUTPUT_HATCH)
         * .circuitMeta(1)
         * .duration(300).EUt(VA[IV]).buildAndRegister();
         *
         * ASSEMBLER_RECIPES.recipeBuilder()
         * .input(HULL[LuV])
         * .input(lens, Diamond)
         * .input(SENSOR_LuV)
         * .input(wireGtSingle, IndiumTinBariumTitaniumCuprate, 2)
         * .output(LASER_INPUT_HATCH)
         * .circuitMeta(2)
         * .duration(300).EUt(VA[IV]).buildAndRegister();
         */

        ASSEMBLER_RECIPES.recipeBuilder()
                .inputs(TRANSPARENT_CASING.getItemVariant(BlockGlassCasing.CasingType.LAMINATED_GLASS))
                .input(foil, Osmiridium, 2)
                .fluidInputs(Polytetrafluoroethylene.getFluid(L))
                .output(LASER_PIPES[0])
                .cleanroom(CleanroomType.CLEANROOM)
                .duration(100).EUt(VA[IV]).buildAndRegister();
    }
}
package gregtech.loaders.recipe.chemistry;

import gregtech.api.unification.material.Material;

import static gregtech.api.GTValues.*;
import static gregtech.api.recipes.RecipeMaps.*;
import static gregtech.api.unification.material.Materials.*;
import static gregtech.api.unification.ore.OrePrefix.dust;

public class PetrochemRecipes {

    public static void init() {
        moderatelyCrack(Ethane, HydroCrackedEthane, SteamCrackedEthane);
        moderatelyCrack(Ethylene, HydroCrackedEthylene, SteamCrackedEthylene);
        moderatelyCrack(Propene, HydroCrackedPropene, SteamCrackedPropene);
        moderatelyCrack(Propane, HydroCrackedPropane, SteamCrackedPropane);
        moderatelyCrack(Butane, HydroCrackedButane, SteamCrackedButane);
        moderatelyCrack(Butene, HydroCrackedButene, SteamCr


  }

  writeNotNull('fileName', instance.fileName);
  writeNotNull('durationMs', instance.durationMs);
  writeNotNull('fileSize', instance.fileSize);
  return val;
}

const _$AudioSourceTypeEnumMap = {
  AudioSourceType.audioSourceMicrophone: 0,
  AudioSourceType.audioSourceCustom: 1,
  AudioSourceType.audioSourceMediaPlayer: 2,
  AudioSourceType.audioSourceLoopbackRecording: 3,
  AudioSourceType.audioSourceMixedStream: 4,
  AudioSourceType.audioSourceRemoteUser: 5,
  AudioSourceType.audioSourceRemoteChannel: 6,
  AudioSourceType.audioSourceUnknown: 100,
};

const _$AudioRouteEnumMap = {
  AudioRoute.routeDefault: -1,
  AudioRoute.routeHeadset: 0,
  AudioRoute.routeEarpiece: 1,
  AudioRoute.routeHeadsetnomic: 2,
  AudioRoute.routeSpeakerphone: 3,
  AudioRoute.routeLoudspeaker: 4,
  AudioRoute.routeBluetoothDeviceHfp: 5,
  AudioRoute.routeUsb: 6,
  AudioRoute.routeHdmi: 7,
  AudioRoute.routeDisplayport: 8,
  AudioRoute.routeAirplay: 9,
  AudioRoute.routeBluetoothDeviceA2dp: 10,
};

const _$MediaSourceTypeEnumMap = {
  MediaSourceType.audioPlayoutSource: 0,
  MediaSourceType.audioRecordingSource: 1,
  MediaSourceType.primaryCameraSource: 2,
  MediaSourceType.secondaryCameraSource: 3,
  MediaSourceType.primaryScreenSource: 4,
  MediaSourceType.secondaryScreenSource: 5,
  MediaSourceType.customVideoSource: 6,
  MediaSourceType.mediaPlayerSource: 7,
  MediaSourceType.rtcImagePngSource: 8,
  MediaSourceType.rtcImageJpegSource: 9,
  MediaSourceType.rtcImageGifSource: 10,
  MediaSourceType.remoteVideoSource: 11,
  MediaSourceType.transcodedVideoSource: 12,
  MediaSourceType.speechDrivenVideoSource: 13,
  MediaSourceType.unknownMediaSource: 100,
};

const _$ContentInspectResultEnumMap = {
  ContentInspectResult.contentInspectNeutral: 1,
  ContentInspectResult.contentInspectSexy: 2,
  ContentInspectResult.contentInspectPorn: 3,
};

const _$AudioDualMonoModeEnumMap = {
  AudioDualMonoMode.audioDualMonoStereo: 0,
  AudioDualMonoMode.audioDualMonoL: 1,
  AudioDualMonoMode.audioDualMonoR: 2,
  AudioDualMonoMode.audioDualMonoMix: 3,
};

const _$RenderModeTypeEnumMap = {
  RenderModeType.renderModeHidden: 1,
  RenderModeType.renderModeFit: 2,
  RenderModeType.renderModeAdaptive: 3,
};

const _$CameraVideoSourceTypeEnumMap = {
  CameraVideoSourceType.cameraSourceFront: 0,
  CameraVideoSourceType.cameraSourceBack: 1,
  CameraVideoSourceType.videoSourceUnspecified: 2,
};

const _$MetaInfoKeyEnumMap = {
  MetaInfoKey.keyFaceCapture: 0,
};

const _$MediaPlayerSourceTypeEnumMap = {
  MediaPlayerSourceType.mediaPlayerSourceDefault: 0,
  MediaPlayerSourceType.mediaPlayerSourceFullFeatured: 1,
  MediaPlayerSourceType.mediaPlayerSourceSimple: 2,
};

const _$AudioFramePositionEnumMap = {
  AudioFramePosition.audioFramePositionNone: 0,
  AudioFramePosition.audioFramePositionPlayback: 1,
  AudioFramePosition.audioFramePositionRecord: 2,
  AudioFramePosition.audioFramePositionMixed: 4,
  AudioFramePosition.audioFramePositionBeforeMixing: 8,
  AudioFramePosition.audioFramePositionEarMonitoring: 16,
};

const _$VideoFrameProcessModeEnumMap = {
  VideoFrameProcessMode


# Python3

a, b = [int(i) for i in input().split()]

def euclid_gcd(a, b):
    if b == 0:
        return a
    c = a%b
    return euclid_gcd(b, c)

if a>b:
    gcd = euclid_gcd(a, b)
else:
    gcd = euclid_gcd(b, a)

print(a*b//gcd)


-----------------------------------
-- Area: Lower Jeuno
--  NPC: Sweepstox
-- Gobbie Mystery Box
-----------------------------------
---@type TNpcEntity
local entity = {}

local events =
{
    INTRO           = 20055,
    DEFAULT         = 20056,
    HOLDING_ITEM    = 20057,
    TRADE           = 20058,
    BAD_TRADE       = 20059,
    DAILY_COOLDOWN  = 20060,
    HIT_MAX         = 20061,
    RESULT          = 20064,
    KEY_TRADE       = 20065,
    NO_THANKS       = 20066,
    FULL_INV        = 20067,
    O


ant {

	case "String":
		return baml.EncodeUnion(u.BamlEncodeName, "string", *u.variant_String)

	case "ListInt":
		return baml.EncodeUnion(u.BamlEncodeName, "List__int", *u.variant_ListInt)

	case "":
		return nil, fmt.Errorf("invalid union variant: [unset]")
	}

	return nil, fmt.Errorf("invalid union variant: %s", u.variant)
}

func (u Union2ListIntOrString) BamlTypeName() string {
	return "Union2ListIntOrString"
}

func (u Union2ListIntOrString) BamlEncodeName() *cffi.CFFITypeName {
	return &cffi.CFFITypeName{
		Name:      "Union__List__int__string",
		Namespace: cffi.CFFITypeNamespace_TYPES,
	}
}

func (u Union2ListIntOrString) MarshalJSON() ([]byte, error) {
	switch u.variant {

	case "String":
		return json.Marshal(u.variant_String)

	case "ListInt":
		return json.Marshal(u.variant_ListInt)

	}

	return nil, fmt.Errorf("invalid union variant: %s", u.variant)
}

func (u *Union2ListIntOrString) UnmarshalJSON(data []byte) error {
	var err error

	err = json.Unmarshal(data, &u.variant_String)
	if err == nil {
		u.variant = "String"
		return nil
	} else {
		u.variant_String = nil
	}

	err = json.Unmarshal(data, &u.variant_ListInt)
	if err == nil {
		u.variant = "ListInt"
		return nil
	} else {
		u.variant_ListInt = nil
	}

	return fmt.Errorf("invalid union variant: %s", string(data))
}

func Union2ListIntOrString__NewString(v string) Union2ListIntOrString {

	return Union2ListIntOrString{
		variant:        "String",
		variant_String: &v,
	}
}

func (u *Union2ListIntOrString) SetString(v string) {

	u.variant = "String"
	u.variant_String = &v

	u.variant_ListInt = nil

}

func (u *Union2ListIntOrString) IsString() bool {
	return u.variant == "String"
}

func (u *Union2ListIntOrString) AsString() *string {
	if u.variant != "String" {
		return nil
	}
	return u.variant_String
}

func Union2ListIntOrString__NewListInt(v []int64) Union2ListIntOrString {

	return Union2ListIntOrString{
		variant:         "ListInt",
		variant_ListInt: &v,
	}
}

func (u *Union2ListIntOrString) SetListInt(v []int64) {

	u.variant = "ListInt"
	u.variant_ListInt = &v

	u.variant_String = nil

}

func (u *Union2ListIntOrString) IsListInt() bool {
	return u.variant == "ListInt"
}

func (u *Union2ListIntOrString) AsListInt() *[]int64 {
	if u.variant != "ListInt" {
		return nil
	}
	return u.variant_ListInt
}

type Union2ProductOrUser struct {
	variant string

	variant_User *User

	variant_Product *Product
}

func (u *Union2ProductOrUser) Decode(holder *cffi.CFFIValueUnionVariant, typeMap baml.TypeMap) {
	valueHolder := holder.Value
	variantName := holder.VariantName
	switch variantName {
	case "User":
		u.variant = "User"
		value := baml.Decode(valueHolder).Interface().(User)
		u.variant


string',['../a00971.html#ga8f0dced1fd45e67e2d77e80ab93c7af5',1,'glm']]],
  ['tomat3_3025',['toMat3',['../a00962.html#gac228e3fcfa813841804362fcae02b337',1,'glm']]],
  ['tomat4_3026',['toMat4',['../a00962.html#gad0d0c14d7d3c852b41d6a6e4d1da6606',1,'glm']]],
  ['toquat_3027',['toQuat',['../a00962.html#ga7b2be33d948db631c8815e9f2953a451',1,'glm::toQuat(mat< 3, 3, T, Q > const &x)'],['../a00962.html#ga4cf12d456770d716b590fd498bce6136',1,'glm::toQuat(mat< 4, 4, T, Q > const &x)']]],
  ['translate_3028',['translate',['../a00828.html#gac6b494bda2f47615b2fd3e70f3d2c912',1,'glm::translate(mat< 4, 4, T, Q > const &m, vec< 3, T, Q > const &v)'],['../a00950.html#gaf4573ae47c80938aa9053ef6a33755ab',1,'glm::translate(mat< 3, 3, T, Q > const &m, vec< 2, T, Q > const &v)'],['../a00973.html#ga309a30e652e58c396e2c3d4db3ee7658',1,'glm::translate(vec< 3, T, Q > const &v)']]],
  ['transpose_3029',['transpose',['../a00825.html#ga4bedcb9c511484f38fd30a60c95f4679',1,'glm']]],
  ['trianglenormal_3030',['triangleNormal',['../a00953.html#gaff1cb5496925dfa7962df457772a7f35',1,'glm']]],
  ['trunc_3031',['trunc',['../a00803.html#gaf9375e3e06173271d49e6ffa3a334259',1,'glm']]],
  ['tweakedinfiniteperspective_3032',['tweakedInfinitePerspective',['../a00805.html#gaaeacc04a2a6f4b18c5899d37e7bb3ef9',1,'glm::tweakedInfinitePerspective(T fovy, T aspect, T near)'],['../a00805.html#gaf5b3c85ff6737030a1d2214474ffa7a8',1,'glm::tweakedInfinitePerspective(T fovy, T aspect, T near, T ep)']]],
  ['two_5fover_5fpi_3033',['two_over_pi',['../a00899.html#ga74eadc8a211253079683219a3ea0462a',1,'glm']]],
  ['two_5fover_5froot_5fpi_3034',['two_over_root_pi',['../a00899.html#ga5827301817640843cf02026a8d493894',1,'glm']]],
  ['two_5fpi_3035',['two_pi',['../a00899.html#gaa5276a4617566abcfe49286f40e3a256',1,'glm']]],
  ['two_5fthirds_3036',['two_thirds',['../a00899.html#ga9b4d2f4322edcf63a6737b92a29dd1f5',1,'glm']]]
];
var searchData=
[
  ['next_5ffloa


Add adds field f to the field set s.
// If multiples is set, f appears multiple times
// and is treated as a collision.
func (s fieldSet) add(f *Var, multiples bool) fieldSet {
	if s == nil {
		s = make(fieldSet)
	}
	key := f.Id()
	// if f is not in the set, add it
	if !multiples {
		if _, found := s[key]; !found {
			s[key] = f
			return s
		}
	}
	s[key] = nil // collision
	return s
}

// A methodSet is a set of methods and name collisions.
// A collision indicates that multiple methods with the
// same unique id appeared.
type methodSet map[string]*Selection // a nil entry indicates a name collision

// Add adds all functions in list to the method set s.
// If multiples is set, every function in list appears multiple times
// and is treated as a collision.
func (s methodSet) add(list []*Func, index []int, indirect bool, multiples bool) methodSet {
	if len(list) == 0 {
		return s
	}
	if s == nil {
		s = make(methodSet)
	}
	for i, f := range list {
		key := f.Id()
		// if f is not in the set, add it
		if !multiples {
			// TODO(gri) A found method may not be added because it's not in the method set
			// (!indirect && ptrRecv(f)). A 2nd method on the same level may be in the method
			// set and may not collide with the first one, thus leading to a false positive.
			// Is that possible? Investigate.
			if _, found := s[key]; !found && (indirect || !ptrRecv(f)) {
				s[key] = &Selection{MethodVal, nil, f, concat(index, i), indirect}
				continue
			}
		}
		s[key] = nil // collision
	}
	return s
}

// ptrRecv reports whether the receiver is of the form *T.
// The receiver must exist.
func ptrRecv(f *Func) bool {
	_, isPtr := deref(f.typ.(*Signature).recv.typ)
	return isPtr
}

// byUniqueName function lists can be sorted by their unique names.
type byUniqueName []*Selection

func (a byUniqueName) Len() int           { return len(a) }
func (a byUniqueName) Less(i, j int) bool { return a[i].obj.Id() < a[j].obj.Id() }
func (a byUniqueName) Swap(i, j int)      { a[i], a[j] = a[j], a[i] }
// Copyright 2013 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

package types

import (
	"fmt"
	"go/parser"
	"go/token"
)

// Eval returns the type and, if constant, the value for the
// expression expr, evaluated at position pos of package pkg,
// which must have been derived from type-checking an AST with
// complete position information relative to the provided file
// set.
//
// If the expression contains function literals, their bodies
// are ignored (i.e., the bodies are not type-checked).
//
// If pkg == nil, the Universe scope is used and the provided
// position pos is ignored. If pkg != nil, and pos is invalid,
// the package scope is used. Otherwise, pos must belong to the
// package.
//
// An error is returned if pos is not within the package or
// if the node cannot be evaluated.
//
// Note: Eval should not be used instead of running Check to compute
// types and values, but in addition to Check. Eval will re-evaluate
// its argument each time, and it also does not know about the context
// in which an expression is used (e.g., an assignment). Thus, top-
// level untyped constants will return an untyped type rather then the
// respective


steners for all the SeekBar
        fillHueBar.setOnSeekBarChangeListener(this)
        fillAlphaBar.setOnSeekBarChangeListener(this)

        strokeWidthBar.setOnSeekBarChangeListener(this)
        strokeHueBar.setOnSeekBarChangeListener(this)
        strokeAlphaBar.setOnSeekBarChangeListener(this)

        strokePatternSpinner.onItemSelectedListener = this
    }

    private fun getSelectedPattern(pos: Int): List<PatternItem>? = patterns[pos].second

    override fun onItemSelected(parent: AdapterView<*>, view: View, pos: Int, id: Long) {
        if (parent.id == R.id.strokePatternSpinner) {
            circles.map { it.setStrokePattern(getSelectedPattern(pos)) }
        }
    }

    override fun onNothingSelected(parent: AdapterView<*>) {
        // Don't do anything here.
    }

    override fun onStopTrackingTouch(seekBar: SeekBar) {
        // Don't do anything here.
    }

    override fun onStartTrackingTouch(seekBar: SeekBar) {
        // Don't do anything here.
    }

    override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) {
        // Update the fillColorArgb if the SeekBars for it is changed, otherwise keep the old value
        fillColorArgb = when (seekBar) {
            fillHueBar -> Color.HSVToColor(Color.alpha(fillColorArgb),
                    floatArrayOf(progress.toFloat(), 1f, 1f))
            fillAlphaBar -> Color.argb(progress, Color.red(fillColorArgb),
                    Color.green(fillColorArgb), Color.blue(fillColorArgb))
            else -> fillColorArgb
        }

        // Set the strokeColorArgb if the SeekBars for it is changed, otherwise keep the old value
        strokeColorArgb = when (seekBar) {
            strokeHueBar -> Color.HSVToColor(Color.alpha(strokeColorArgb),
                    floatArrayOf(progress.toFloat(), 1f, 1f))
            strokeAlphaBar -> Color.argb(progress, Color.red(strokeColorArgb),
                    Color.green(strokeColorArgb), Color.blue(strokeColorArgb))
            else -> strokeColorArgb
        }

        // Apply the style change to all the circles.
        circles.map { it.onStyleChange() }
    }

    private fun onMarkerMoved(marker: Marker) {
        circles.forEach { if (it.onMarkerMoved(marker)) return }
    }

    /** Listener for the Clickable CheckBox, to set if all the circles can be click */
    fun toggleClickability(view: View) {
        circles.map { it.setClickable((view as CheckBox).isChecked) }
    }
}

/**
 * Extension function to find the distance from this to another LatLng object
 */
private fun LatLng.distanceFrom(other: LatLng): Double {
    val result = FloatArray(1)
    Location.distanceBetween(latitude, longitude, other.latitude, other.longitude, result)
    return result[0].toDouble()
}

private fun LatLng.getPointAtDistance(distance: Double): LatLng {
    val radiusOfEarth = 6371009.0
    val radiusAngle = (Math.toDegrees(distance / radiusOfEarth)
            / Math.cos(Math.toRadians(latitude)))
    return LatLng(latitude, longitude + radiusAngle)
}plugins {
    id("com.android.application")
    id("org.jetbrains.kotlin.android")
}

android {
    namespace = "com.google.android.gms.samples.pay"
    compileSdk = 34

    defaultConfig {
        applicationId = "com.google.android.gms.samples.pay"
        minSdk = 21
        targetSdk = 34
        versionCode = 1
        versionName = "1.0"

        testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
        vectorDrawables {
            useSupportLibrary = true
        }
    }

    buildTypes {
        release {
            isShrinkResources


[17986] = '?|復仇者科林|',
  [17993] = '?|血守衛保衛者|',
  [17994] = '?|血守衛鷹獵者|',
  [18003] = 'A|隱士阿浩恩|In the middle of the courtyard, next to a big statue.',
  [18004] = 'A|復仇者伊達爾|Next to a staircase, near a blacksmith forge.',
  [18005] = 'A|哈爾隆恩|Up some steps, next to 2 tables with a bunch of potions on them.',
  [18006] = 'A|諾納尼|Up some steps, next to 2 tables with a bunch of potions on them.',
  [18007] = 'A|洛安瑪|Next to a cookpot and some fish hanging on the wall.',
  [18008] = 'A|伊庫堤|In front of a table, next to the mailbox.',
  [18009] = 'A|保魯|In the first house to the left as you enter Orebor Harborage from the road.',
  [18010] = 'A|瑪克吐|To the left of the Wanted Poster.',
  [18011] = 'H|祖瑞伊|Standing next to a bonfire.',
  [18012] = 'H|瑞伏基|Standing next to a big drum.',
  [18013] = 'H|暗影獵人丹傑|Standing at the top of the inn.',
  [18014] = 'H|巫醫托卡斯|Standing at the bottom of a big troll hut thing, next to some baby murlocs.',
  [18015] = 'H|坎巴利卡|Standing in a troll hut.',
  [18016] = 'H|瑪卡莎|Standing in a troll hut.',
  [18017] = 'H|先知賈尼迪|Standing in a troll hut.',
  [18018] = 'H|祖賈亞|Standing next to a big bonfire.',
  [18019] = 'A|提莫斯·丹尼爾|To the left as you enter town.',
  [18020] = '?|防衛者艾崔利爾|',
  [18033] = '?|黑色座狼|',
  [18035] = 'H|斥候傑巴|Laying on the dirt, next to a small lake.',
  [18037] = '?|戰槌術士|',
  [18043] = '?|激動的獸人靈魂|',
  [18044] = '?|納吉斯·法亞司|',
  [18046] = '?|洛迦海卡斯特|',
  [18062] = '?|暴怒的粉碎者|',
  [18063] = 'H|卡爾洛斯|Standing next to a bonfire.',
  [18064] = '?|戰槌薩滿|',
  [18065] = '?|戰槌蠻卒|',
  [18066] = 'H|先知可庫許|Standing around a blue glowing circle on the ground.',
  [18067] = 'H|先知科霍克|Standing around a blue glowing


{pc}
	add r0, r3, #0x1c
	mov r1, r1, lsl #0x8
	bl NNSi_SndFaderSet
	add sp, sp, #0x4
	ldmia sp!, {pc}

	arm_func_start NNS_SndPlayerSetInitialVolume
NNS_SndPlayerSetInitialVolume: ; 0x020C0F30
	ldr r0, [r0, #0x0]
	cmp r0, #0x0
	strneb r1, [r0, #0x40]
	bx lr

	arm_func_start NNS_SndPlayerSetVolume
NNS_SndPlayerSetVolume: ; 0x020C0F40
	ldr r0, [r0, #0x0]
	cmp r0, #0x0
	strneb r1, [r0, #0x41]
	bx lr

	arm_func_start NNS_SndPlayerCountPlayingSeqByPlayerNo
NNS_SndPlayerCountPlayingSeqByPlayerNo: ; 0x020C0F50
	mov r1, #0x24
	mul r1, r0, r1
	ldr r0, _020C0F64 ; =sPlayer + 0x8
	ldrh r0, [r0, r1]
	bx lr
	.balign 4
_020C0F64: .word sPlayer + 0x8

	arm_func_start NNS_SndHandleReleaseSeq
NNS_SndHandleReleaseSeq: ; 0x020C0F68
	ldr r2, [r0, #0x0]
	cmp r2, #0x0
	movne r1, #0x0
	strne r1, [r2, #0x0]
	strne r1, [r0, #0x0]
	bx lr

	arm_func_start NNS_SndHandleInit
NNS_SndHandleInit: ; 0x020C0F80
	mov r1, #0x0
	str r1, [r0, #0x0]
	bx lr

	arm_func_start NNS_SndPlayerPause
NNS_SndPlayerPause: ; 0x020C0F8C
	ldr ip, _020C0F98 ; =NNSi_SndPlayerPause
	ldr r0, [r0, #0x0]
	bx r12
	.balign 4
_020C0F98: .word NNSi_SndPlayerPause

	arm_func_start NNS_SndPlayerStopSeqAll
NNS_SndPlayerStopSeqAll: ; 0x020C0F9C
	stmdb sp!, {r4-r6,lr}
	ldr r4, _020C0FD8 ; =sSeqPlayer
	mov r6, r0
	mov r5, #0x0
_020C0FAC:
	ldrb r0, [r4, #0x2c]
	cmp r0, #0x0
	beq _020C0FC4
	mov r0, r4
	mov r1, r6
	bl NNSi_SndPlayerStopSeq
_020C0FC4:
	add r5, r5, #0x1
	cmp r5, #0x10
	add r4, r4, #0x44
	blt _020C0FAC
	ldmia sp!, {r4-r6,pc}
	.balign 4
_020C0FD8: .word sSeqPlayer

	arm_func_start NNS_SndPlayerStopSeqBySeqNo
NNS_SndPlayerStopSeqBySeqNo: ; 0x020C0FDC
	stmdb sp!, {r4-r7,lr}
	sub sp, sp, #0x4
	ldr r4, _020C103C ; =sSeqPlayer
	mov r7, r0
	mov r6, r1
	m