, 0, 0, 0.11);
  box-shadow: -1px 1px 1px 0px rgba(0, 0, 0, 0.11); }

.muted-cards-2 .card:not(:hover) {
  background: #fcfcfc;
  border-top-color: transparent;
  border-bottom-color: transparent;
  border-left-color: transparent;
  border-right-color: transparent;
  border-radius: 0; }
  .muted-cards-2 .card:not(:hover) .js-move {
    visibility: hidden; }
  .muted-cards-2 .card:not(:hover) .btn-outline-primary,
  .muted-cards-2 .card:not(:hover) .btn-outline-success,
  .muted-cards-2 .card:not(:hover) .btn-outline-danger {
    border-color: #919191;
    color: #919191; }
  .muted-cards-2 .card:not(:hover) h1 a.text-primary, .muted-cards-2 .card:not(:hover) .h1 a.text-primary, .muted-cards-2 .card:not(:hover) h2 a.text-primary, .muted-cards-2 .card:not(:hover) .h2 a.text-primary, .muted-cards-2 .card:not(:hover) h3 a.text-primary, .muted-cards-2 .card:not(:hover) .h3 a.text-primary, .muted-cards-2 .card:not(:hover) h4 a.text-primary, .muted-cards-2 .card:not(:hover) .h4 a.text-primary, .muted-cards-2 .card:not(:hover) h5 a.text-primary, .muted-cards-2 .card:not(:hover) .h5 a.text-primary, .muted-cards-2 .card:not(:hover) h6 a.text-primary, .muted-cards-2 .card:not(:hover) .h6 a.text-primary {
    color: #919191 !important; }
.muted-cards-2 .card:hover {
  background: #fcfcfc;
  border-color: rgba(0, 0, 0, 0.1);
  -webkit-box-shadow: -1px 1px 1px 0px rgba(0, 0, 0, 0.11);
  -moz-box-shadow: -1px 1px 1px 0px rgba(0, 0, 0, 0.11);
  box-shadow: -1px 1px 1px 0px rgba(0, 0, 0, 0.11); }

.muted-cards-3 .card:not(:hover) .js-move {
  visibility: hidden; }
.muted-cards-3 .card:hover {
  background: rgba(245, 245, 245, 0.3);
  border-color: rgba(0, 0, 0, 0.1);
  -webkit-box-shadow: -1px 1px 1px 0px rgba(0, 0, 0, 0.11);
  -moz-box-shadow: -1px 1px 1px 0px rgba(0, 0, 0, 0.11);
  box-shadow: -1px 1px 1px 0px rgba(0, 0, 0, 0.11); }

.btn .spinner-border {
  margin-top: -2px; }

label.control-label {
  font-weight: bold !important; }

.help-tooltip:before {
  content: "\F0BA5";
  display: inline-block;
  font: normal normal normal 24px/1 "Material Design Icons";
  font-size: inherit;
  text-rendering: auto;
  line-height: inherit;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  color: #919191;
  font-size: 1.2em;
  float: right;
  margin-top: -0.1em;
  margin-inline-start: 0.2em; }

@media screen and (max-width: 575px) {
  .btn-only-icon {
    padding-inline-start: 6px;
    padding-inline-end: 6px; } }


b.ne	439684 <__parse_one_specwc+0x41c>  // b.any
  4396f4:	910006b5 	add	x21, x21, #0x1
  4396f8:	b9003274 	str	w20, [x19, #48]
  4396fc:	17ffffe2 	b	439684 <__parse_one_specwc+0x41c>
  439700:	52800060 	mov	w0, #0x3                   	// #3
  439704:	b9003660 	str	w0, [x19, #52]
  439708:	17ffffdc 	b	439678 <__parse_one_specwc+0x410>
  43970c:	d503201f 	nop
  439710:	52810000 	mov	w0, #0x800                 	// #2048
  439714:	b9003660 	str	w0, [x19, #52]
  439718:	17ffffd8 	b	439678 <__parse_one_specwc+0x410>
  43971c:	d503201f 	nop
  439720:	7101b03f 	cmp	w1, #0x6c
  439724:	54ffe501 	b.ne	4393c4 <__parse_one_specwc+0x15c>  // b.any
  439728:	39403260 	ldrb	w0, [x19, #12]
  43972c:	321e0000 	orr	w0, w0, #0x4
  439730:	39003260 	strb	w0, [x19, #12]
  439734:	91002120 	add	x0, x9, #0x8
  439738:	b9400521 	ldr	w1, [x9, #4]
  43973c:	7101b03f 	cmp	w1, #0x6c
  439740:	54ffe421 	b.ne	4393c4 <__parse_one_specwc+0x15c>  // b.any
  439744:	17ffffb1 	b	439608 <__parse_one_specwc+0x3a0>
  439748:	b9400920 	ldr	w0, [x9, #8]
  43974c:	91002129 	add	x9, x9, #0x8
  439750:	f9001fa9 	str	x9, [x29, #56]
  439754:	5100c000 	sub	w0, w0, #0x30
  439758:	7100241f 	cmp	w0, #0x9
  43975c:	540009e9 	b.ls	439898 <__parse_one_specwc+0x630>  // b.plast
  439760:	b9002a74 	str	w20, [x19, #40]
  439764:	910006b5 	add	x21, x21, #0x1
  439768:	91000694 	add	x20, x20, #0x1
  43976c:	f9001fa9 	str	x9, [x29, #56]
  439770:	17fffef9 	b	439354 <__parse_one_specwc+0xec>
  439774:	d503201f 	nop
  439778:	9100e3a0 	add	x0, x29, #0x38
  43977c:	97fffe8b 	bl	4391a8 <read_int>
  439780:	340000a0 	cbz	w0, 439794 <__parse_one_specwc+0x52c>
  439784:	f9401fa1 	ldr	x1, [x


 card
import { HTMLAttributes, MouseEvent } from 'react'

type ButtonType = 'default' | 'primary' | 'danger' | 'link'
type ButtonHTMLType = 'submit' | 'button' | 'reset'

interface BaseButtonProps extends HTMLAttributes<HTMLButtonElement> {
  className: string
  disabled: boolean
  onClick: (event: MouseEvent<HTMLButtonElement>) => void
  type: ButtonHTMLType
}
interface ButtonProps extends HTMLAttributes<HTMLButtonElement> {
  type?: ButtonType
  plain?: boolean
  mini?: boolean
  block?: boolean
  round?: boolean
  loading?: boolean
  /** 仅web 用。原生的 type */
  htmlType?: ButtonHTMLType
  /** 仅小程序 */
  formType?: string
  /** 仅小程序 */
  openType?: string
  /** 返回 Promise 才有 loading */
  onClick?: (event: MouseEvent<HTMLButtonElement>) => void
  disabled?: boolean
  minWidth?: string
}
interface ButtonTimeProps extends ButtonProps {
  /** 计时的时间 */
  time?: number
  /** 函数需要返回 bool 值, true 开始计时，false 不计时 */
  onClick: (event: MouseEvent<HTMLButtonElement>) => boolean | Promise<void>
}

export type { BaseButtonProps, ButtonProps, ButtonTimeProps }
import Vector2 from "./system/Vector2";
import Map from "./Map";
import PointsList from "./PointsList";
import Game from "./Game";

export default class Points {

  public delay: number = 0;
  public life: number = 2;
  public visible: boolean = false;
  public parent: PointsList;

constructor(
  public pointsList: PointsList,
  public position: Vector2,
  public val: number,
  public game: Game
  ) {

    }

  update(delta: number): void {
    this.delay -= delta;
    if (this.delay <= 0)
      {
      this.life -= delta;
      this.visible = true;
      }
    if (this.life <= 0) { this.pointsList.remove(this); }
  };

  draw(): void {
    if (this.visible)
      this.game.canvas.drawText(String(this.val), new Vector2 (this.game.map.x + this.position.x, this.game.map.y + this.position.y), Vector2.zero, "white", "center", "Verdana", "22px bold");
  };

}
import { connect } from 'react-redux';
import ActionTypes, { Dispatch } from '../actionTypes';
import { CharacterState, State } from '../reducers';
import CharacterDetails from './CharacterDetailsContainer';
import CharacterTiles from './CharacterTilesContainer';
import CharacterView from './CharacterView';

const tilesViewProps = {
  title: 'Liste des super héros',
  component: CharacterTiles
};

const detailsViewProps = {
  title: 'Fiche d\'identité',
  component: CharacterDetails
};

/**
 * Select the view to render:
 *  - the character details if a character is selected
 *  - the character tiles otherwise
 */
export default connect(
  (state: CharacterState) => state.characters.selectedItem ? detailsViewProps : tilesViewProps,
  (dispatch: Dispatch<{ characters: State }>) => ({
    onNavigationRequested: (state: string | null): void => dispatch({
      type: ActionTypes.NAVIGATION_REQUESTED,
      payload: state
    })
  }),
  (stateProps, dispatchProps) => ({
    ...stateProps,
    ...dispatchProps
  })
)(CharacterView);
import 'reflect-metadata';
export function Property() {
    return function (target: Object, propertyKey: string) {
        const type = Reflect.getMetadata('design:type', target, propertyKey);
        const typeName = type.name;
        if (!target['$$properties']) {
            target['$$properties'] = {};
        }
        if (!(propertyKey in target['$$properties'])) {
            let attr;
            attr = getPropertyTypeAttr(type, attr, propertyKey, typeName);
            Object.defineProperty(target['$$properties'], propertyKey, attr);
        }
        if (!target['$$properties_name']) {
            target['$$properties_name'] = {};
        }
        if (!(propertyK


eInfo _lineInfo):
            tag(_tag),
            lineInfo(_lineInfo)
        {}

        std::string tag;
        SourceLineInfo lineInfo;
    };

} // end namespace Catch

#endif // CATCH_TAG_ALIAS_HPP_INCLUDED

#ifndef CATCH_TAG_ALIAS_AUTOREGISTRAR_HPP_INCLUDED
#define CATCH_TAG_ALIAS_AUTOREGISTRAR_HPP_INCLUDED

namespace Catch {

    struct RegistrarForTagAliases {
        RegistrarForTagAliases( char const* alias, char const* tag, SourceLineInfo const& lineInfo );
    };

} // end namespace Catch

#define CATCH_REGISTER_TAG_ALIAS( alias, spec ) \
    CATCH_INTERNAL_START_WARNINGS_SUPPRESSION \
    CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS \
    namespace{ Catch::RegistrarForTagAliases INTERNAL_CATCH_UNIQUE_NAME( AutoRegisterTagAlias )( alias, spec, CATCH_INTERNAL_LINEINFO ); } \
    CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION

#endif // CATCH_TAG_ALIAS_AUTOREGISTRAR_HPP_INCLUDED

#ifndef CATCH_TEMPLATE_TEST_MACROS_HPP_INCLUDED
#define CATCH_TEMPLATE_TEST_MACROS_HPP_INCLUDED

// We need this suppression to leak, because it took until GCC 10
// for the front end to handle local suppression via _Pragma properly
// inside templates (so `TEMPLATE_TEST_CASE` and co).
// **THIS IS DIFFERENT FOR STANDARD TESTS, WHERE GCC 9 IS SUFFICIENT**
#if defined(__GNUC__) && !defined(__clang__) && !defined(__ICC) && __GNUC__ < 10
#pragma GCC diagnostic ignored "-Wparentheses"
#endif

#ifndef CATCH_TEST_MACROS_HPP_INCLUDED
#define CATCH_TEST_MACROS_HPP_INCLUDED

#ifndef CATCH_TEST_MACRO_IMPL_HPP_INCLUDED
#define CATCH_TEST_MACRO_IMPL_HPP_INCLUDED

#ifndef CATCH_ASSERTION_HANDLER_HPP_INCLUDED
#define CATCH_ASSERTION_HANDLER_HPP_INCLUDED

#ifndef CATCH_DECOMPOSER_HPP_INCLUDED
#define CATCH_DECOMPOSER_HPP_INCLUDED

#ifndef CATCH_COMPARE_TRAITS_HPP_INCLUDED
#define CATCH_COMPARE_TRAITS_HPP_INCLUDED

#include <type_traits>

namespace Catch {
    namespace Detail {

#if defined( __GNUC__ ) && !defined( __clang__ )
#    pragma GCC diagnostic push
    // GCC likes to complain about comparing bool with 0, in the decltype()
    // that defines the comparable traits below.
#    pragma GCC diagnostic ignored "-Wbool-compare"
    // "ordered comparison of pointer with integer zero" same as above,
    // but it does not have a separate warning flag to suppress
#    pragma GCC diagnostic ignored "-Wextra"
    // Did you know that comparing floats with `0` directly
    // is super-duper dangerous in unevaluated context?
#    pragma GCC diagnostic ignored "-Wfloat-equal"
#endif

#if defined( __clang__ )
#    pragma clang diagnostic push
    // Did you know that comparing floats with `0` directly
    // is super-duper dangerous in unevaluated context?
#    pragma clang diagnostic ignored "-Wfloat-equal"
#endif

#define CATCH_DEFINE_COMPARABLE_TRAIT( id, op )                               \
    template <typename, typename, typename = void>                            \
    struct is_##id##_comparable : std::false_type {};                         \
    template <typename T, typename U>                                         \
    struct is_##id##_comparable<                                              \
        T,                                                                    \
        U,                                                                    \
        void_t<decltype( std::declval<T>() op std::declval<U>() )>>           \
        : std::true_type {};                                                  \
    template <typename, typename = void>                                      \


ENGTH_BIT_128)

    /**
     * Creates a new [ParallelHash128] [Digest] instance with a non-default output
     * length.
     *
     * @param [S] A user selected customization bit string to define a variant
     *   of the function. When no customization is desired, [S] is set to an
     *   empty or null value. (e.g. "My Customization".encodeToByteArray())
     * @param [B] The block size for the inner hash function in bytes
     * @param [outputLength] The number of bytes returned when [digest] is invoked
     *
     * @throws [InvalidParameterException] If [B] is less than 1, or [outputLength] is negative
     * */
    public constructor(
        S: ByteArray?,
        B: Int,
        outputLength: Int,
    ): this(S, B, outputLength, xOfMode = false)

    @Throws(InvalidParameterException::class)
    private constructor(
        S: ByteArray?,
        B: Int,
        outputLength: Int,
        xOfMode: Boolean,
    ): super(
        S = S,
        B = B,
        xOfMode = xOfMode,
        bitStrength = BIT_STRENGTH_128,
        digestLength = outputLength,
    )

    private constructor(other: ParallelHash128): super(other)

    public override fun copy(): ParallelHash128 = ParallelHash128(this)

    public companion object: SHAKEXofFactory<ParallelHash128>() {

        /**
         * Produces a new [Xof] (Extendable-Output Function) for [ParallelHash128]
         *
         * @param [B] The block size for the inner hash function in bytes
         *
         * @throws [InvalidParameterException] If [B] is less than 1
         * */
        @JvmStatic
        public inline fun xOf(B: Int): Xof<ParallelHash128> = xOf(S = null, B = B)

        /**
         * Produces a new [Xof] (Extendable-Output Function) for [ParallelHash128]
         *
         * @param [S] A user selected customization bit string to define a variant
         *   of the function. When no customization is desired, [S] is set to an
         *   empty or null value. (e.g. "My Customization".encodeToByteArray())
         * @param [B] The block size for the inner hash function in bytes
         *
         * @throws [InvalidParameterException] If [B] is less than 1
         * */
        @JvmStatic
        public fun xOf(S: ByteArray?, B: Int): Xof<ParallelHash128> {
            return SHAKEXof(ParallelHash128(S = S, B = B, outputLength = 0, xOfMode = true))
        }
    }
}
/*
 * Copyright (c) 2023 KotlinCrypto
 *
 * 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
 *
 *     https://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.kotlincrypto.hash.sha1

import org.kotlincrypto.core.digest.Digest
import org.kotlincrypto.hash.DigestUnitTest
import kotlin.test.Test

open class SHA1UnitTest: DigestUnitTest() {
    override val digest: Digest = SHA1()
    final override val expectedResetHash: String = "da39a3ee5e6b4b0d3255bfef95601890afd80709"
    final override val expectedMultiBlockHash: String = "46b459054f55a0e41f8810ae


 a8 as getVNodeProp, af as resolveFieldData, ce as invokeElementMethod, a2 as getAttribute, cf as getNextElementSibling, Y as getOuterWidth, cg as getPreviousElementSibling, D as script$z, ar as script$A, a0 as script$B, bb as script$D, ac as isNotEmpty, bk as withModifiers, W as getOuterHeight, ch as _default, ae as ZIndex, a3 as focus, ai as addStyle, ak as absolutePosition, al as ConnectedOverlayScrollHandler, am as isTouchDevice, ci as FilterOperator, aq as script$E, cj as FocusTrap, i as createVNode, au as Transition, ck as withKeys, cl as getIndex, s as script$G, cm as isClickable, cn as clearSelection, co as localeComparator, cp as sort, cq as FilterService, c6 as FilterMatchMode, V as findSingle, bO as findIndexInList, bP as find, cr as exportCSV, X as getOffset, cs as getHiddenElementOuterWidth, ct as getHiddenElementOuterHeight, cu as reorderArray, cv as getWindowScrollTop, cw as removeClass, cx as addClass, ah as isEmpty, ap as script$H, as as script$I } from "./index-CoOvI8ZH.js";
import { s as script$C, a as script$F } from "./index-D4DWQPPQ.js";
var script$r = {
  name: "ArrowDownIcon",
  "extends": script$s
};
var _hoisted_1$i = /* @__PURE__ */ createBaseVNode("path", {
  "fill-rule": "evenodd",
  "clip-rule": "evenodd",
  d: "M6.99994 14C6.91097 14.0004 6.82281 13.983 6.74064 13.9489C6.65843 13.9148 6.58387 13.8646 6.52133 13.8013L1.10198 8.38193C0.982318 8.25351 0.917175 8.08367 0.920272 7.90817C0.923368 7.73267 0.994462 7.56523 1.11858 7.44111C1.24269 7.317 1.41014 7.2459 1.58563 7.2428C1.76113 7.23971 1.93098 7.30485 2.0594 7.42451L6.32263 11.6877V0.677419C6.32263 0.497756 6.394 0.325452 6.52104 0.198411C6.64808 0.0713706 6.82039 0 7.00005 0C7.17971 0 7.35202 0.0713706 7.47906 0.198411C7.6061 0.325452 7.67747 0.497756 7.67747 0.677419V11.6877L11.9407 7.42451C12.0691 7.30485 12.2389 7.23971 12.4144 7.2428C12.5899 7.2459 12.7574 7.317 12.8815 7.44111C13.0056 7.56523 13.0767 7.73267 13.0798 7.90817C13.0829 8.08367 13.0178 8.25351 12.8981 8.38193L7.47875 13.8013C7.41621 13.8646 7.34164 13.9148 7.25944 13.9489C7.17727 13.983 7.08912 14.0004 7.00015 14C7.00012 14 7.00009 14 7.00005 14C7.00001 14 6.99998 14 6.99994 14Z",
  fill: "currentColor"
}, null, -1);
var _hoisted_2$f = [_hoisted_1$i];
function render$p(_ctx, _cache, $props, $setup, $data, $options) {
  ret


--
-- _premake_init.lua
--
-- Prepares the runtime environment for the add-ons and user project scripts.
--
-- Copyright (c) 2012-2015 Jason Perkins and the Premake project
--

	local p = premake
	local api = p.api

	local DOC_URL = "See https://github.com/premake/premake-core/wiki/"

-----------------------------------------------------------------------------
--
-- Register the core API functions.
--
-----------------------------------------------------------------------------

	api.register {
		name = "architecture",
		scope = "config",
		kind = "string",
		allowed = {
			"universal",
			p.X86,
			p.X86_64,
		},
		aliases = {
			i386  = p.X86,
			amd64 = p.X86_64,
			x32   = p.X86,	-- these should be DEPRECATED
			x64   = p.X86_64,
		},
	}

	api.register {
		name = "atl",
		scope = "config",
		kind  = "string",
		allowed = {
			"Off",
			"Dynamic",
			"Static",
		},
	}

	api.register {
		name = "basedir",
		scope = "project",
		kind = "path"
	}

	api.register {
		name = "buildaction",
		scope = "config",
		kind = "string",
		allowed = {
			"Application",
			"Compile",
			"Component",
			"Copy",
			"Embed",
			"Form",
			"None",
			"Resource",
			"UserControl",
		},
	}

	api.register {
		name = "buildcommands",
		scope = { "config", "rule" },
		kind = "list:string",
		tokens = true,
		pathVars = true,
	}

	api.register {
		name = "buildcustomizations",
		scope = "project",
		kind = "list:string",
	}

	api.register {
		name = "builddependencies",
		scope = { "rule" },
		kind = "list:string",
		tokens = true,
		pathVars = true,
	}

	api.register {
		name = "buildlog",
		scope = { "config" },
		kind = "path",
		tokens = true,
		pathVars = true,
	}

	api.register {
		name = "buildmessage",
		scope = { "config", "rule" },
		kind = "string",
		tokens = true,
		pathVars = true,
	}

	api.register {
		name = "buildoptions",
		scope = "config",
		kind = "list:string",
		tokens = true,
		pathVars = true,
	}

	api.register {
		name = "buildoutputs",
		scope = { "config", "rule" },
		kind = "list:path",
		tokens = true,
		pathVars = true,
	}

	api.register {
		name = "buildinputs",
		scope = "config",
		kind = "list:path",
		tokens = true,
		pathVars = true,
	}

	api.register {
		name = "buildrule",     -- DEPRECATED
		scope = "config",
		kind = "table",
		tokens = true,
	}

	api.register {
		name = "characterset",
		scope = "config",
		kind = "string",
		allowed = {
			"Default",
			"MBCS",
			"Unicode",
		}
	}

	api.register {
		name = "cleancommands",
		scope = "config",
		kind = "list:string",
		tokens = true,
		pathVars = true,
	}

	api.register {
		name = "cleanextensions",
		scope = "config",
		kind = "list:string",
	}

	api.registe


	'',	'1022578',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	''},
{'1022578',	'',	'就在此时，尤弥尔背部爆发的一声巨响即时制止了它的行动。',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'1',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'[{"key":"short_laser"}]',	'',	'',	'1022579',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	''},
{'1022579',	'',	'和那些小人物玩了这么久，也该换我来陪你玩玩了。',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'7026001',	'',	'',	'2',	'',	'托尔',	'Thor',	'[{"id":7026001,"pos":2,"enter":2}]',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'1022580',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	''},
{'1022580',	'',	'托尔……',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'7029001',	'',	'',	'2',	'',	'布伦希尔德',	'Brynhild',	'[{"id":7029001,"pos":2,"enter":2}]',	'',	'4',	'',	'',	'',	'',	'',	'',	'',	'',	'1022581',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	''},
{'1022581',	'',	'那个白痴，现在跑出来干嘛？',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'7022001',	'',	'',	'2',	'',	'洛基',	'Loki',	'[{"id":7022001,"pos":2,"enter":2}]',	'',	'4',	'',	'',	'',	'',	'',	'',	'',	'',	'1022582',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	''},
{'1022582',	'',	'这个板块上最受敬重的统治者就在面前，我可不准你把视线移向别处。',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'7026001',	'',	'',	'2',	'',	'托尔',	'Thor',	'[{"id":7026001,"pos":2,"enter":2}]',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'',	'1022583',	'',	'',	'',


 5205,
		icon = "sgup_1",
		skill_id = 0,
		descrip = "",
		condition_id = {
			5203
		},
		effect = {
			{
				equipment_proficiency_2 = 0.05
			}
		},
		ship_id = {},
		use_item = {
			{
				{
					18021,
					3
				}
			}
		},
		gear_score = {
			20
		}
	},
	[5206] = {
		use_gold = 800,
		name = "対空強化Ⅰ",
		max_level = 1,
		skin_id = 0,
		use_ship = 0,
		level_limit = 40,
		star_limit = 3,
		id = 5206,
		icon = "aa_1",
		skill_id = 0,
		descrip = "",
		condition_id = {
			5205
		},
		effect = {
			{
				antiaircraft = 10
			}
		},
		ship_id = {},
		use_item = {
			{
				{
					18021,
					3
				}
			}
		},
		gear_score = {
			20
		}
	},
	[5207] = {
		use_gold = 1000,
		name = "艦体改修Ⅱ",
		max_level = 2,
		skin_id = 0,
		use_ship = 0,
		level_limit = 50,
		star_limit = 3,
		id = 5207,
		icon = "hp_2",
		skill_id = 0,
		descrip = "",
		condition_id = {
			5205
		},
		effect = {
			{
				durability = 70
			},
			{
				durability = 100
			}
		},
		ship_id = {},
		use_item = {
			{
				{
					18022,
					1
				}
			},
			{
				{
					18022,
					1
				}
			}
		},
		gear_score = {
			10,
			15
		}
	},
	[5208] = {
		use_gold = 1200,
		name = "戦術啓発",
		max_level = 1,
		skin_id = 0,
		use_ship = 0,
		level_limit = 55,
		star_limit = 3,
		id = 5208,
		icon = "skill_red",
		skill_id = 2041,
		descrip = "",
		condition_id = {
			5207
		},
		effect = {
			{
				skill_id = 2041
			}
		},
		ship_id = {},
		use_item = {
			{
				{
					18022,
					3
				}
			}
		},
		gear_score = {
			25
		}
	},
	[5209] = {
		use_gold = 1400,
		name = "副砲改修Ⅱ",
		max_level = 2,
		skin_id = 0,
		use_ship = 0,
		level_limit = 70,
		star_limit = 4,
		id = 5209,
		icon = "sgup_2",
		skill_id = 0,
		descrip = "",
		condition_id = {
			5207
		},
		effect = {
			{
				equipment_proficiency_2 = 0.05
			},
			{
				equipment_proficiency_2 = 0.05
			}
		},
		ship_id = {},
		use_item = {
			{
				{
					18022,
					1
				}
			},
			{
				{
					18022,
					2
				}
			}
		},
		gear_score = {
			10,
			20
		}
	},
	[5210] = {
		use_gold = 1600,


import os
import os.path
import sys
from multiprocessing import Pool
import numpy as np
import cv2
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from progress_bar import ProgressBar

def main():
    """A multii-thread tool to crop sub imags."""
    input_folder = '/data7/tangjiaqi/DRLM-HDR/dataset/medium'
    save_folder = '/data7/tangjiaqi/DRLM-HDR/dataset/medium_sub'

    n_thread = 20
    crop_sz = 480   # crop size
    step = 240  # crop stride
    thres_sz = 48
    compression_level = 0  # 3 is the default value in cv2
    # CV_IMWRITE_PNG_COMPRESSION from 0 to 9. A higher value means a smaller size and longer
    # compression time. If read raw images during training, use 0 for faster IO speed.

    if not os.path.exists(save_folder):
        os.makedirs(save_folder)
        print('mkdir [{:s}] ...'.format(save_folder))
    else:
        print('Folder [{:s}] already exists. Exit...'.format(save_folder))
        sys.exit(1)

    img_list = []

    for root, _, file_list in sorted(os.walk(input_folder)):
        path = [os.path.join(root, x) for x in file_list]  # assume only images in the input_folder
        img_list.extend(path)
        #for file_name in file_list:
        #    if os.path.splitext(file_name)[1] == '.png':
        #        img_list.append(os.path.join(root, file_name))

    def update(arg):
        pbar.update(arg)

    pbar = ProgressBar(len(img_list))

    pool = Pool(n_thread)
    for path in img_list:
        pool.apply_async(worker,
            args=(path, save_folder, crop_sz, step, thres_sz, compression_level),
            callback=update)
    pool.close()
    pool.join()
    print('All subprocesses done.')

def worker(path, save_folder, crop_sz, step, thres_sz, compression_level):
    img_name = os.path.basename(path)
    #img_name = '_'.join(path.split('/')[-4:])

    img = cv2.imread(path, cv2.IMREAD_UNCHANGED)

    n_channels = len(img.shape)
    if n_channels == 2:
        h, w = img.shape
    elif n_channels == 3:
        h, w, c = img.shape
    else:
        raise ValueError('Wrong image shape - {}'.format(n_channels))

    h_space = np.arange(0, h - crop_sz + 1, step)
    if h - (h_space[-1] + crop_sz) > thres_sz:
        h_space = np.append(h_space, h - crop_sz)
    w_space = np.arange(0, w - crop_sz + 1, step)
    if w - (w_space[-1] + crop_sz) > thres_sz:
        w_space = np.append(w_space, w - crop_sz)

    index = 0
    for x in h_space:
        for y in w_space:
            index += 1
            if n_channels == 2:
                crop_img = img[x:x + crop_sz, y:y + crop_sz]
            else:
                crop_img = img[x:x + crop_sz, y:y + crop_sz, :]
            crop_img = np.ascontiguousarray(crop_img)
            # var = np.var(crop_img / 255)
            # if var > 0.008:
            #     print(img_name, index_str, var)
            cv2.imwrite(
                os.path.join(save_folder, img_name.replace('.png', '_s{:03d}.png'.format(index))),
                crop_img, [cv2.IMWRITE_PNG_COMPRESSION, compression_level])
    return 'Processing {:s} ...'.format(img_name)

if __name__ == '__main__':
    main()


, sans-serif',				//
	CB_FontSizeT=13,				// these variables are referring to the title or caption line
	CB_FontColorT='#777',				//
	CB_FontWeightT='normal',			//

	CB_FontC='helvetica, arial, sans-serif',				//
	CB_FontSizeC=11,				// these variables are referring to
	CB_FontColorC='#999',				// comment lines under the title
	CB_FontWeightC='normal',			//
	CB_TextAlignC='justify',			//
	CB_txtHCMax=120,				// maximum height of the comment box in pixels

	CB_FontG='helvetica, arial, sans-serif',				//
	CB_FontSizeG=11,				// these variables are referring to the gallery name
	CB_FontColorG='#aaa',				//
	CB_FontWeightG='normal',			//

	CB_PadT=10,					// space in pixels between the content and the title or caption line

	CB_OuterNavigation='off',			// turns outer navigation panel on

	CB_ShowURL='off',				// it shows the url of the content if no title or caption is given
	CB_ItemNum='on',				// it shows the ordinal number of the content in galleries
	CB_ItemNumBracket='()',				// whatever you want ;)

	CB_ShowGalName='on',				// it shows gallery name
	CB_TextNav='on',				// it shows previous and next navigation
	CB_NavTextImgPrvNxt='on',			// it shows previous and next buttons instead of text
	CB_ShowDL='on',					// it shows download controls
	CB_NavTextImgDL='on',				// it shows download buttons instead of text

	CB_ImgRotation='on',				// it shows the image rotation controls
	CB_NavTextImgRot='on',				// it shows the image rotation buttons instead of text

// Settings of the document-hiding layer:

	CB_HideColor='#000',				// color of the layer
	CB_HideOpacity=.5,				// opacity (0 is invisible, 1 is 100% color) of the layer
	CB_HideOpacitySpeed=400,			// speed of fading
	CB_CloseOnH='on',				// CB will close, if you click on background

// CB animation settings:

	CB_Animation='double',				// 'double', 'normal', 'off', 'grow', 'growinout' or 'warp' (high cpu usage)
	CB_ImgOpacitySpeed=300,				// speed of content fading (in ms)
	CB_TextOpacitySpeed=300,			// speed of text fading under the picture (in ms)
	CB_AnimSpeed=300,				// speed of the resizing animation of CB window (in ms)
	CB_ImgTextFade='on',				// turns on or off the fading of content and text
	CB_FlashHide='off',				// it hides flash animations on the page before CB starts
	CB_SelectsHide='on',				// it hides select boxes on the page before CB starts
	CB_SlShowTime=3,				// default speed of the slideshow (in sec)
	CB_Preload='on',				// preload neighbour pictures in galleries
	CB_ShowLoading='off',				// NOT WORKING IN THIS VERSION (3.5beta)

// Images using by CB settings:

	CB_PictureStart='start.png',			//
	CB_PicturePause='pause.png',			//
	CB_PictureClose='close.png',			// filenames of some images using by clearbox
	CB_PictureNext='next.png',			// (there are other images specified in clearbox.css!)
	CB_PicturePrev='prev.png',			//

// CB professional settings:

	CB_PicDir=CB_ScriptDir,	// CHANGE ONLY IF YOU CHANGED THE DEFAULT DIRECTORY-STRUCTURE OF CB!

	CB_AllowedToRun='on',					//


,13,15,1,{[2437]={{-1,-1}}},nil,2437,nil,nil,554,nil,nil,0},
[11323] = {'Searing Blade Enforcer',819,984,13,15,1,{[2437]={{-1,-1}}},nil,2437,nil,nil,554,nil,nil,0},
[11324] = {'Searing Blade Warlock',723,855,13,15,1,{[2437]={{-1,-1}}},nil,2437,nil,nil,554,nil,nil,0},
[11325] = {'Panda Cub',42,42,1,1,0,nil,nil,0,nil,nil,1,"A",nil,0},
[11326] = {'Mini Diablo',42,42,1,1,0,nil,nil,0,nil,nil,3,"A","Lord of Terror",0},
[11327] = {'Zergling',42,42,1,1,0,nil,nil,0,nil,nil,4,"A",nil,0},
[11328] = {'Eastvale Peasant',137,137,7,7,0,{[12]={{81.83,68.94},{81.23,67.44},{82.37,68.68},{80.92,68.99},{82.55,68.96}}},nil,12,nil,nil,12,"A",nil,0},
[11338] = {'Hakkari Shadowcaster',25150,25150,61,61,1,{[1977]={{-1,-1}}},nil,1977,nil,nil,28,nil,nil,0},
[11339] = {'Hakkari Shadow Hunter',25150,25150,61,61,1,{[1977]={{-1,-1}}},nil,1977,nil,nil,28,nil,nil,0},
[11340] = {'Hakkari Blood Priest',15090,15090,61,61,1,{[1977]={{-1,-1}}},nil,1977,nil,nil,28,nil,nil,0},
[11346] = {'Hakkari Oracle',6273,6477,55,56,1,{[33]={{51.61,18.39},{51.52,16.72},{50.9,18.23},{50.87,16.74},{52.72,17.57},{52.95,18.27},{52.88,16.84},{49.58,17.55},{52.26,16.74}}},nil,33,nil,nil,28,nil,nil,0},
[11347] = {'Zealot Lor\'Khan',90650,90650,62,62,1,{[1977]={{-1,-1}}},nil,1977,nil,nil,28,nil,nil,0},
[11348] = {'Zealot Zath',113295,113295,62,62,1,{[1977]={{-1,-1}}},nil,1977,nil,nil,28,nil,nil,0},
[11350] = {'Gurubashi Axe Thrower',21364,21364,60,60,1,{[1977]={{-1,-1}}},nil,1977,nil,nil,28,nil,nil,0},
[11351] = {'Gurubashi Headhunter',21364,21364,60,60,1,{[1977]={{-1,-1}}},nil,1977,nil,nil,28,nil,nil,0},
[11352] = {'Gurubashi Berserker',48555,48555,62,62,1,{[2597]={{55.51,68.85}},[1977]={{-1,-1}}},nil,2597,nil,nil,28,nil,nil,0},
[11353] = {'Gurubashi Blood Drinker',18312,18312,60,60,1,{[1977]={{-1,-1}}},nil,1977,nil,nil,28,nil,nil,0},
[11355] = {'Gurubashi Warrior',7599,7842,54,55,1,{[33]={{51.29,16.74},{51.68,18.56},{51.31,18.4},{51.61,16.85},{50.82,18


EDGE as &crate::Emoji),
					"equered_flag" => Some(&crate::flat::CHEQUERED_FLAG as &crate::Emoji),
					"erries" => Some(&crate::flat::CHERRIES as &crate::Emoji),
					"erry_blossom" => Some(&crate::flat::CHERRY_BLOSSOM as &crate::Emoji),
					"ess_pawn" => Some(&crate::flat::CHESS_PAWN as &crate::Emoji),
					"estnut" => Some(&crate::flat::CHESTNUT as &crate::Emoji),
					"icken" => Some(&crate::flat::CHICKEN as &crate::Emoji),
					"ild" => Some(&crate::flat::CHILD.default as &crate::Emoji),
					"ildren_crossing" => Some(&crate::flat::CHILDREN_CROSSING as &crate::Emoji),
					"ile" => Some(&crate::flat::FLAG_CHILE as &crate::Emoji),
					"ipmunk" => Some(&crate::flat::CHIPMUNK as &crate::Emoji),
					"ocolate_bar" => Some(&crate::flat::CHOCOLATE_BAR as &crate::Emoji),
					"opsticks" => Some(&crate::flat::CHOPSTICKS as &crate::Emoji),
					"ristmas_island" => Some(&crate::flat::FLAG_CHRISTMAS_ISLAND as &crate::Emoji),
					"ristmas_tree" => Some(&crate::flat::CHRISTMAS_TREE as &crate::Emoji),
					"urch" => Some(&crate::flat::CHURCH as &crate::Emoji),
					_ => None,
				},
				b'i' => match rest {
					"garette" => Some(&crate::flat::CIGARETTE as &crate::Emoji),
					"nema" => Some(&crate::flat::CINEMA as &crate::Emoji),
					"rcled_m" => Some(&crate::flat::CIRCLED_M as &crate::Emoji),
					"rcus_tent" => Some(&crate::flat::CIRCUS_TENT as &crate::Emoji),
					"ty_sunrise" => Some(&crate::flat::SUNSET as &crate::Emoji),
					"ty_sunset" => Some(&crate::flat::CITYSCAPE_AT_DUSK as &crate::Emoji),
					"tyscape" => Some(&crate::flat::CITYSCAPE as &crate::Emoji),
					"tyscape_at_dusk" => Some(&crate::flat::CITYSCAPE_AT_DUSK as &crate::Emoji),
					_ => None,
				},
				b'l' => match rest {
					"" => Some(&crate::flat::CL_BUTTON as &crate::Emoji),
					"_button" => Some(&crate::flat::CL_BUTTON as &crate::Emoji),
					"amp" => Some(&crate::flat::CLAMP as &crate::Emoji),
					"ap" => Some(&crate::flat::CLAPPING_HANDS.default as &crate::Emoji),
					"apper" => Some(&crate::flat::CLAPPER_BOARD as &crate::Emoji),
					"apper_board" => Some(&crate::flat::CLAPPER_BOARD as &crate::Emoji),
					"apping_hands" => Some(&crate::flat::CLAPPING_HANDS.default as &crate::Emoji),
					"assical_building" => Some(&crate::flat::CLASSICAL_BUILDING as &crate::Emoji),
					"imbing" => Some(&crate::flat::PERSON_CLIMBING.default.default as &crate::Emoji),
					"imbing_man


\n\004UUID\022\r\n\005value\030\001 \001(" +
      "\t\"T\n\rCommandParams\022\016\n\006action\030\001 \001(\t\022%\n\004da" +
      "ta\030\002 \001(\0132\027.google.protobuf.Struct\022\014\n\004syn" +
      "c\030\003 \001(\010\"\305\001\n\007Command\022\033\n\002id\030\001 \001(\0132\017.comman" +
      "der.UUID\022\016\n\006action\030\002 \001(\t\022%\n\004data\030\003 \001(\0132\027" +
      ".google.protobuf.Struct\022\021\n\ttimestamp\030\004 \001" +
      "(\003\022\r\n\005topic\030\005 \001(\t\022\021\n\tpartition\030\006 \001(\005\022\016\n\006" +
      "offset\030\007 \001(\003\022!\n\010children\030\010 \003(\0132\017.command" +
      "er.UUID\"c\n\rPagedCommands\022\r\n\005limit\030\001 \001(\003\022",
      "\016\n\006offset\030\002 \001(\003\022\r\n\005total\030\003 \001(\003\022$\n\010comman" +
      "ds\030\004 \003(\0132\022.commander.Command\"\301\001\n\005Event\022\033" +
      "\n\002id\030\001 \001(\0132\017.commander.UUID\022\016\n\006action\030\002 " +
      "\001(\t\022%\n\004data\030\003 \001(\0132\027.google.protobuf.Stru" +
      "ct\022\021\n\ttimestamp\030\004 \001(\003\022\r\n\005topic\030\005 \001(\t\022\021\n\t" +
      "partition\030\006 \001(\005\022\016\n\006offset\030\007 \001(\003\022\037\n\006paren" +
      "t\030\010 \001(\0132\017.commander.UUID\"]\n\013PagedEvents\022" +
      "\r\n\005limit\030\001 \001(\003\022\016\n\006offset\030\002 \001(\003\022\r\n\005total\030" +
      "\003 \001(\003\022 \n\006events\030\004 \003(\0132\020.commander.Event\"" +
      "+\n\nPagingInfo\022\r\n\005limit\030\001 \001(\003\022\016\n\006offset\030\002",
      " \001(\003\"\017\n\rStreamRequest2\270\003\n\tCommander\022?\n\rC" +
      "reateCommand\022\030.commander.CommandParams\032\022" +
      ".commander.Command\"\000\022A\n\014ListCommands\022\025.c" +
      "ommander.PagingInfo\032\030.commander.PagedCom" +
      "mands\"\000\0224\n\013CommandById\022\017.commander.UUID\032" +
      "\022.commander.Command\"\000\022A\n\rCommandStream\022\030" +
      ".commander.StreamRequest\032\022.commander.Com" +
      "mand\"\0000\001\022=\n\nListEvents\022\025.commander.Pagin" +
      "gInfo\032\026.commander.PagedEvents\"\000\0220\n\tEvent" +
      "ById\022\017.commander.UUID\032\020.commander.Event\"",
      "\000\022=\n\013EventStream\022\030.commander.StreamReque" +
      "st\032\020.commander.Event\"\0000\001B0\n\035com.capitalo" +
      "ne.commander.grpcB\017CommanderProtosb\006prot" +
      "o3"
    };
    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
        new com.google.protobuf.Descriptors.FileDescriptor.    InternalDescriptorAssigner() {
          public com.google.protobuf.ExtensionRegistry assignDescriptors(
              com.google.protobuf.Descriptors.FileDescriptor root) {
            descriptor = root;
            return null;
          }
        };
    com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGenerated


ream stream = new StringStream(contents, 0, 1);

            string returned = stream.GetString(260);

            Assert.AreEqual(string.Empty, returned);
        }

        private StringStream CreateStringStream()
        {
            List<byte> data = new List<byte>();
            data.Add(0); // required first null terminating character
            data.AddRange(System.Text.ASCIIEncoding.ASCII.GetBytes("theboxsoftware.reflection.core.tests"));
            data.Add(0);
            data.AddRange(System.Text.ASCIIEncoding.ASCII.GetBytes("theboxsoftware.core.tests"));
            data.Add(0);
            data.AddRange(System.Text.ASCIIEncoding.ASCII.GetBytes("theboxsoftware.reflection.tests"));
            data.Add(0);
            data.AddRange(System.Text.ASCIIEncoding.ASCII.GetBytes("theboxsoftware.reflection.core.tests"));
            data.Add(0);
            data.AddRange(System.Text.ASCIIEncoding.ASCII.GetBytes("theboxsoftware.reflection.core"));
            data.Add(0);
            data.AddRange(System.Text.ASCIIEncoding.ASCII.GetBytes("reflection.core.tests"));
            data.Add(0);
            data.AddRange(System.Text.ASCIIEncoding.ASCII.GetBytes("reflection.core.tests"));
            data.Add(0);
            data.AddRange(System.Text.ASCIIEncoding.ASCII.GetBytes("theboxsoftware.core.tests"));
            data.Add(0);
            data.AddRange(System.Text.ASCIIEncoding.ASCII.GetBytes("theboxsoftware.core.tests"));
            data.Add(0);
            data.AddRange(System.Text.ASCIIEncoding.ASCII.GetBytes("thisisateststring"));
            data.Add(0);
            data.AddRange(System.Text.ASCIIEncoding.ASCII.GetBytes("theboxsoftware.reflection.core.tests"));
            data.Add(0);
            data.AddRange(System.Text.ASCIIEncoding.ASCII.GetBytes("theboxsoftware.reflection.core.tests"));
            data.Add(0);
            data.AddRange(System.Text.ASCIIEncoding.ASCII.GetBytes("theboxsoftware.reflection.core.tests"));
            data.Add(0);
            data.AddRange(System.Text.ASCIIEncoding.ASCII.GetBytes("theboxsoftware.reflection.core.tests"));
            data.Add(0);

            byte[] convertedData = data.ToArray();
            return new StringStream(convertedData, 0, convertedData.Length);
        }
    }
}


#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @File  : word2vec_t-test_single sample.py
# @Author: Hua Zhu
# @Date  : 2022/9/7
# @Desc  :
import pickle
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.ticker import MultipleLocator
import util_corpus
import statsmodels.stats.weightstats as st  # 统计包

proj_dir = '/home/usr_name/pro_name/'

def load_media_target_matrix(random_seed, topic_words):
    # if random_seed != 35 and random_seed != 36:  # for testing
    #     random_seed = 33
    root_dir = proj_dir + 'data/bias_random/'
    file_name = str(random_seed) + '_' + topic_words[0] + '_' + topic_words[int(len(topic_words)/2)]
    with open(root_dir+file_name, 'rb') as read_f:
        res_obj = pickle.load(read_f)

    print('load media_target_matrix down')
    return res_obj

def load_and_avg_media_target_matrix(random_seeds, topic_words):
    """
    t-test的样本: 取k_1次实验的结果, 求平均, 作为最终展示在paper上的结果
    :param random_seeds:
    :param topic_words:
    :return:
    """
    total_media_target_matrix = None
    for seed in random_seeds:
        cur_media_target_matrix = load_media_target_matrix(seed, topic_words)
        if total_media_target_matrix is None:
            total_media_target_matrix = cur_media_target_matrix
        else:
            total_media_target_matrix = total_media_target_matrix + cur_media_target_matrix

    avg_media_target_matrix = total_media_target_matrix / len(random_seeds)
    return avg_media_target_matrix

def load_and_concat_media_target_matrix(random_seeds, topic_words, matrix_shape):
    """
    t-test的总体(理想): k_2次重复实验的结果 (理想状态的约束: k_2 >> k_1)
    :param random_seeds:
    :param topic_words:
    :param matrix_shape:
    :return:
    """
    concated_media_target_matrix = []
    n = matrix_shape[0]*matrix_shape[1]  # num of media * num of target word
    for i in range(0, n):
        concated_media_target_matrix.append([])

    for seed in random_seeds:
        cur_media_target_matrix = load_media_target_matrix(seed, topic_words)
        for row_idx in range(0, matrix_shape[0]):
            for col_idx in range(0, matrix_shape[1]):
                bias_value = cur_media_target_matrix[row_idx][col_idx]
                list_idx = row_idx*matrix_shape[1] + col_idx
                concated_media_target_matrix[list_idx].append(bias_value)

    return concated_media_target_matrix

def print_statistics_matrix(statistics_type, statistics_list, matrix_shape):
    print(statistics_type)
    for row_idx in range(0, matrix_shape[0]):
        row_str = ''
        for col_idx in range(0, matrix_shape[1]):
            if statistics_type == 'p_value':
                # item = '{:.2%}'.format(statistics_list[row_idx*matrix_shape[1]+col_idx])
                item = '%.3f' % (statistics_list[row_idx * matrix_shape[1] + col_idx])
            elif statistics_type == 't_value' or statistics_type == 'df':
                item = str(statistics_list[row_idx * matrix_shape[1] + col_idx])
            elif statistics_type == 'cohen\'s d':
                item = '%.3f' % (statistics_list[row_idx*matrix_shape[1]+col_idx])
            elif statistics_type == '95% CI':
                item1 = '%.3f' % (statistics_list[row_idx * matrix_shape[1] + col_idx][0])
                item2 = '%.3f' % (statistics_list[row_idx * matrix_shape[1] + col_idx][1])
                item = '(' + str(item1) + ', ' + str(item2) + ')'
            if len(item) == 6:
                row_str += item
            else:
                row_str += ' ' + item
            row_str += '  '
        print(row_str)
    print('\n')

def calculate_Cohen(data_1, data_2):
    # 计算n_1, n_2, mean_1, mean_2, std_1, std_2
    n_1 = len(data_1)
    n_2 = len(data_2)
    mean_1 = np.array(data_1).mean()
    mean_2 = np.array(data_2).mean()
    std_1 = np.array(data_1).std()
    std_2 = np.array(data_2).std()
    # 合并标准差
    sp = np.sqrt(((n_1 - 1) * np.square(std_1) + (n_2 - 1) * np.square(std_2)) / (n_1 + n_2 - 2))
    # 效应量Cohen's d
    cohen = (mean_1 - mean_2) / sp

    return cohen

def calculate_95_CI(data_1, data_2):
    d1 = st.DescrStatsW(data_1)
    d2 = st.DescrStatsW(data_2)
    comp = st.CompareMeans(d1, d2)

    return comp.ttest_ind(usevar='unequal'), comp.tconfint_diff(usevar='unequal')

def load_seed_2_media_target_matrix(random_seeds, topic_words):
    seed_2_media_target_matrix = {}
    for seed in random_seeds:
        seed_2_media_target_matrix[seed] = load_media_target_matrix(seed, topic_words)

    return seed_2_media_t


import tkinter

window = tkinter.Tk()
window.minsize(width=300, height=220)
window.config(padx=0, pady=35)
window.title("BMI Calculator")

my_label = tkinter.Label(text="(Enter Your Weight (kg))", padx=0, pady=5)
my_label.pack()
my_entry = tkinter.Entry(width=20)
my_entry.pack()

my_label2 = tkinter.Label(text="(Enter Your Height (cm))", padx=0, pady=5)
my_label2.pack()
my_entry2 = tkinter.Entry(width=20)
my_entry2.pack()

def bmi_index(weight, height):
    height = height / 100  # cm'yi metreye çeviriyoruz
    bmi = weight / (height ** 2)

    if bmi < 18.5:
        result = f"Your BMI is {bmi:.2f}. You are underweight." #Ondalık sayıyı 2 basamaklı gösterir.
    elif 25 >= bmi >= 18.5:
        result = f"Your BMI is {bmi:.2f}. You are normal weight."
    elif 30 > bmi >= 25:
        result = f"Your BMI is {bmi:.2f}. You are overweight."
    elif 35 > bmi >= 30:
        result = f"Your BMI is {bmi:.2f}. You are obesity class 1."
    elif 40 > bmi >= 35:
        result = f"Your BMI is {bmi:.2f}. You are obesity class 2."
    else:
        result = f"Your BMI is {bmi:.2f}. You are obesity class 3."

    result_label.config(text=result)

def calculate():
    weight_text = my_entry.get().strip()
    height_text = my_entry2.get().strip()

    if not weight_text or not height_text:  # Boş olup olmadığını kontrol ediyoruz
        result_label.config(text="Enter both weight and height!")
        return
    try:
        weight = float(my_entry.get())
        height = float(my_entry2.get())
        bmi_index(weight, height)
    except ValueError:
        result_label.config(text="Enter a valid number!")

my_button = tkinter.Button(text="Calculate", command=calculate, padx=0, pady=2)
my_button.pack()

result_label = tkinter.Label(text="", padx=0, pady=10)
result_label.pack()

tkinter.mainloop()


xb89ce1da  ! 242: XORcc_I	xorcc 	%r19, 0x01da, %r28
	.word 0xb3520000  ! 248: RDPR_PIL	<illegal instruction>
	.word 0xfe45c000  ! 253: LDSW_R	ldsw	[%r23 + %r0], %r31
	.word 0xf8550000  ! 255: LDSH_R	ldsh	[%r20 + %r0], %r28
	.word 0xf11dc000  ! 257: LDDF_R	ldd	[%r23, %r0], %f24
	.word 0xf24d612c  ! 258: LDSB_I	ldsb	[%r21 + 0x012c], %r25
	.word 0xb53d6001  ! 259: SRA_I	sra 	%r21, 0x0001, %r26
	.word 0xb7504000  ! 264: RDPR_TNPC	<illegal instruction>
	.word 0xfe15a070  ! 266: LDUH_I	lduh	[%r22 + 0x0070], %r31
	.word 0xfc14a088  ! 268: LDUH_I	lduh	[%r18 + 0x0088], %r30
	.word 0xfc156113  ! 269: LDUH_I	lduh	[%r21 + 0x0113], %r30
	.word 0xf65ce1c6  ! 272: LDX_I	ldx	[%r19 + 0x01c6], %r27
	.word 0xf25c4000  ! 273: LDX_R	ldx	[%r17 + %r0], %r25
	.word 0xf31c6045  ! 275: LDDF_I	ldd	[%r17, 0x0045], %f25
	.word 0xfa4da17d  ! 276: LDSB_I	ldsb	[%r22 + 0x017d], %r29
	.word 0xfc1420bd  ! 279: LDUH_I	lduh	[%r16 + 0x00bd], %r30
	.word 0xfb1dc000  ! 283: LDDF_R	ldd	[%r23, %r0], %f29
	.word 0xfc1c610c  ! 288: LDD_I	ldd	[%r17 + 0x010c], %r30
	.word 0x9194a0c1  ! 291: WRPR_PIL_I	wrpr	%r18, 0x00c1, %pil
	.word 0xf20421a7  ! 292: LDUW_I	lduw	[%r16 + 0x01a7], %r25
	setx	data_start_6, %g1, %r20
	.word 0xf245211e  ! 296: LDSW_I	ldsw	[%r20 + 0x011e], %r25
	.word 0xb7520000  ! 297: RDPR_PIL	<illegal instruction>
	.word 0xff1cc000  ! 299: LDDF_R	ldd	[%r19, %r0], %f31
	setx	0x20313, %g1, %o0
#ifdef PORTABLE_CORE
	mov	PORTABLE_CORE, %g1
	sllx	%g1, 10, %g1
	or	%o0, %g1, %o0
#endif
	ta	T_SEND_THRD_INTR
	.word 0xb5518000  ! 301: RDPR_PSTATE	<illegal instruction>
	.word 0xb9520000  ! 305: RDPR_PIL	<illegal instruction>
	setx	0x30231, %g1, %o0
#ifdef PORTABLE_CORE
	mov	PORTABLE_CORE, %g1
	sllx	%g1, 10, %g1
	or	%o0, %g1, %o0
#endif
	ta	T_SEND


5"
	},
	{
		"id": "3313",
		"name": "Teruel",
		"country_id": "205"
	},
	{
		"id": "3314",
		"name": "Toledo",
		"country_id": "205"
	},
	{
		"id": "3315",
		"name": "Valencia",
		"country_id": "205"
	},
	{
		"id": "3316",
		"name": "Valladolid",
		"country_id": "205"
	},
	{
		"id": "3317",
		"name": "Vizcaya",
		"country_id": "205"
	},
	{
		"id": "3318",
		"name": "Zamora",
		"country_id": "205"
	},
	{
		"id": "3319",
		"name": "Zaragoza",
		"country_id": "205"
	},
	{
		"id": "3320",
		"name": "Amparai",
		"country_id": "206"
	},
	{
		"id": "3321",
		"name": "Anuradhapuraya",
		"country_id": "206"
	},
	{
		"id": "3322",
		"name": "Badulla",
		"country_id": "206"
	},
	{
		"id": "3323",
		"name": "Boralesgamuwa",
		"country_id": "206"
	},
	{
		"id": "3324",
		"name": "Colombo",
		"country_id": "206"
	},
	{
		"id": "3325",
		"name": "Galla",
		"country_id": "206"
	},
	{
		"id": "3326",
		"name": "Gampaha",
		"country_id": "206"
	},
	{
		"id": "3327",
		"name": "Hambantota",
		"country_id": "206"
	},
	{
		"id": "3328",
		"name": "Kalatura",
		"country_id": "206"
	},
	{
		"id": "3329",
		"name": "Kegalla",
		"country_id": "206"
	},
	{
		"id": "3330",
		"name": "Kilinochchi",
		"country_id": "206"
	},
	{
		"id": "3331",
		"name": "Kurunegala",
		"country_id": "206"
	},
	{
		"id": "3332",
		"name": "Madakalpuwa",
		"country_id": "206"
	},
	{
		"id": "3333",
		"name": "Maha Nuwara",
		"country_id": "206"
	},
	{
		"id": "3334",
		"name": "Malwana",
		"country_id": "206"
	},
	{
		"id": "3335",
		"name": "Mannarama",
		"country_id": "206"
	},
	{
		"id": "3336",
		"name": "Matale",
		"country_id": "206"
	},
	{
		"id": "3337",
		"name": "Matara",
		"country_id": "206"
	},
	{
		"id": "3338",
		"name": "Monaragala",
		"country_id": "206"
	},
	{
		"id": "3339",
		"name": "Mullaitivu",
		"country_id": "206"
	},
	{
		"id": "3340",
		"name": "North Eastern Province",
		"country_id": "206"
	},
	{


//
//  PlaylistsViewController.h
//  iSub
//
//  Created by Ben Baron on 4/2/10.
//  Copyright 2010 Ben Baron. All rights reserved.
//

#import <UIKit/UIKit.h>
#import "SUSLoaderDelegate.h"

@class SUSServerPlaylistsDAO;

@interface PlaylistsViewController : UIViewController <SUSLoaderDelegate>

@property (strong) NSLayoutConstraint *tableViewTopConstraint;
@property (strong) IBOutlet UITableView *tableView;
@property (nonatomic, strong) UIView *segmentControlContainer;
@property (nonatomic, strong) UISegmentedControl *segmentedControl;
@property (nonatomic, strong) UIImageView *noPlaylistsScreen;
@property (nonatomic) BOOL isNoPlaylistsScreenShowing;
@property (nonatomic, strong) UIView *saveEditContainer;
@property (nonatomic, strong) UILabel *savePlaylistLabel;
@property (nonatomic, strong) UILabel *playlistCountLabel;
@property (nonatomic, strong) UIButton *savePlaylistButton;
@property (nonatomic, strong) UILabel *deleteSongsLabel;
@property (nonatomic, strong) UILabel *editPlaylistLabel;
@property (nonatomic, strong) UIButton *editPlaylistButton;
@property (nonatomic) BOOL isPlaylistSaveEditShowing;
@property (nonatomic) BOOL savePlaylistLocal;
@property (nonatomic, strong) SUSServerPlaylistsDAO *serverPlaylistsDataModel;
@property (nonatomic) NSUInteger currentPlaylistCount;

- (void)showDeleteButton;
- (void)hideDeleteButton;

- (void)segmentAction:(id)sender;
- (void)updateCurrentPlaylistCount;

- (void)cancelLoad;

@end


    builder.append('m');
  }

  private void appendCodes() {
    if (!usingColor || currentCodes.equals(declaredCodes)) return;
    if (declaredCodes.containsAll(currentCodes)) {
      var newCodes = EnumSet.copyOf(declaredCodes);
      newCodes.removeAll(currentCodes);
      doAppendCodes(newCodes);
    } else {
      reset();
      doAppendCodes(declaredCodes);
    }
    currentCodes = declaredCodes;
  }

  private void reset() {
    if (!usingColor || currentCodes.isEmpty()) return;
    doReset();
    currentCodes = EnumSet.noneOf(AnsiCode.class);
  }

  private void doReset() {
    builder.append("\033[0m");
  }

  public enum AnsiCode {
    RESET(0),
    BOLD(1),
    FAINT(2),

    BLACK(30),
    RED(31),
    GREEN(32),
    YELLOW(33),
    BLUE(34),
    MAGENTA(35),
    CYAN(36),
    WHITE(37),

    BG_BLACK(40),
    BG_RED(41),
    BG_GREEN(42),
    BG_YELLOW(43),
    BG_BLUE(44),
    BG_MAGENTA(45),
    BG_CYAN(46),
    BG_WHITE(47),

    BRIGHT_BLACK(90),
    BRIGHT_RED(91),
    BRIGHT_GREEN(92),
    BRIGHT_YELLOW(93),
    BRIGHT_BLUE(94),
    BRIGHT_MAGENTA(95),
    BRIGHT_CYAN(96),
    BRIGHT_WHITE(97),

    BG_BRIGHT_BLACK(100),
    BG_BRIGHT_RED(101),
    BG_BRIGHT_GREEN(102),
    BG_BRIGHT_YELLOW(103),
    BG_BRIGHT_BLUE(104),
    BG_BRIGHT_MAGENTA(105),
    BG_BRIGHT_CYAN(106),
    BG_BRIGHT_WHITE(107);

    private final int value;

    AnsiCode(int value) {
      this.value = value;
    }
  }
}
/*
 * Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://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.pkl.core.runtime;

import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.organicdesign.fp.collections.RrbTree;
import org.organicdesign.fp.collections.RrbTree.ImRrbt;
import org.organicdesign.fp.collections.RrbTree.MutRrbt;
import org.organicdesign.fp.collections.UnmodCollection;
import org.organicdesign.fp.collections.UnmodIterable;
import org.pkl.core.ast.ConstantNode;
import org.pkl.core.ast.ExpressionNode;
import org.pkl.core.runtime.Iterators.ReverseTruffleIterator;
import org.pkl.core.runtime.Iterators.TruffleIterator;
import org.pkl.core.util.Nullable;

// currently the backing collection is realized at the end of each VmList operation
// this trades efficiency for ease of understanding, as it eliminates the complexity
// of users having to deal with deferred operations that only fail later
// perhaps we could find a compromise, e.g. realize every time a
// property/local is read or a method parameter is set in our language
public


지로부터 영토를 확장하기 위해 얼라이언스의 모든 종족이 이 먼 곳까지 몰려들고 있어. 놈들을 막아야 해. 가장 좋은 방법은 놈들의 보급품을 빼앗는 거지.","<name>, 자네 도움이 필요해. 비옥한 토지와 금광, 그리고 실력 있는 대장장이들로 유명한 아라시 분지로 들어가게. 가능한 모든 거점을 점령하여 전투를 승리로 이끈 다음 보급품을 가지고 돌아오도록!"}, {"아라시 분지 전투를 승리로 이끌고 아라시 보급품 상자를 구해 해머폴에 있는 죽음의추적자 몰티스에게 가져가야 합니다."}},
[8163] = {nil, nil, nil},
[8164] = {nil, nil, nil},
[8165] = {nil, nil, nil},
[8166] = {"아라시 분지의 전투", {"<name>, 아라시 분지에서는 자원과 영토를 놓고 전투를 벌이고 있소. 우리 부대에 필요한 보급품을 대려면 그곳 거점을 반드시 확보해야 하오. 아라시 분지 기지에서 멀리 떨어진 거점들을 공격하는 임무를 맡기겠소이다.","적이 점령하고 있는 금광, 제재소, 대장간, 그리고 농장을 공격하시오. 적의 깃발을 찾아서 모두 뽑아 버리는 거요!","네 곳의 깃발을 모두 뽑은 다음 돌아와 보고하시오."}, {"금광, 제재소, 대장간, 그리고 농장을 공격한 후 임시 주둔지에 있는 야전사령관 오슬라이트에게 돌아가십시오."}},
[8167] = {"아라시 분지의 전투", {"<name>, 아라시 분지에서는 자원과 영토를 놓고 전투를 벌이고 있소. 우리 부�


.materialdialogs.datetime.utils.getPager
import com.afollestad.materialdialogs.datetime.utils.getTimePicker
import com.afollestad.materialdialogs.datetime.utils.hour
import com.afollestad.materialdialogs.datetime.utils.isFutureTime
import com.afollestad.materialdialogs.datetime.utils.minute
import com.afollestad.materialdialogs.datetime.utils.toCalendar
import com.afollestad.materialdialogs.utils.MDUtil.isLandscape
import com.afollestad.materialdialogs.utils.MDUtil.resolveColor
import java.util.Calendar

typealias DateTimeCallback = ((dialog: MaterialDialog, datetime: Calendar) -> Unit)?

/**
 * Makes the dialog a date and time picker.
 */
fun MaterialDialog.dateTimePicker(
  minDateTime: Calendar? = null,
  maxDateTime: Calendar? = null,
  currentDateTime: Calendar? = null,
  requireFutureDateTime: Boolean = false,
  show24HoursView: Boolean = false,
  autoFlipToTime: Boolean = true,
  dateTimeCallback: DateTimeCallback = null
): MaterialDialog {
  customView(
      R.layout.md_datetime_picker_pager,
      noVerticalPadding = true,
      dialogWrapContent = windowContext.isLandscape()
  )

  val viewPager = getPager().apply {
    adapter = DateTimePickerAdapter()
  }
  getPageIndicator()?.run {
    attachViewPager(viewPager)
    setDotTint(resolveColor(windowContext, attr = attr.textColorPrimary))
  }

  getDatePicker().apply {
    minDateTime?.let { setMinDate(it) }
    maxDateTime?.let { setMaxDate(it) }
    currentDateTime?.let { setDate(it) }
    addOnDateChanged { previous, date ->
      val futureTime = isFutureTime(getDatePicker(), getTimePicker())
      setActionButtonEnabled(
          POSITIVE, !requireFutureDateTime || futureTime
      )
      if (autoFlipToTime && didDateChange(previous, date)) {
        getPager().currentItem = 1
      }
    }
  }

  getTimePicker().apply {
    setIs24HourView(show24HoursView)
    hour(currentDateTime?.get(Calendar.HOUR_OF_DAY) ?: 12)
    minute(currentDateTime?.get(Calendar.MINUTE) ?: 0)

    setOnTimeChangedListener { _, _, _ ->
      val isFutureTime = isFutureTime(getDatePicker(), this)
      setActionButtonEnabled(
          POSITIVE,
          !requireFutureDateTime || isFutureTime
      )
    }
  }

  positiveButton(android.R.string.ok) {
    val selectedTime = toCalendar(getDatePicker(), getTimePicker())
    dateTimeCallback?.invoke(it, selectedTime)
  }
  negativeButton(android.R.string.cancel)

  if (requireFutureDateTime) {
    val changeListener = TimeChangeListener(windowContext, getTimePicker()) {
      val isFutureTime = isFutureTime(getDatePicker(), it)
      setActionButtonEnabled(
          POSITIVE,
          !requireFutureDateTime || isFutureTime
      )
    }
    onDismiss { changeListener.dispose() }
  }

  return this
}

private fun didDateChange(
  from: Calendar?,
  to: Calendar
): Boolean {
  if (from == null) return false
  return from.dayOfMonth != to.dayOfMonth
}

/**
 * Gets the currently selected date and time from a date/time picker dialog.
 */
@CheckResult fun MaterialDialog.selectedDateTime(): Calendar {
  return toCalendar(getDatePicker(), getTimePicker())
}
/**
 * Designed and developed by Aidan Follestad (@afollestad)
 *
 * 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,


590054:
	.incbin "baserom.dol", 0x58C154, 0x10
.global lbl_80590064
lbl_80590064:
	.incbin "baserom.dol", 0x58C164, 0x10
.global lbl_80590074
lbl_80590074:
	.incbin "baserom.dol", 0x58C174, 0x10
.global lbl_80590084
lbl_80590084:
	.incbin "baserom.dol", 0x58C184, 0x10
.global lbl_80590094
lbl_80590094:
	.incbin "baserom.dol", 0x58C194, 0x10
.global lbl_805900A4
lbl_805900A4:
	.incbin "baserom.dol", 0x58C1A4, 0x10
.global lbl_805900B4
lbl_805900B4:
	.incbin "baserom.dol", 0x58C1B4, 0x14
.global lbl_805900C8
lbl_805900C8:
	.incbin "baserom.dol", 0x58C1C8, 0x3F
.global lbl_80590107
lbl_80590107:
	.incbin "baserom.dol", 0x58C207, 0x11
.global lbl_80590118
lbl_80590118:
	.incbin "baserom.dol", 0x58C218, 0x78
.global lbl_80590190
lbl_80590190:
	.incbin "baserom.dol", 0x58C290, 0x10
.global lbl_805901A0
lbl_805901A0:
	.incbin "baserom.dol", 0x58C2A0, 0x10
.global lbl_805901B0
lbl_805901B0:
	.incbin "baserom.dol", 0x58C2B0, 0x93
.global lbl_80590243
lbl_80590243:
	.incbin "baserom.dol", 0x58C343, 0x1D
.global lbl_80590260
lbl_80590260:
	.incbin "baserom.dol", 0x58C360, 0x10
.global lbl_80590270
lbl_80590270:
	.incbin "baserom.dol", 0x58C370, 0x90
.global lbl_80590300
lbl_80590300:
	.incbin "baserom.dol", 0x58C400, 0xA0
.global lbl_805903A0
lbl_805903A0:
	.incbin "baserom.dol", 0x58C4A0, 0xA
.global lbl_805903AA
lbl_805903AA:
	.incbin "baserom.dol", 0x58C4AA, 0x42
.global lbl_805903EC
lbl_805903EC:
	.incbin "baserom.dol", 0x58C4EC, 0x78
.global lbl_80590464
lbl_80590464:
	.incbin "baserom.dol", 0x58C564, 0x10
.global lbl_80590474
lbl_80590474:
	.incbin "baserom.dol", 0x58C574, 0x14
.global lbl_80590488
lbl_80590488:
	.incbin "baserom.dol", 0x58C588, 0x3C
.global lbl_805904C4
lbl_805904C4:
	.incbin "baserom.dol", 0x58C5C4, 0x90
.global lbl_80590554
lbl_8059


}.e-pivotclient input.e-memberCurrentPage,@{e-js}.e-pivotclient input.e-memberCurrentSearchPage,@{e-js}.e-pivotclient input.e-memberCurrentDrillPage {
    & when (@skin = "office-365"){
       width:23px !important;
       height:15px !important;
   }
}
@{e-js}.e-pivotclient .e-removeMeasure {
  background-position: 0 -1835px !important;
  margin: 4px;
  color:@oclient-icons-color;
   & when (@skin = "office-365"){
       padding:3px 5px 6px 3px;
   }
}
@{e-js}.e-pivotclient .e-removeMeasure:hover{
    & when (@skin = "office-365"){
       background-color:@neutral-lighter;
   }
}
@{e-js}.e-pivotclient .e-removeMeasure:before {
 content:"\e681";
 font-size:13px;
 display: inline-block;
 }
@{e-js}.e-pivotclient .e-measureEditor {
   & when not (@skin = "office-365"){
       margin: 3px 5px 0px 5px;
   }
   & when (@skin = "office-365"){
       margin: 3px 15px 0px 15px;
       background-color:@neutral-white !important;
   }
}
@{e-js}.e-pivotclient .e-measureEditor:hover {
  .oclient-header-color();
  cursor: pointer;
}
@{e-js}.e-pivotclient .e-measureEditor:focus{
   & when (@skin = "office-365"){
       background-color:@neutral-lighter;
   }
}
@{e-js}.e-pivotclient button.e-dialogOKBtn, @{e-js}.e-pivotclient .e-dialogFooter button:first-child, @{e-js}.e-pivotclient button.e-errOKBtn, @{e-js}.e-pivotclient button.e-btnCalcMemberOk {
   & when (@skin = "office-365"){
       background-color: @theme-primary;
       color:@theme-primary-font;
       border:1px @theme-primary;
   }
}
@{e-js}.e-pivotclient button.e-dialogOKBtn:hover, @{e-js}.e-pivotclient .e-dialogFooter button:first-child:hover, @{e-js}.e-pivotclient button.e-errOKBtn:hover, @{e-js}.e-pivotclient button.e-btnCalcMemberOk:hover {
   & when (@skin = "office-365"){
       background-color: @theme-dark;
       color:@theme-primary-font;
       border:1px @theme-dark;
   }
}
@{e-js}.e-pivotclient button.e-dialogOKBtn:focus, @{e-js}.e-pivotclient .e-dialogFooter button:first-child:focus, @{e-js}.e-pivotclient button.e-errOKBtn:focus, @{e-js}.e-pivotclient button.e-btnCalcMemberOk:focus {
   & when (@skin = "office-365"){
       background-color: @theme-dark;
       color:@theme-primary-font;
       border:1px @theme-primary;
   }
}
@{e-js}.e-pivotclient button.e-dialogOKBtn:active, @{e-js}.e-pivotclient .e-dialogFooter button:first-child:active, @{e-js}.e-pivotclient button.e-errOKBtn:active, @{e-js}.e-pivotclient button.e-btnCalcMemberOk:active {
   & when (@skin = "office-365"){


----------------------------------------
	*/
.section .rodata.cortex_x1_regs, "aS"
cortex_x1_regs:  /* The ascii list of register names to be reported */
	.asciz	"cpuectlr_el1", ""

func cortex_x1_cpu_reg_dump
	adr	x6, cortex_x1_regs
	mrs	x8, CORTEX_X1_CPUECTLR_EL1
	ret
endfunc cortex_x1_cpu_reg_dump

declare_cpu_ops cortex_x1, CORTEX_X1_MIDR, \
	cortex_x1_reset_func, \
	cortex_x1_core_pwr_dwn


 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.

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.22.0
// 	protoc        v3.12.3
// source: google/cloud/dataproc/v1beta2/jobs.proto

package dataproc

import (
	context "context"
	reflect "reflect"
	sync "sync"

	proto "github.com/golang/protobuf/proto"
	empty "github.com/golang/protobuf/ptypes/empty"
	timestamp "github.com/golang/protobuf/ptypes/timestamp"
	_ "google.golang.org/genproto/googleapis/api/annotations"
	longrunning "google.golang.org/genproto/googleapis/longrunning"
	field_mask "google.golang.org/genproto/protobuf/field_mask"
	grpc "google.golang.org/grpc"
	codes "google.golang.org/grpc/codes"
	status "google.golang.org/grpc/status"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

// This is a compile-time assertion that a sufficiently up-to-date version
// of the legacy proto package is being used.
const _ = proto.ProtoPackageIsVersion4

// The Log4j level for job execution. When running an
// [Apache Hive](http://hive.apache.org/) job, Cloud
// Dataproc configures the Hive client to an equivalent verbosity level.
type LoggingConfig_Level int32

const (
	// Level is unspecified. Use default level for log4j.
	LoggingConfig_LEVEL_UNSPECIFIED LoggingConfig_Level = 0
	// Use ALL level for log4j.
	LoggingConfig_ALL LoggingConfig_Level = 1
	// Use TRACE level for log4j.
	LoggingConfig_TRACE LoggingConfig_Level = 2
	// Use DEBUG level for log4j.
	LoggingConfig_DEBUG LoggingConfig_Level = 3
	// Use INFO level for log4j.
	LoggingConfig_INFO LoggingConfig_Level = 4
	// Use WARN level for log4j.
	LoggingConfig_WARN LoggingConfig_Level = 5
	// Use ERROR level for log4j.
	LoggingConfig_ERROR LoggingConfig_Level = 6
	// Use FATAL level for log4j.
	LoggingConfig_FATAL LoggingConfig_Level = 7
	// Turn off log4j.
	LoggingConfig_OFF LoggingConfig_Level = 8
)

// Enum value maps for LoggingConfig_Level.
var (
	LoggingConfig_Level_name = map[int32]string{
		0: "LEVEL_UNSPECIFIED",
		1: "ALL",
		2: "TRACE",
		3: "DEBUG",
		4: "INFO",
		5: "WARN",
		6: "ERROR",
		7: "FATAL",
		8: "OFF",
	}
	LoggingConfig_Level_value = map[string]int32{
		"LEVEL_UNSPECIFIED": 0,
		"ALL":               1,
		"TRACE":             2,
		"DEBUG":


}

#[allow(unused_variables)]
fn ___action29<
    'input,
>(
text: &'input str,
(_, _, _): (usize, Tok<'input>, usize),
(_, _, _): (usize, Tok<'input>, usize),
(_, p, _): (usize, Path, usize),
(_, _, _): (usize, Tok<'input>, usize),
) -> Visibility
{
Visibility::Pub(Some(p))
}

#[allow(unused_variables)]
fn ___action30<
    'input,
>(
text: &'input str,
(_, ___0, _): (usize, Tok<'input>, usize),
) -> Visibility
{
Visibility::Pub(None)
}

#[allow(unused_variables)]
fn ___action31<
    'input,
>(
text: &'input str,
(_, ___0, _): (usize, (), usize),
) -> Visibility
{
Visibility::Priv
}

#[allow(unused_variables)]
fn ___action32<
    'input,
>(
text: &'input str,
(_, annotations, _): (usize, ::std::vec::Vec<Annotation>, usize),
(_, v, _): (usize, Visibility, usize),
(_, lo, _): (usize, usize, usize),
(_, n, _): (usize, (NonterminalString, Vec<NonterminalString>), usize),
(_, hi, _): (usize, usize, usize),
(_, t, _): (usize, ::std::option::Option<TypeRef>, usize),
(_, _, _): (usize, Tok<'input>, usize),
(_, a, _): (usize, Vec<Alternative>, usize),
) -> GrammarItem
{
{
        GrammarItem::Nonterminal(NonterminalData { visibility: v,
                                                   span: Span(lo, hi),
                                                   name: n.0,
                                                   annotations,
                                                   args: n.1,
                                                   type_decl: t,
                                                   alternatives: a })
    }
}

#[allow(unused_variables)]
fn ___action33<
    'input,
>(
text: &'input str,
(_, _, _): (usize, Tok<'input>, usize),
(_, name, _): (usize, Atom, usize),
(_, _, _): (usize, Tok<'input>, usize),
(_, value, _): (usize, &'input str, usize),
(_, _, _): (usize, Tok<'input>, usize),
) -> (Atom, String)
{
(name, value.into())
}

#[allow(unused_variables)]
fn ___action34<
    'input,
>(
text: &'input str,
(_, _, _): (usize, Tok<'input>, usize),
(_, _, _): (usize, Tok<'input>, usize),
(_, lo, _): (usize, usize, usize),
(_, id, _): (usize, Atom, usize),
(_, arg, _): (usize, ::std::option::Option<(Atom, String)>, usize),
(_, hi, _): (usize, usize, usize),
(_, _, _): (usize, Tok<'input>, usize),
) -> Annotation
{
{
        Annotation { id_span: Span(lo, hi), id, arg }
    }
}

#[allow(unused_variables)]
fn ___action35<
    'input,
>(
text: &'input str,
(_, ___0, _): (usize, NonterminalString, usize),
(_, _, _): (usize, Tok<'input>, usize),
(_, ___1, _): (usize, Vec<NonterminalString>, usize),
(_, _, _): (usize, Tok<'input>, usize)


#ifndef _INCLUDED_SKILLANIMPANEL_H
#define _INCLUDED_SKILLANIMPANEL_H

#ifdef _WIN32
#pragma once
#endif

#include <vgui/VGUI.h>
#include <vgui_controls/Panel.h>

// this panel handles animations over the marine's skill buttons when someone upgrades a skill

struct SpendParticle
{
	SpendParticle()
	{
		m_fXPos = 0;
		m_fYPos = 0;
		m_fXSpeed = 0;
		m_fYSpeed = 0;
		m_fLifetime = 1.0f;
	};

	float m_fXPos;
	float m_fYPos;
	float m_fXSpeed;
	float m_fYSpeed;
	float m_fLifetime;
};

class SkillAnimPanel : public vgui::Panel
{
	DECLARE_CLASS_SIMPLE( SkillAnimPanel, vgui::Panel );
public:
	SkillAnimPanel(vgui::Panel *parent, const char *panelName);
	virtual ~SkillAnimPanel();
	virtual void Paint();
	virtual void PaintParticles();
	virtual void PaintParticle(SpendParticle* p);
	virtual void PerformLayout();

	virtual void AddParticlesAroundPanel(vgui::Panel* pPanel);
	virtual SpendParticle* AddParticle(int xPos, int yPos, float xSpeed, float ySpeed);
	virtual float GetLifeFraction(SpendParticle* p);
	virtual void OnThink();
	virtual void UpdateParticles();

	CUtlVector<SpendParticle*> m_Particles;

	CPanelAnimationVarAliasType( int, m_nParticleTexture, "ParticleTexture", "vgui/swarm/Briefing/SkillParticle", "textureid" );
};

#endif // _INCLUDED_SKILLANIMPANEL_H


                    devtransport = "usb"
                    if "BTHENUM" in port[2].upper():
                        devtransport = "bluetooth"
                        parts = port[2].split("&")
                        if len(parts) > 5:
                            mac_parts = parts[5].split("_")
                            mac_address = ':'.join([mac_parts[0][i:i+2] for i in range(0, len(mac_parts[0]), 2)]).upper()
                        description = "Keyglove Bluetooth serial device (%s)" % mac_address
                elif relaxed == True:
                    # unknown/generic/?
                    description = port[2]
                    if "BTHENUM" in port[2].upper():
                        devtransport = "bluetooth"
                        parts = port[2].split("&")
                        if len(parts) > 5:
                            mac_parts = parts[5].split("_")
                            mac_address = ':'.join([mac_parts[0][i:i+2] for i in range(0, len(mac_parts[0]), 2)]).upper()
                    if "16C0:048" in port[2].upper():
                        devhardware = "teensy"
                        description = "Teensy USB serial device"
                    if "1D50_PID&6025" in port[2].upper():
                        devhardware = "keyglove"
                        description = "Keyglove Bluetooth serial device (%s)" % mac_address
                else:
                    # move to the next object, no matches
                    continue

                yield KeygloveDevice(devobj=port[1], type="serial", backend="pyserial", transport=devtransport, hardware=devhardware, port=port[0], description=description, mac=mac_address)


DescribeWechatApplets")

    return
}

func NewDescribeWechatAppletsResponse() (response *DescribeWechatAppletsResponse) {
    response = &DescribeWechatAppletsResponse{
        BaseResponse: &tchttp.BaseResponse{},
    }
    return

}

// DescribeWechatApplets
// 查看微信小程序
//
// 可能返回的错误码:
//  AUTHFAILURE = "AuthFailure"
//  DRYRUNOPERATION = "DryRunOperation"
//  FAILEDOPERATION = "FailedOperation"
//  INTERNALERROR = "InternalError"
//  INVALIDFILTER = "InvalidFilter"
//  INVALIDPARAMETER = "InvalidParameter"
//  INVALIDPARAMETERVALUE = "InvalidParameterValue"
//  LIMITEXCEEDED = "LimitExceeded"
//  MISSINGPARAMETER = "MissingParameter"
//  OPERATIONDENIED = "OperationDenied"
//  REGIONERROR = "RegionError"
//  REQUESTLIMITEXCEEDED = "RequestLimitExceeded"
//  RESOURCEINUSE = "ResourceInUse"
//  RESOURCEINSUFFICIENT = "ResourceInsufficient"
//  RESOURCENOTFOUND = "ResourceNotFound"
//  RESOURCEUNAVAILABLE = "ResourceUnavailable"
//  RESOURCESSOLDOUT = "ResourcesSoldOut"
//  UNAUTHORIZEDOPERATION = "UnauthorizedOperation"
//  UNKNOWNPARAMETER = "UnknownParameter"
//  UNSUPPORTEDOPERATION = "UnsupportedOperation"
func (c *Client) DescribeWechatApplets(request *DescribeWechatAppletsRequest) (response *DescribeWechatAppletsResponse, err error) {
    return c.DescribeWechatAppletsWithContext(context.Background(), request)
}

// DescribeWechatApplets
// 查看微信小程序
//
// 可能返回的错误码:
//  AUTHFAILURE = "AuthFailure"
//  DRYRUNOPERATION = "DryRunOperation"
//  FAILEDOPERATION = "FailedOperation"
//  INTERNALERROR = "InternalError"
//  INVALIDFILTER = "InvalidFilter"
//  INVALIDPARAMETER = "InvalidParameter"
//  INVALIDPARAMETERVALUE = "InvalidParameterValue"
//  LIMITEXCEEDED = "LimitExceeded"
//  MISSINGPARAMETER = "MissingParameter"
//  OPERATIONDENIED = "OperationDenied"
//  REGIONERROR = "RegionError"
//  REQUESTLIMITEXCEEDED = "RequestLimitExceeded"
//  RESOURCEINUSE = "ResourceInUse"
//  RESOURCEINSUFFICIENT = "ResourceInsufficient"
//  RESOURCENOTFOUND = "ResourceNotFound"
//  RESOURCEUNAVAILABLE = "ResourceUnavailable"
//  RESOURCESSOLDOUT = "ResourcesSoldOut"
//  UNAUTHORIZEDOPERATION = "UnauthorizedOperation"
//  UNKNOWNPARAMETER = "UnknownParameter"
//  UNSUPPORTEDOPERATION = "UnsupportedOperation"
func (c *Client) DescribeWechatAppletsWithContext(ctx context.Context, request *DescribeWechatAppletsRequest) (response *DescribeWechatAppletsResponse, err error) {
    if request == nil {
        request = NewDescribeWechatAppletsRequest()
    }
    c.InitBaseRequest(&request.BaseRequest, "ctem", APIVersion, "DescribeWechatApplets")

    if c.GetCredential() == nil {
        return nil, errors.New("DescribeWechatApplets require credential")
    }

    request.SetContext(ctx)

    response = NewDescribeWechatAppletsResponse()
    err = c.Send(request, response)
    return
}

func NewDescribeWechatOfficialAccountsRequest() (request *DescribeWechatOfficialAccountsRequest) {
    request = &DescribeWechatOfficialAccountsRequest{
        BaseRequest: &tchttp.BaseRequest{},
    }

    request.Init().WithApiInfo("ctem", APIVersion, "DescribeWechatOfficialAcco


refactoring, TestInit};
    const NAME: &str = "introduce-closure";

    #[test]
    fn introduce_closure_single_expr1() {
        let input = r#"fn foo() {
    /*refactor-tool:test-id:start*/let _ : i32 = { 1 };/*refactor-tool:test-id:end*/
}"#;
        let expected = Ok(r#"fn foo() {
    /*refactor-tool:test-id:start*/let _ : i32 = (|| { 1 })();/*refactor-tool:test-id:end*/
}"#.to_owned());

        let actual = run_refactoring(TestInit::from_refactoring(input, NAME));
        assert_eq!(actual, expected);
    }

    #[test]
    fn adds_comment_1() {
        let input = r#"fn foo() {
    /*refactor-tool:test-id:start*/let _ : i32 = { 1 };/*refactor-tool:test-id:end*/
}"#;
        let expected = Ok(r#"fn foo() {
    /*refactor-tool:test-id:start*/let _ : i32 = /*refactor-tool:introduce-closure.call-expr:start*/(|| { 1 })()/*refactor-tool:introduce-closure.call-expr:end*/;/*refactor-tool:test-id:end*/
}"#.to_owned());

        let actual = run_refactoring(
            TestInit::from_refactoring(input, NAME)
            .with_add_comment());
        assert_eq!(actual, expected);
    }

    #[test]
    fn adds_comment_2() {
        let input = r#"fn foo() {
    loop {
        /*refactor-tool:test-id:start*/{
            break;
            5
        }/*refactor-tool:test-id:end*/;
    }
}"#;
        let expected = Ok(r#"fn foo() {
    loop {
        /*refactor-tool:test-id:start*/match /*refactor-tool:introduce-closure.call-expr:start*/(|| {
            return ReturnFoo::Break();
            ReturnFoo::Expr(5)
        })()/*refactor-tool:introduce-closure.call-expr:end*/ {
ReturnFoo::Break() => break,
ReturnFoo::Expr(e) => e}/*refactor-tool:test-id:end*/;
    }
}
enum ReturnFoo {
Break(),
Expr(i32)
}"#.to_owned());

        let actual = run_refactoring(
            TestInit::from_refactoring(input, NAME)
            .with_add_comment());
        assert_eq!(actual, expected);
    }
    // TODO: test add_comment for call expression and match-expression
}use gpu_util::glam::{EulerRot, Quat, Vec3};

#[repr(C)]
#[derive(Clone, Copy, Default)]
pub struct Vertex {
    pub pos: Vec3,
    pub normal: Vec3,
    pub color: Vec3,
}

pub struct Camera {
    pub translation: Vec3,
    pub yaw: f32,
    pub pitch: f32,
    pub roll: f32,
    pub fovy: f32,
    pub znear: f32,
    pub zfar: f32,
}

impl Camera {
    pub fn rotation(&self) -> Quat {
        Quat::from_euler(EulerRot::YXZ, self.yaw, self.pitch, self.roll)
    }

    pub fn rotation_xy(&self) -> Quat {
        Quat::from_euler(EulerRot::YXZ, self.yaw, 0.0, 0.0)
    }
}

pub struct MeshData {
    pub vertices: Vec<Vertex>,
    pub indices: Vec<u32>,
}

pub struct ControlState {
    pub forward: bool,
    pub backward: bool,
    pub left: bool,
    pub right: bool,
    pub fast: bool,
}
<reponame>john-sharratt/ate


) get() else null
        }
    }

    private suspend fun findAndDownloadTabletFromGD(
        date: LocalDate,
        files: List<GoogleDriveParser.Item>,
        fileName: String
    ): Boolean {
        try {
            Auditor.debug("d", "dd: 4")
            Auditor.debug("d", "dd: 5")
            Auditor.debug("d", "dd: 6 ${files.files().map { it.name }}")
            Auditor.debug(
                "d",
                "dd: 6 $fileName"
            )

            val tablet = files
                .files()
                .firstOrNull {
                    "${
                        date.dayOfMonth.toString().padStart(2, '0')
                    }.${
                        date.month.value.toString().padStart(2, '0')
                    }.${date.year}.xlsx" in it.name
                }
                ?: return false

            Auditor.debug("d", "dd: 7")

            val downloadedTablet = client.get(tablet.getDownloadLink()).readRawBytes()

            Auditor.debug("d", "dd: 8")

            fileManager.writeFile(
                FileManager.DirectoryType.CACHE,
                fileName,
                downloadedTablet
            )

            Auditor.debug("d", "dd: 9")

            return true
        } catch (e: Exception) {
            Auditor.debug("d", "dd: 10")
            return false
        }
    }

    private fun parseLessonsFromWorkbook(
        workbook: Workbook,
        columns: Int,
        predicate: (teacher: String, group: String) -> Boolean
    ): List<Lesson> {
        val lessons = mutableListOf<Lesson>()

        workbook.forEach { sheet ->
            var emptyRows = 0
            var rowIndex = -1

            val otUnits = mutableListOf<OneTimeUnit>()

            val lessonNumber =
                if ("Пара" !in sheet.sheetName) 0
                else sheet.sheetName.split(" ").last().toInt()

            for (row in sheet) {
                rowIndex++
                if (rowIndex == 0) continue
                if (emptyRows > 5) break

                if (row.lastCellNum < 0) emptyRows++
                else (0..<columns).mapIndexedNotNull { colIndex, i ->
                    val firstCellIndex = i * 3

                    Auditor.debug("d", "coord: ($colIndex;$rowIndex;$firstCellIndex)")

                    val auditory = row.getCell(firstCellIndex)
                        ?.toString()
                        ?.ifEmpty { return@mapIndexedNotNull null }
                        ?: return@mapIndexedNotNull null

                    val teacher = row.getCell(firstCellIndex + 2)
                        ?.toString()
                        ?.ifEmpty { return@mapIndexedNotNull null }
                        ?.trim()
                        ?: return@mapIndexedNotNull null

                    val groups = row.getCell(firstCellIndex + 1)
                        ?.toString()
                        ?.split(if (columns == 1) "+" else ",")
                        ?.filter { predicate(teacher, it) }
                        ?.ifEmpty { return@mapIndexedNotNull null }
                        ?: return@mapIndexedNotNull null

                    Auditor.debug("d", "auditory: $auditory, group: $groups, teacher: $teacher")

                    Auditor.debug(
                        "d",
                        "lessonNumber: $lessonNumber ${sheet.sheetName} ${"Пара" in sheet.sheetName}"
                    )

                    groups.map {
                        OneTimeUnit(
                            auditory = try {
                                auditory.toFloat().toInt().toString()
                            } catch (e: Exception) {
                                auditory
                            },
                            group = Group(it.trim()),
                            teacher = Teacher(
                                teacher.replace(
                                    "__", "_"
                                ), teacher


unc() {
				Expect(len(spec.Containers)).To(Equal(2))
				sidecarContainer := spec.Containers[1]
				Expect(sidecarContainer.Name).To(Equal(fdbv1beta2.SidecarContainerName))
				Expect(sidecarContainer.Args).To(Equal([]string{
					"--copy-file",
					"fdb.cluster",
					"--input-monitor-conf",
					"fdbmonitor.conf",
					"--copy-binary",
					"fdbserver",
					"--copy-binary",
					"fdbcli",
					"--main-container-version",
					cluster.Spec.Version,
					"--substitute-variable",
					fdbv1beta2.EnvNamePodIP,
					"--substitute-variable",
					fdbv1beta2.EnvNameDNSName,
				}))
			})

			It(
				"should have the environment variables for the IPs in the sidecar container",
				func() {
					sidecarEnv := GetEnvVars(spec.Containers[1])
					Expect(sidecarEnv[fdbv1beta2.EnvNamePublicIP]).NotTo(BeNil())
					Expect(sidecarEnv[fdbv1beta2.EnvNamePublicIP].ValueFrom).NotTo(BeNil())
					Expect(
						sidecarEnv[fdbv1beta2.EnvNamePublicIP].ValueFrom.FieldRef.FieldPath,
					).To(Equal("status.podIP"))
					Expect(sidecarEnv[fdbv1beta2.EnvNamePodIP]).NotTo(BeNil())
					Expect(sidecarEnv[fdbv1beta2.EnvNamePodIP].ValueFrom).NotTo(BeNil())
					Expect(
						sidecarEnv[fdbv1beta2.EnvNamePodIP].ValueFrom.FieldRef.FieldPath,
					).To(Equal("status.podIP"))
				},
			)

			It("should have the environment variables for the IPs in the init container", func() {
				sidecarEnv := GetEnvVars(spec.InitContainers[0])
				Expect(sidecarEnv[fdbv1beta2.EnvNamePublicIP]).NotTo(BeNil())
				Expect(sidecarEnv[fdbv1beta2.EnvNamePublicIP].ValueFrom).NotTo(BeNil())
				Expect(
					sidecarEnv[fdbv1beta2.EnvNamePublicIP].ValueFrom.FieldRef.FieldPath,
				).To(Equal("status.podIP"))
				Expect(sidecarEnv[fdbv1beta2.EnvNamePodIP]).NotTo(BeNil())
				Expect(sidecarEnv[fdbv1beta2.EnvNamePodIP].ValueFrom).NotTo(BeNil())
				Expect(
					sidecarEnv[fdbv1beta2.EnvNamePodIP].ValueFrom.FieldRef.FieldPath,
				).To(Equal("status.podIP"))
			})
		})

		Context("with a the public IP from the service", func() {
			BeforeEach(func() {
				var source = fdbv1beta2.PublicIPSourceService
				cluster.Spec.Routing.PublicIPSource = &source
				spec, err = GetPodSpec(
					cluster,
					GetProcessGroup(cluster, fdbv1beta2.ProcessClassStorage, 1),
				)
				Expect(err).NotTo(HaveOccurred())
			})

			It(
				"should have the environment variables for the IPs in the sidecar container",
				func() {
					sidecarEnv := GetEnvVars(spec.Containers[1])
					Expect(sidecarEnv[fdbv1beta2.EnvNamePublicIP]).NotTo(BeNil())
					Expect(sidecarEnv[fdbv1beta2.EnvNamePublicIP].ValueFrom).NotTo(BeNil())
					Expect(
						sidecarEnv[fdbv1beta2.EnvNamePublicIP].ValueFrom.FieldRef.FieldPath,
					).To(Equal("metadata.annotations['foundationdb.org/public-ip']"))
					Expect(sidecarEnv[fdbv1beta2.EnvNamePodIP]).NotTo(BeNil())
					Expect(sidecarEnv[fdbv1beta2.EnvNamePodIP].ValueFrom).NotTo(BeNil())
					Expect(
						sidecarEnv[fdbv


},

	{
		"7a",
		8, 0, 1, '.', 0,
		"a) foo",
		"a) foo",
	},

	{
		"7b",
		8, 0, 1, ' ', 0,
		"b) foo\tbar",
		"b) foo  bar",
	},

	{
		"7c",
		8, 0, 1, '.', 0,
		"c) foo\tbar\t",
		"c) foo..bar",
	},

	{
		"7d",
		8, 0, 1, '.', 0,
		"d) foo\tbar\n",
		"d) foo..bar\n",
	},

	{
		"7e",
		8, 0, 1, '.', 0,
		"e) foo\tbar\t\n",
		"e) foo..bar.....\n",
	},

	{
		"7f",
		8, 0, 1, '.', FilterHTML,
		"f) f<o\tbar\t\n",
		"f) f<o..bar.....\n",
	},

	{
		"7g",
		8, 0, 1, '.', FilterHTML,
		"g) f<o\tbar\t non-terminated entity &amp",
		"g) f<o..bar..... non-terminated entity &amp",
	},

	{
		"7g debug",
		8, 0, 1, '.', FilterHTML | Debug,
		"g) f<o\tbar\t non-terminated entity &amp",
		"g) f<o..|bar.....| non-terminated entity &amp",
	},

	{
		"8",
		8, 0, 1, '*', 0,
		"Hello, world!\n",
		"Hello, world!\n",
	},

	{
		"9a",
		1, 0, 0, '.', 0,
		"1\t2\t3\t4\n" +
			"11\t222\t3333\t44444\n",

		"1.2..3...4\n" +
			"11222333344444\n",
	},

	{
		"9b",
		1, 0, 0, '.', FilterHTML,
		"1\t2\t3\t4\n" + // \f inside HTML is ignored
			"11\t222\t3333\t44444\n",

		"1.2..3...4\n" +
			"11222333344444\n",
	},

	{
		"9c",
		1, 0, 0, '.', 0,
		"1\t2\t3\t4\f" + // \f causes a newline and flush
			"11\t222\t3333\t44444\n",

		"1234\n" +
			"11222333344444\n",
	},

	{
		"9c debug",
		1, 0, 0, '.', Debug,
		"1\t2\t3\t4\f" + // \f causes a newline and flush
			"11\t222\t3333\t44444\n",

		"1|2|3|4\n" +
			"---\n" +
			"11|222|3333|44444\n",
	},

	{
		"10a",
		5, 0, 0, '.', 0,
		"1\t2\t3\t4\n",
		"1....2....3....4\n",
	},

	{
		"10b",
		5, 0, 0, '.', 0,
		"1\t2\t3\t4\t\n",
		"1....2....3....4....\n",
	},

	{
		"11",
		8, 0, 1, '.', 0,
		"本\tb\tc\n" +
			"aa\t\u672c\u672c\


//
//  RNBO_MidiEvent.h
//
//  Created by Rob Sussman on 8/4/15.
//
//

#ifndef _RNBO_MidiEvent_H_
#define _RNBO_MidiEvent_H_

namespace RNBO {

    // Note that this is not derived from anything, it just declares getTime() and
    // can therefore be used inside an event list.

    /**
     * An event that can hold a timestamped MIDI Event (MIDI Note, pitchbend etc.)
     */
	class EventTarget;

	class MidiEvent {
	public:
		MidiEvent()
		: _eventTime(0)
		, _portIndex(0)
		, _length(0)
		, _eventTarget(nullptr)
		{
			_midiData[0] = 0;
			_midiData[1] = 0;
			_midiData[2] = 0;
		}

		MidiEvent(MillisecondTime eventTime, int portIndex, int b1, int b2, int b3, EventTarget* eventTarget = nullptr)
		: _eventTime(eventTime)
		, _portIndex(portIndex)
		, _eventTarget(eventTarget)
		{
			// todo: assert b1, b2, and b3 are valid
			_midiData[0] = uint8_t(b1);
			_midiData[1] = uint8_t(b2);
			_midiData[2] = uint8_t(b3);
			// let length based on the status
			int status = b1 & 0xF0;
			if (status == 0xC0 || status == 0xD0 || b1 == 0xF1 || b1 == 0xF3) {
				//prog change, channel pressure, quarter frame, song select
				_length = 2;
			} else if ((b1 >= 0xF8 && b1 <= 0xFF) || b1 == 0xF6) {
				//realtime, tune request
				_length = 1;
			} else {
				_length = 3;
			}
		}

		MidiEvent(MillisecondTime eventTime, int portIndex, ConstByteArray data, Index length, EventTarget* eventTarget = nullptr)
		: _eventTime(eventTime)
		, _portIndex(portIndex)
		, _eventTarget(eventTarget)
		{
			const Index maxlen = sizeof(_midiData) / sizeof(_midiData[0]);
			for (Index i = 0; i < maxlen; i++) {
				_midiData[i] = 0;
			}
			_length = length > maxlen ? maxlen : length;
			// TODO: handle larger midi packets?
			for (Index i = 0; i < _length; i++) {
				_midiData[i] = data[i];
			}
		}

		bool operator==(const MidiEvent& rhs) const
		{
			return rhs.getTime() == getTime()
			&& rhs.getPortIndex() == getPortIndex()
			&& rhs.getData() == getData()
			&& rhs.getLength() == getLength()
			&& rhs._eventTarget == _eventTarget;
		}

		int getPortIndex() const { return _portIndex; }
		ConstByteArray getData() const  { return _midiData; }
		Index getLength() const { return _length; }

		MillisecondTime getTime() const { return _eventTime; }
		EventTarget* getEventTarget() const { return _eventTarget; }

		// debugging
		void dumpEvent() const {
			// TODO: would be good to have logging that doesn't depend on fprintf
			// fprintf(stdout, "MidiEvent: time=%.3f port=%d length=%d b1=%d b2=%d b3=%d\n", _eventTime, _portIndex, _length, _midiData[0], _midiData[1], _midiData[2]);
		}

	private:

		MillisecondTime	_eventTime;
		int				_portIndex;
		Index			_length;
		uint8_t			_midiData[3];

		friend class EventVariant;

		EventTarget*	_eventTarget;

		void setTime(MillisecondTime eventTime) { _eventTime = eventTime; }

	};

} // namespace RNBO

#endif // #ifndef _RNBO_MidiEvent_H_


g_info = {
	.options = WDIOF_SETTIMEOUT | WDIOF_KEEPALIVEPING,
	.identity = "DA9063 Watchdog",
};

static const struct watchdog_ops da9063_watchdog_ops = {
	.owner = THIS_MODULE,
	.start = da9063_wdt_start,
	.stop = da9063_wdt_stop,
	.ping = da9063_wdt_ping,
	.set_timeout = da9063_wdt_set_timeout,
	.restart = da9063_wdt_restart,
};

static int da9063_wdt_probe(struct platform_device *pdev)
{
	struct da9063 *da9063;
	struct watchdog_device *wdd;

	if (!pdev->dev.parent)
		return -EINVAL;

	da9063 = dev_get_drvdata(pdev->dev.parent);
	if (!da9063)
		return -EINVAL;

	wdd = devm_kzalloc(&pdev->dev, sizeof(*wdd), GFP_KERNEL);
	if (!wdd)
		return -ENOMEM;

	wdd->info = &da9063_watchdog_info;
	wdd->ops = &da9063_watchdog_ops;
	wdd->min_timeout = DA9063_WDT_MIN_TIMEOUT;
	wdd->max_timeout = DA9063_WDT_MAX_TIMEOUT;
	wdd->min_hw_heartbeat_ms = DA9063_RESET_PROTECTION_MS;
	wdd->timeout = DA9063_WDG_TIMEOUT;
	wdd->parent = &pdev->dev;

	wdd->status = WATCHDOG_NOWAYOUT_INIT_STATUS;

	watchdog_set_restart_priority(wdd, 128);

	watchdog_set_drvdata(wdd, da9063);

	/* Change the timeout to the default value if the watchdog is running */
	if (da9063_wdt_is_running(da9063)) {
		da9063_wdt_update_timeout(da9063, DA9063_WDG_TIMEOUT);
		set_bit(WDOG_HW_RUNNING, &wdd->status);
	}

	return devm_watchdog_register_device(&pdev->dev, wdd);
}

static struct platform_driver da9063_wdt_driver = {
	.probe = da9063_wdt_probe,
	.driver = {
		.name = DA9063_DRVNAME_WATCHDOG,
	},
};
module_platform_driver(da9063_wdt_driver);

MODULE_AUTHOR("Mariusz Wojtasik <mariusz.wojtasik@diasemi.com>");
MODULE_DESCRIPTION("Watchdog driver for Dialog DA9063");
MODULE_LICENSE("GPL");
MODULE_ALIAS("platform:" DA9063_DRVNAME_WATCHDOG);


ito.kotlin.mock
import org.mockito.kotlin.whenever

class HttpsEmbeddedDataIntegrationTest {

    private lateinit var httpsUpgrader: HttpsUpgrader
    private lateinit var db: HttpsUpgradeDatabase

    private val context = InstrumentationRegistry.getInstrumentation().targetContext
    private var moshi = Moshi.Builder().add(HttpsFalsePositivesJsonAdapter()).build()
    private var mockFeatureToggle: FeatureToggle = mock()
    private var mockHttps: Https = mock()
    private var mockPixel: Pixel = mock()

    @Before
    fun before() {
        whenever(mockFeatureToggle.isFeatureEnabled(PrivacyFeatureName.HttpsFeatureName.value)).thenReturn(true)

        db = Room.inMemoryDatabaseBuilder(context, HttpsUpgradeDatabase::class.java)
            .allowMainThreadQueries()
            .build()

        val httpsBloomSpecDao = db.httpsBloomFilterSpecDao()
        val httpsFalsePositivesDao = db.httpsFalsePositivesDao()
        val binaryDataStore = BinaryDataStore(context)

        val persister = HttpsDataPersister(
            binaryDataStore,
            httpsBloomSpecDao,
            httpsFalsePositivesDao,
            db,
        )

        val embeddedDataPersister = PlayHttpsEmbeddedDataPersister(persister, binaryDataStore, httpsBloomSpecDao, context, moshi)

        val context = InstrumentationRegistry.getInstrumentation().targetContext
        val factory = HttpsBloomFilterFactoryImpl(httpsBloomSpecDao, binaryDataStore, embeddedDataPersister, persister, mockPixel, context)
        httpsUpgrader = HttpsUpgraderImpl(factory, httpsFalsePositivesDao, mockFeatureToggle, mockHttps)
        httpsUpgrader.reloadData()
    }

    @After
    fun after() {
        db.close()
    }

    @Ignore("This test is ignored because it has been flaky lately, see https://app.asana.com/0/1202552961248957/1203035277827863/f")
    fun whenUpgraderLoadedWithEmbeddedDataAndItemInBloomListThenUpdgraded() {
        assertTrue(httpsUpgrader.shouldUpgrade(Uri.parse("http://facebook.com")))
    }

    @Test
    fun whenUpgraderLoadedWithEmbeddedDataAndItemInFalsePositivesListThenNotUpdgraded() {
        assertFalse(httpsUpgrader.shouldUpgrade(Uri.parse("http://www.dppps.sc.gov")))
    }

    @Test
    fun whenUpgraderLoadedWithEmbeddedDataAndItemInBloomListThenNotUpdgraded() {
        assertFalse(httpsUpgrader.shouldUpgrade(Uri.parse("http://fjdsfhdksjfhdsfhdjsfhdsjfhdsjkfhdsjja.com")))
    }
}
/*
 * Copyright (c) 2021 DuckDuckGo
 *
 * 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 com.duckduckgo.app.di

import android.content.Context
import com.duckduckgo.common.utils.store.BinaryDataStore
import com.duckduckgo.di.scopes.AppScope
import com.duckduckgo.httpsupgrade.api.HttpsEmbeddedDataPersister
import com.duckduckgo.httpsupgrade.impl.HttpsDataPersister
import com.duckdu


>
The State of ML Competitions

What is happening in ML competitions? This analysis across 400+ ML competitions shows upwards trends with $22M in prize money, Kaggle growing as the leading platform, emerging libraries like Polars taking the world by storm, and Pytorch solidifying as the deep learning framework of choice: It seems that organisations are realising the opportunity and potential of AI Kaggle competitions to spark innovation, and these are also sparking insightful trends in the ML ecosystem. We are seeing that classical methods like gradient-boosted trees keep beating other methods in tabular and time series; convolutional NNs keep leading the way in vision tasks; NVIDIA GPUs (eg A100/H100) keep leading the way in compute, and; techniques like quantisation and synthetic data generation are clearly mechanisms that enable competitors take the prize often.

Chip Huyen Beyond Agent Hype

Chip Huyen comes back once again with a fantastic take on LLM agentic systems beyond the hype: Chip has been one of the leaders defining the conceptual framework to reason about Agentic Systems, and this keynote is yet another great resource to


 binary as high and low tones, with
; leading low tone for reference. Omits leading
; zeroes.
; Preserved: AF, BC, DE, HL
play_byte:
     push af
     push hl

     ; HL = (A << 1) | 1
     scf
     rla
     ld   l,a
     ld   h,0
     rl   h

     ; Shift left until next-to-top bit is 1
-    add  hl,hl
     bit  6,h
     jr   z,-

     ; Reset sound
     delay_msec 400
     wreg NR52,0    ; sound off
     wreg NR52,$80  ; sound on
     wreg NR51,$FF  ; mono
     wreg NR50,$77  ; volume

-    add  hl,hl

     ; Low or high pitch based on bit shifted out
     ; of HL
     ld   a,0
     jr   nc,+
     ld   a,$FF
+    sta  NR23

     ; Play short tone
     wreg NR21,$A0
     wreg NR22,$F0
     wreg NR24,$86
     delay_msec 75
     wreg NR22,0
     wreg NR23,$F8
     wreg NR24,$87
     delay_msec 200

     ; Loop until HL = $8000
     ld   a,h
     xor  $80
     or   l
     jr   nz,-

     pop  hl
     pop  af
     ret

.ends


.withHour(21).withMinute(0)
        val expectedNext =
            followingMonday.toInstant().toEpochMilli() - clock.currentTimeMillis()
        assertEquals(expectedNext, msToNextAlarm)
    }

    @Test fun flip_testNextAlarmTime_onSaturday() {
        setStartAndEndTime("21:00", "04:00")
        setNow(FLIP_TIME_2)

        val msToNextAlarm = alarmScheduler.msToNextAlarm(0L)
        val followingMonday = clock.todayZoned().withHour(21).withMinute(0).plusDays(2)
        val expectedNext =
            followingMonday.toInstant().toEpochMilli() - clock.currentTimeMillis()
        assertEquals(expectedNext, msToNextAlarm)
    }

    @Test fun flip_testNextAlarmTime_onSunday() {
        setStartAndEndTime("21:00", "04:00")
        setNow(FLIP_TIME_3)

        val msToNextAlarm = alarmScheduler.msToNextAlarm(0L)
        val followingMonday = clock.todayZoned().withHour(21).withMinute(0).plusDays(1)
        val expectedNext =
            followingMonday.toInstant().toEpochMilli() - clock.currentTimeMillis()
        assertEquals(expectedNext, msToNextAlarm)
    }

    // ////////////////////////////////////////////////////////////
    // Tests for when non-default days are selected
    // ////////////////////////////////////////////////////////////

    @Test fun testNextAlarmTime_saturdaySelected() {
        setStartAndEndTime("09:30", "16:30")
        setNow(TIME_5) // Friday 6pm

        // Select Saturday as an update day
        setSelectDays(setOf(MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY))

        val msToNextAlarm = alarmScheduler.msToNextAlarm(0L)
        val followingSaturday = clock.todayZoned().withHour(9).withMinute(30).plusDays(1)
        val expectedNext =
            followingSaturday.toInstant().toEpochMilli() - clock.currentTimeMillis()
        assertEquals(expectedNext, msToNextAlarm)
    }

    @Test fun testNextAlarmTime_sundaySelected() {
        setStartAndEndTime("09:30", "16:30")
        setNow(TIME_5) // Friday 6pm

        // Select Sunday as an update day
        setSelectDays(setOf(MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SUNDAY))

        val msToNextAlarm = alarmScheduler.msToNextAlarm(0L)
        val followingSunday = clock.todayZoned().withHour(9).withMinute(30).plusDays(2)
        val expectedNext =
            followingSunday.toInstant().toEpochMilli() - clock.currentTimeMillis()
        assertEquals(expectedNext, msToNextAlarm)
    }

    @Test fun flip_testNextAlarmTime_sundaySelected() {
        setStartAndEndTime("21:00", "04:00")
        setNow(FLIP_TIME_5) // Friday 6am

        // Select Friday Sunday as an update day
        setSelectDays(setOf(MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SUNDAY))

        var msToNextAlarm = alarmScheduler.msToNextAlarm(0L)
        val fridayEvening = clock.todayZoned().withHour(21).withMinute(0)
        var expectedNext =
            fridayEvening.toInstant().toEpochMilli() - clock.currentTimeMillis()
        assertEquals(expectedNext, msToNextAlarm)

        // Remove Friday as an update day
        setSelectDays(setOf(MONDAY, TUESDAY, WEDNESDAY, THURSDAY, SUNDAY))
        msToNextAlarm = alarmScheduler.msToNextAlarm(0L)
        val sundayEven