s  // 11000001-10101111-10100010-00111110
// CHECK-INST: srshl   { z30.s, z31.s }, { z30.s, z31.s }, z15.s
// CHECK-ENCODING: [0x3e,0xa2,0xaf,0xc1]
// CHECK-ERROR: instruction requires: sme2
// CHECK-UNKNOWN: c1afa23e <unknown>

srshl   {z0.s, z1.s}, {z0.s, z1.s}, {z0.s, z1.s}  // 11000001-10100000-10110010-00100000
// CHECK-INST: srshl   { z0.s, z1.s }, { z0.s, z1.s }, { z0.s, z1.s }
// CHECK-ENCODING: [0x20,0xb2,0xa0,0xc1]
// CHECK-ERROR: instruction requires: sme2
// CHECK-UNKNOWN: c1a0b220 <unknown>

srshl   {z20.s, z21.s}, {z20.s, z21.s}, {z20.s, z21.s}  // 11000001-10110100-10110010-00110100
// CHECK-INST: srshl   { z20.s, z21.s }, { z20.s, z21.s }, { z20.s, z21.s }
// CHECK-ENCODING: [0x34,0xb2,0xb4,0xc1]
// CHECK-ERROR: instruction requires: sme2
// CHECK-UNKNOWN: c1b4b234 <unknown>

srshl   {z22.s, z23.s}, {z22.s, z23.s}, {z8.s, z9.s}  // 11000001-10101000-10110010-00110110
// CHECK-INST: srshl   { z22.s, z23.s }, { z22.s, z23.s }, { z8.s, z9.s }
// CHECK-ENCODING: [0x36,0xb2,0xa8,0xc1]
// CHECK-ERROR: instruction requires: sme2
// CHECK-UNKNOWN: c1a8b236 <unknown>

srshl   {z30.s, z31.s}, {z30.s, z31.s}, {z30.s, z31.s}  // 11000001-10111110-10110010-00111110
// CHECK-INST: srshl   { z30.s, z31.s }, { z30.s, z31.s }, { z30.s, z31.s }
// CHECK-ENCODING: [0x3e,0xb2,0xbe,0xc1]
// CHECK-ERROR: instruction requires: sme2
// CHECK-UNKNOWN: c1beb23e <unknown>

srshl   {z0.d, z1.d}, {z0.d, z1.d}, z0.d  // 11000001-11100000-10100010-00100000
// CHECK-INST: srshl   { z0.d, z1.d }, { z0.d, z1.d }, z0.d
// CHECK-ENCODING: [0x20,0xa2,0xe0,0xc1]
// CHECK-ERROR: instruction requires: sme2
// CHECK-UNKNOWN: c1e0a220 <unknown>

srshl   {z20.d, z21.d}, {z20.d, z21.d}, z5.d  // 11000001-11100101-10100010-00110100
// CHECK-INST: srshl   { z20.d, z21.d }, { z20.d, z21.d }, z5.d
// CHECK-ENCODING: [0x34,0xa2,0xe5,0xc1]
// CHECK-ERROR: instruction requires: sme2
// CHECK-UNKNOWN: c1e5a234 <unknown>

srshl   {z22.d, z23.d}, {z22.d, z23.d}, z8.d  // 110000


l fun nativeRemoveAllChildren()

}package com.temple.skiaui.compose.ui

import androidx.compose.ui.graphics.Color

enum class FlexWrap(val value: String) {
    Unspecified("Unspecified"),
    NoWrap("nowrap"),
    Wrap("wrap"),
    WrapReverse("wrap-reverse")
}

enum class FlexDirection(val value: String) {
    Unspecified("Unspecified"),
    Row("row"),
    RowReverse("row-reverse"),
    Column("column"),
    ColumnReverse("column-reverse")
}

enum class Justify(val value: String) {
    Unspecified("Unspecified"),
    FlexStart("flex-start"),
    FlexEnd("flex-end"),
    Center("center"),
    SpaceBetween("space-between"),
    SpaceAround("space-around"),
    SpaceEvenly("space-evenly")
}

enum class Align(val value: String) {
    Unspecified("Unspecified"),
    FlexStart("flex-start"),
    Center("center"),
    FlexEnd("flex-end"),
    Stretch("stretch"),
    BaseLine("baseline"),
    SpaceBetween("space-between"),
    SpaceAround("space-around"),
    Auto("auto")
}

enum class ScaleType(val value: String) {
    Unspecified("Unspecified"),
    FitXY("fill"),
    CenterCrop("cover"),
    FitCenter("container")
}

enum class Position(val value: String) {
    Unspecified("Unspecified"),
    Absolute("absolute"),
    Static("static"),
    Relative("relative")
}

enum class TextAlign(val value: String) {
    Unspecified("Unspecified"),
    kLeft("left"),
    kRight("right"),
    kCenter("center"),
    kJustify("justify"),
    kStart("start"),
    kEnd("end"),
}

enum class ContentScale(val value: String) {
    Unspecified("Unspecified"),
    Fill("fill"),
    Cover("cover"),
    Contain("contain")
}

data class TextGradient(val colors: Array<Color>, val pos: FloatArray)
package com.temple.skiaui.compose.material

import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.contentColorFor
import androidx.compose.runtime.Composable
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.dp
import com.temple.skiaui.compose.foundation.Modifier
import com.temple.skiaui.compose.foundation.backgroundColor
import com.temple.skiaui.compose.foundation.corner
import com.temple.skiaui.compose.foundation.paddings
import com.temple.skiaui.compose.runtime.Text

@Composable
fun Badge(
    content: String,
    containerColor: Color = MaterialTheme.colorScheme.error,
    contentColor: Color = contentColorFor(MaterialTheme.colorScheme.error)
) {
    val paddingTop = if (content.isEmpty()) 8.dp else 5.dp
    Text(
        modifier = Modifier.backgroundColor(containerColor)
            .corner(Int.MAX_VALUE.dp)
            .paddings(arrayOf(9.dp, paddingTop, 9.dp, paddingTop)),
        content = content,
        textSize = 10.dp,
        color = contentColor
    )
}package com.temple.skiaui.compose.runtime

import android.view.Choreographer
import androidx.compose.runtime.MonotonicFrameClock
import kotlinx.coroutines.suspendCancellableCoroutine
import kotlin.coroutines.ContinuationInterceptor
import kotlin.coroutines.coroutineContext

class HYComposeUIFrameClock(
    private val choreographer: Choreographer
) : MonotonicFrameClock {
    override suspend fun <R> withFrameNanos(
        onFrame: (Long) -> R
    ): R {
        val uiDispatcher = coroutineContext[ContinuationInterceptor] as? HYComposeUIDispatcher
        return suspendCancellableCoroutine { co ->
            // Important: this


bytes.Length;

      if (len == 0)
        return String.Empty;

      var encodedBytes = urlEncodeToBytes (bytes, 0, len);

      return Encoding.ASCII.GetString (encodedBytes);
    }

    public static string UrlEncode (string s)
    {
      return UrlEncode (s, Encoding.UTF8);
    }

    public static string UrlEncode (string s, Encoding encoding)
    {
      if (s == null)
        throw new ArgumentNullException ("s");

      var len = s.Length;

      if (len == 0)
        return s;

      if (encoding == null)
        encoding = Encoding.UTF8;

      var maxCnt = encoding.GetMaxByteCount (len);
      var bytes = new byte[maxCnt];
      var cnt = encoding.GetBytes (s, 0, len, bytes, 0);
      var encodedBytes = urlEncodeToBytes (bytes, 0, cnt);

      return Encoding.ASCII.GetString (encodedBytes);
    }

    public static string UrlEncode (byte[] bytes, int offset, int count)
    {
      if (bytes == null)
        throw new ArgumentNullException ("bytes");

      var len = bytes.Length;

      if (len == 0) {
        if (offset != 0)
          throw new ArgumentOutOfRangeException ("offset");

        if (count != 0)
          throw new ArgumentOutOfRangeException ("count");

        return String.Empty;
      }

      if (offset < 0 || offset >= len)
        throw new ArgumentOutOfRangeException ("offset");

      if (count < 0 || count > len - offset)
        throw new ArgumentOutOfRangeException ("count");

      if (count == 0)
        return String.Empty;

      var encodedBytes


t[Tuple[int, int]]`, *optional*):
                Tensor of shape `(batch_size, 2)` or list of tuples (`Tuple[int, int]`) containing the target size
                `(height, width)` of each image in the batch. If unset, predictions will not be resized.
            use_focal_loss (`bool` defaults to `True`):
                Variable informing if the focal loss was used to predict the outputs. If `True`, a sigmoid is applied
                to compute the scores of each detection, otherwise, a softmax function is used.

        Returns:
            `List[Dict]`: A list of dictionaries, each dictionary containing the scores, labels and boxes for an image
            in the batch as predicted by the model.
        """
        requires_backends(self, ["torch"])
        out_logits, out_bbox = outputs.logits, outputs.pred_boxes
        # convert from relative cxcywh to absolute xyxy
        boxes = center_to_corners_format(out_bbox)
        if target_sizes is not None:
            if len(out_logits) != len(target_sizes):
                raise ValueError(
                    "Make sure that you pass in as many target sizes as the batch dimension of the logits"
                )

            if isinstance(target_sizes, List):
                img_h = torch.Tensor([i[0] for i in target_sizes])
                img_w = torch.Tensor([i[1] for i in target_sizes])
            else:
                img_h, img_w = target_sizes.unbind(1)
            scale_fct = torch.stack([img_w, img_h, img_w, img_h], dim=1).to(boxes.device)
            boxes = boxes * scale_fct[:, None, :]

        num_top_queries = out_logits.shape[1]
        num_classes = out_logits.shape[2]

        if use_focal_loss:
            scores = torch.nn.functional.sigmoid(out_logits)
            scores, index = torch.topk(scores.flatten(1), num_top_queries, axis=-1)
            labels = index % num_classes
            index = index // num_classes
            boxes = boxes.gather(dim=1, index=index.unsqueeze(-1).repeat(1, 1, boxes.shape[-1]))
        else:
            scores = torch.nn.functional.softmax(out_logits)[:, :, :-1]
            scores, labels = scores.max(dim=-1)
            if scores.shape[1] > num_top_queries:
                scores, index = torch.topk(scores, num_top_queries, dim=-1)
                labels = torch.gather(labels, dim=1, index=index)
                boxes = torch.gather(boxes, dim=1, index=index.unsqueeze(-1).tile(1, 1, boxes.shape[-1]))

        results = []
        for s, l, b in zip(scores, labels, boxes):
            score = s[s > threshold]
            label = l[s > threshold]
            box = b[s > threshold]
            results.append({"scores": score, "labels": label, "boxes": box})

        return results


/* Linux default implementation for creat.
   Copyright (C) 2017-2024 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library.  If not, see
   <https://www.gnu.org/licenses/>.  */

#include <fcntl.h>
#include <sys/types.h>

#include <sysdep-cancel.h>

#ifndef __OFF_T_MATCHES_OFF64_T

/* Create FILE with protections MODE.  */
int
__creat (const char *file, mode_t mode)
{
# ifdef __NR_creat
  return SYSCALL_CANCEL (creat, file, mode);
# else
  return __open (file, O_WRONLY | O_CREAT | O_TRUNC, mode);
# endif
}
weak_alias (__creat, creat)

#endif


 arrayOfByte[1];
      return i + (j & 0xFF);
    }
    catch (Exception localException)
    {
    }
    return 0;
  }
}

/* Location:           /Users/zhangxun-xy/Downloads/qingting2/classes_dex2jar.jar
 * Qualified Name:     com.tencent.weibo.sdk.android.api.util.HypyUtil
 * JD-Core Version:    0.6.2
 */package com.tencent.weibo.sdk.android.component.sso.tools;

import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;

public class MD5Tools
{
  static final byte[] PADDING = arrayOfByte;
  static final int S11 = 7;
  static final int S12 = 12;
  static final int S13 = 17;
  static final int S14 = 22;
  static final int S21 = 5;
  static final int S22 = 9;
  static final int S23 = 14;
  static final int S24 = 20;
  static final int S31 = 4;
  static final int S32 = 11;
  static final int S33 = 16;
  static final int S34 = 23;
  static final int S41 = 6;
  static final int S42 = 10;
  static final int S43 = 15;
  static final int S44 = 21;
  private byte[] buffer = new byte[64];
  private long[] count = new long[2];
  private byte[] digest = new byte[16];
  public String digestHexStr;
  private long[] state = new long[4];

  static
  {
    byte[] arrayOfByte = new byte[64];
    arrayOfByte[0] = -128;
  }

  public MD5Tools()
  {
    md5Init();
  }

  private void Decode(long[] paramArrayOfLong, byte[] paramArrayOfByte, int paramInt)
  {
    int i = 0;
    for (int j = 0; ; j += 4)
    {
      if (j >= paramInt)
        return;
      paramArrayOfLong[i] = (b2iu(paramArrayOfByte[j]) | b2iu(paramArrayOfByte[(j + 1)]) << 8 | b2iu(paramArrayOfByte[(j + 2)]) << 16 | b2iu(paramArrayOfByte[(j + 3)]) << 24);
      i++;
    }
  }

  private void Encode(byte[] paramArrayOfByte, long[] paramArrayOfLong, int paramInt)
  {
    int i = 0;
    for (int j = 0; ; j += 4)
    {
      if (j >= paramInt)
        return;
      paramArrayOfByte[j] = ((byte)(int)(0xFF & paramArrayOfLong[i]));
      paramArrayOfByte[(j + 1)] = ((byte)(int)(0xFF & paramArrayOfLong[i] >>> 8));
      paramArrayOfByte[(j + 2)] = ((byte)(int)(0xFF & paramArrayOfLong[i] >>> 16));
      paramArrayOfByte[(j + 3)] = ((byte)(int)(0xFF & paramArrayOfLong[i] >>> 24));
      i++;
    }
  }

  private long F(long paramLong1, long paramLong2, long paramLong3)
  {
    return paramLong1 & paramLong2 | paramLong3 & (0xFFFFFFFF ^ paramLong1);
  }

  private long FF(long paramLong1, long paramLong2, long paramLong3, long paramLong4, long paramLong5, long paramLong6, long paramLong7)
  {
    long l = paramLong1 + (paramLong7 + (paramLong5 + F(paramLong2, paramLong3, paramLong4)));
    return paramLong2 + ((int)l << (int)paramLong6 | (int)l >>> (int)(32L - paramLong6));
  }

  private long G(long paramLong1, long paramLong2, long paramLong3)
  {
    return paramLong1 & paramLong3 | paramLong2 &


 convolver
            // was added.  "discrete" up-mixing of input would produce a
            // silent right channel r = 0, but the second convolver needs
            // r - l for RightConvolverMode::Difference.
            AllocateReverbInput(aInput, 2);
            AddScaledLeftToRight(&mReverbInput, -1.0f);
          } else {
            MOZ_ASSERT(channelInterpretation ==
                       ChannelInterpretation::Speakers);
            MOZ_ASSERT(mRightConvolverMode == RightConvolverMode::Direct);
            // The Reverb will essentially up-mix the single input channel by
            // feeding it into both convolvers.
          }
          // The second convolver does not have silent input, and so it will
          // not drain.  It will need to continue processing up-mixed input
          // because the next input block may be stereo, which would be mixed
          // with the signal remaining in the convolvers.
          // The extra WEBAUDIO_BLOCK_SIZE is subtracted below.
          mRemainingRightHistory =
              mReverb->impulseResponseLength() + WEBAUDIO_BLOCK_SIZE;
        }
      }
    }

    if (mReverbInput.mVolume == 0.0f) {  // not yet set
      if (aInput.mVolume != 1.0f) {
        AllocateReverbInput(aInput, inputChannelCount);  // pre-multiply
      } else {
        mReverbInput = aInput;
      }
    }

    mRemainingLeftOutput = mReverb->impulseResponseLength();
    MOZ_ASSERT(mRemainingLeftOutput > 0);
  }

  // "The ConvolverNode produces a mono output only in the single case where
  // there is a single input channel and a single-channel buffer."
  uint32_t outputChannelCount = 2;
  uint32_t reverbOutputChannelCount = 2;
  if (mRightConvolverMode != RightConvolverMode::Always) {
    // When the input changes from stereo to mono, the output continues to be
    // stereo for the length of the tail time, during which the two channels
    // may differ.
    if (mRemainingRightOutput > 0) {
      MOZ_ASSERT(mRemainingRightHistory > 0);
      mRemainingRightOutput -= WEBAUDIO_BLOCK_SIZE;
    } else {
      outputChannelCount = 1;
    }
    // The second convolver keeps processing until it drains.
    if (mRemainingRightHistory > 0) {
      mRemainingRightHistory -= WEBAUDIO_BLOCK_SIZE;
    } else {
      reverbOutputChannelCount = 1;
    }
  }

  // If there are two convolvers, then they each need an output buffer, even
  // if the second convolver is only processing to keep history of up-mixed
  // input.
  aOutput->AllocateChannels(reverbOutputChannelCount);

  mReverb->process(&mReverbInput, aOutput);

  if (mRightConvolverMode == RightConvolverMode::Difference &&
      outputChannelCount == 2) {
    // Add left to right.
    AddScaledLeftToRight(aOutput, 1.0f);
  } else {
    // Trim if outputChannelCount < reverbOutputChannelCount
    aOutput->mChannelData.TruncateLength(outputChannelCount);
  }
}

ConvolverNode::ConvolverNode(AudioContext* aContext)
    : AudioNode(aContext, 2, ChannelCountMode::Clamped_max,
                ChannelInterpretation::Speakers),
      mNormalize(true) {
  ConvolverNodeEngine* engine = new ConvolverNodeEngine(this, mNormalize);
  mTrack = AudioNodeTrack::Create(
      aContext, engine, AudioNodeTrack::NO_TRACK_FLAGS, aContext->Graph());
}

/* static */
already_AddRefed<ConvolverNode> ConvolverNode::Create(
    JSContext* aCx, AudioContext&


021:  ret
}");
            unaryOp("+", "nuint?", "nuint nuint.op_UnaryPlus(nuint value)", "3", "3",
@"{
  // Code size       34 (0x22)
  .maxstack  1
  .locals init (nuint? V_0,
                nuint? V_1)
  IL_0000:  ldarg.0
  IL_0001:  stloc.0
  IL_0002:  ldloca.s   V_0
  IL_0004:  call       ""bool nuint?.HasValue.get""
  IL_0009:  brtrue.s   IL_0015
  IL_000b:  ldloca.s   V_1
  IL_000d:  initobj    ""nuint?""
  IL_0013:  ldloc.1
  IL_0014:  ret
  IL_0015:  ldloca.s   V_0
  IL_0017:  call       ""nuint nuint?.GetValueOrDefault()""
  IL_001c:  newobj     ""nuint?..ctor(nuint)""
  IL_0021:  ret
}");
            unaryOp("+", "System.IntPtr?");
            unaryOp("+", "System.UIntPtr?");
            unaryOp("-", "nint?", "nint nint.op_UnaryNegation(nint value)", "3", "-3",
@"{
  // Code size       35 (0x23)
  .maxstack  1
  .locals init (nint? V_0,
                nint? V_1)
  IL_0000:  ldarg.0
  IL_0001:  stloc.0
  IL_0002:  ldloca.s   V_0
  IL_0004:  call       ""bool nint?.HasValue.get""
  IL_0009:  brtrue.s   IL_0015
  IL_000b:  ldloca.s   V_1
  IL_000d:  initobj    ""nint?""
  IL_0013:  ldloc.1
  IL_0014:  ret
  IL_0015:  ldloca.s   V_0
  IL_0017:  call       ""nint nint?.GetValueOrDefault()""
  IL_001c:  neg
  IL_001d:  newobj     ""nint?..ctor(nint)""
  IL_0022:  ret
}");
            // Reporting ERR_AmbigUnaryOp for `-(nuint?)value` is inconsistent with the ERR_BadUnaryOp reported
            // for `-(nuint)value`, but that difference in behavior is consistent with the pair of errors reported for
            // `-(ulong?)value` and `-(ulong)value`. See the "Special case" in Binder.UnaryOperatorOverloadResolution()
            // which handles ulong but not ulong?.
            unaryOp("-", "nuint?", null, null, null, null, Diagnostic(ErrorCode.ERR_AmbigUnaryOp, "-operand").WithArguments("-", "nuint?"));
            unaryOp("-", "System.IntPtr?");
            unaryOp("-", "System.UIntPtr?");
            unaryOp("!", "nint?");
            unaryOp("!", "nuint?");
            unaryOp("!", "System.IntPtr?");
            unaryOp("!", "System.UIntPtr?");
            unaryOp("~", "nint?", "nint nint.op_OnesComplement(nint value)", "3", "-4",
@"{
  // Code size       35 (0x23)
  .maxstack  1
  .locals init (nint? V_0,
                nint? V_1)
  IL_0000:  ldarg.0
  IL_0001:  stloc.0
  IL_0002:  ldloca.s   V_0
  IL_0004:  call       ""bool nint?.HasValue.get""
  IL_0009:  brtrue.s   IL_0015
  IL_000b:  ldloca.s   V_1
  IL_000d:  initobj    ""nint?""
  IL_0013:  ldloc.1
  IL_0014:  ret


    = &i18n.Message{ID: "Rule00008Desc", Other: "表里必须存在主键"}
	Rule00008Annotation = &i18n.Message{ID: "Rule00008Annotation", Other: "表必须存在主键。如果表没有明确指定主键，可能会导致一些问题，如数据一致性难以保证、查询性能下降、数据完整性问题、数据管理和维护困难以及数据库优化受限等。"}
	Rule00008Message    = &i18n.Message{ID: "Rule00008Message", Other: "表里必须存在主键"}
	Rule00009Desc       = &i18n.Message{ID: "Rule00009Desc", Other: "避免对条件字段使用函数操作"}
	Rule00009Annotation = &i18n.Message{ID: "Rule00009Annotation", Other: "对条件字段做函数操作，可能会破坏索引值的有序性，导致优化器选择放弃走索引，使查询性能大幅度降低"}
	Rule00009Message    = &i18n.Message{ID: "Rule00009Message", Other: "避免对条件字段使用函数操作"}
	Rule00010Desc       = &i18n.Message{ID: "Rule00010Desc", Other: "禁止进行删除主键的操作"}
	Rule00010Annotation = &i18n.Message{ID: "Rule00010Annotation", Other: "删除主键将影响表数据结构和性能，属于高开销操作。另外，如果业务中使用了主键，删除主键可能导致业务逻辑阻塞、异常等问题。"}
	Rule00010Message    = &i18n.Message{ID: "Rule00010Message", Other: "禁止进行删除主键的操作"}
	Rule00011Desc       = &i18n.Message{ID: "Rule00011Desc", Other: "存在多条对同一个表的修改语句，建议合并成一个ALTER语句"}
	Rule00011Annotation = &i18n.Message{ID: "Rule00011Annotation", Other: "避免对同一个表使用多条单独的ALTER语句，以减少数据库的锁定时间和执行开销，提高SQL语句的可读性和维护性。"}
	Rule00011Message    = &i18n.Message{ID: "Rule00011Message", Other: "存在多条对同一个表的修改语句，建议合并成一个ALTER语句"}
	Rule00012Desc       = &i18n.Message{ID: "Rule00012Desc", Other: "建议使用BIGINT类型表示小数"}
	Rule00012Annotation = &i18n.Message{ID: "Rule00012Annotation", Other: "在MySQL中，对于金额等需要高精度计算的小数，建议使用BIGINT类型表示，以避免浮点数精度问题。例如，可以用分来表示金额，1元在数据库中用整型表示为100。"}
	Rule00012Message    = &i18n.Message{ID: "Rule00012Message", Other: "建议使用BIGINT类型表示小数"}
	Rule00013Desc       = &i18n.Message{ID: "Rule00013Desc", Other: "建议使用 DECIMAL 类型表示精确数值"}
	Rule00013Annotation = &i18n


 went before him. ^verse-41

**42**  And when the Philistine looked about, and saw David, he disdained him: for he was but a youth, and ruddy, and of a fair countenance. ^verse-42

**43**  And the Philistine said unto David, Am I a [[#^note-43a|dog]], that thou comest to me with staves? And the Philistine cursed David by his gods. ^verse-43

**44**  And the Philistine said to David, Come to me, and I will give thy flesh unto the fowls of the air, and to the beasts of the field. ^verse-44

**45**  Then said David to the Philistine, Thou comest to me with a sword, and with a spear, and with a shield: but I come to thee in the [[#^note-45a|name]] of the Lord of hosts, the God of the armies of Israel, whom thou hast defied. ^verse-45

**46**  This day will the Lord [[#^note-46a|deliver]] thee into mine hand; and I will smite thee, and take thine head from thee; and I will give the carcases of the host of the Philistines this day unto the fowls of the air, and to the wild beasts of the earth; that all the earth may [[#^note-46b|know]] that there is a God in Israel. ^verse-46

**47**  And all this assembly shall know that the Lord saveth not with sword and spear: for the [[#^note-47a|battle]] is the Lord's, and he will give you into our hands. ^verse-47

**48**  And it came to pass, when the Philistine arose, and came and drew nigh to meet David, that David hasted, and ran toward the army to meet the Philistine. ^verse-48

**49**  And David put his hand in his bag, and took thence a stone, and slang it, and smote the Philistine in his forehead, that the stone sunk into his forehead; and he fell upon his face to the earth. ^verse-49

**50**  So David prevailed over the Philistine with a sling and with a stone, and smote the Philistine, and slew him; but there was no sword in the hand of David. ^verse-50

**51**  Therefore David ran, and stood upon the Philistine, and took his sword, and drew it out of the sheath thereof, and slew him, and cut off his head therewith. And when the Philistines saw their champion was dead, they fled. ^verse-51

**52**  And the men of Israel and of Judah arose, and shouted, and pursued the Philistines, until thou come to the valley, and to the gates of Ekron. And the wounded of the Philistines fell down by the way to Shaaraim, even unto Gath, and unto Ekron. ^verse-52

**53**  And the children of Israel returned from chasing after the Philistines, and they spoiled their tents. ^verse-53

**54**  And David took the head of the Philistine, and brought it to Jerusalem; but he put his armour in his tent. ^verse-54

**55**  ¶ And when Saul saw David go forth against the Philistine, he said unto [[#^note-55a|Abner]], the captain of the host, Abner, whose son is this youth? And Abner said, As thy soul liveth, O king, I cannot tell. ^verse-55

**56**  And the king said, Inquire thou whose son the [[#^note-56a|stripling]] is. ^verse-56

**57**  And as David returned from the slaughter of the Philistine, Abn


 _uiState.value.copy(error = "获取上传token失败")
                    return@launch
                }

                Log.d(tag, "✅ 获取到上传token: ${uploadToken.take(20)}...")

                // 2. 上传图片到七牛云
                Log.d(tag, "📤 开始上传图片到七牛云...")
                val uploadResult = com.yhchat.canary.utils.ImageUploadUtil.uploadImage(
                    context = context,
                    imageUri = imageUri,
                    uploadToken = uploadToken
                )

                uploadResult.fold(
                    onSuccess = { uploadResponse ->
                        Log.d(tag, "✅ 图片上传成功！")
                        Log.d(tag, "   key: ${uploadResponse.key}")
                        Log.d(tag, "   hash: ${uploadResponse.hash}")
                        Log.d(tag, "   size: ${uploadResponse.fsize}")
                        Log.d(tag, "   尺寸: ${uploadResponse.avinfo?.video?.width}x${uploadResponse.avinfo?.video?.height}")

                        // 3. 发送图片消息
                        val width = uploadResponse.avinfo?.video?.width ?: 1080
                        val height = uploadResponse.avinfo?.video?.height ?: 1920

                        Log.d(tag, "📤 发送图片消息...")
                        val sendResult = messageRepository.sendImageMessage(
                            chatId = currentChatId,
                            chatType = currentChatType,
                            imageKey = uploadResponse.key,
                            width = width,
                            height = height,
                            fileSize = uploadResponse.fsize,
                            quoteMsgId = quoteMsgId,
                            quoteMsgText = quoteMsgText
                        )

                        sendResult.fold(
                            onSuccess = {
                                Log.d(tag, "✅ 图片消息发送成功！")
                                // 刷新消息列表
                                loadMessages(refresh = true)
                            },
                            onFailure = { error ->
                                Log.e(tag, "❌ 发送图片消息失败", error)
                                _uiState.value = _uiState.value.copy(error = "发送图片失败: ${error.message}")
                            }
                        )
                    },
                    onFailure = { error ->
                        Log.e(tag, "❌ 上传图片失败", error)
                        _uiState.value = _uiState.value.copy(error = "上传图片失败: ${error.message}")
                    }
                )

            } catch (e: Exception) {
                Log.e(tag, "❌ 上传并发送图片异常", e)
                _uiState.value = _uiState.value.copy(error = "发送图片失败: ${e.message}")
            }
        }
    }

    /**
     * 处理编辑的消息
     */
    private fun handleEditedMessage(message: ChatMessage) {
        val isPrivateChat = message.chatId == message.recvId
        val targetChatId = if (isPrivateChat) message.sender.chatId else message.chatId

        if (targetChatId == currentChatId) {
            val existingIndex = _messages.indexOfFirst { it.msgId == message.msgId }
            if (existingIndex != -1) {
                _messages[existingIndex] = message


_canvas().build().unwrap();
    canvas.set_logical_size(WIDTH*10, HEIGHT*10 + 16 + 17).unwrap();
    let mut event_subsystem = sdl_context.event().unwrap();
    let mut event_pump = sdl_context.event_pump().unwrap();
    let texture_creator = canvas.texture_creator();
    let mut game = Game::new(&texture_creator);
    let mut level = 1;
    game.set_up_level(level);
    let mut status_level = Graphic::blank(8,1).textured(&texture_creator);
    let mut status_teleports = Graphic::blank(13,1).textured(&texture_creator);
    let mut status_emps = Graphic::blank(7,1).textured(&texture_creator);
    let mut lose = Graphic::load_from(Cursor::new(&include_bytes!("../lose")[..])).unwrap().textured(&texture_creator);
    lose.update_texture(&game.tile_set);
    let mut level_splash = Graphic::load_from(Cursor::new(&include_bytes!("../level_splash")[..])).unwrap().textured(&texture_creator);
    level_splash.update_texture(&game.tile_set);
    let mut rate_limiter = FPSManager::new();
    rate_limiter.set_framerate(40).unwrap();
    let mut micro_mode = false;
    let mut difficulty : Difficulty = MEDIUM;
    let mut menu = MenuBar::new(WIDTH*10)
                    .add(Menu::new("GAME",80,&texture_creator,&game.tile_set)
                            .add(MenuItem::new("Easy", 352,Keycode::F1,&texture_creator,&game.tile_set))
                            .add(MenuItem::new("Medium", 353, Keycode::F2,&texture_creator,&game.tile_set))
                            .add(MenuItem::new("Hard", 354, Keycode::F3,&texture_creator,&game.tile_set))
                            .add(MenuItem::separator(64, &texture_creator,&game.tile_set))
                            .add(MenuItem::new("Quit", 363, Keycode::F12,&texture_creator,&game.tile_set)))
                    .add(Menu::new("ACTION",136,&texture_creator,&game.tile_set)
                            .add(MenuItem::new("Teleport", 52,Keycode::Num1,&texture_creator,&game.tile_set))
                            .add(MenuItem::new("Safe Teleport",53, Keycode::Num2,&texture_creator,&game.tile_set))
                            .add(MenuItem::new("EMP", 54,Keycode::Num3,&texture_creator,&game.tile_set))
                            .add(MenuItem::separator(120,&texture_creator,&game.tile_set))
                            .add(MenuItem::new("Wait", 20,Keycode::S,&texture_creator,&game.tile_set))
                            .add(MenuItem::separator(120,&texture_creator,&game.tile_set))
                            .add(MenuItem::new("Restart",15, Keycode::N,&texture_creator,&game.tile_set)))
                    .add(Menu::new("VIEW",112,&texture_creator,&game.tile_set)
                            .add(MenuItem::new("Micro-mode",360, Keycode::F9, &texture_creator, &game.tile_set)));
    let mut cx = 0;
    let mut cy = 0;

    loop {
        if splash.is_none() {
            if game.won_level {
                level += 1;
                game.set_up_level(level);
                splash = Some(Splash::Level);
            }
            if game.dead {
                level = 1;
                game.new_game(difficulty);
                splash = Some(Splash::Loss);


['data']
                test_labels_batch = batch['labels']
                b, c, w, h = test_data_batch.shape
                test_data_batch = torch.reshape(test_data_batch, (b, c, w, h))
                test_labels_batch = torch.reshape(test_labels_batch, (b, num_classes, w, h))

                outputs = model(test_data_batch.to(device))
                outputs = [post_trans(i) for i in decollate_batch(outputs)]
                outputs = np.stack(outputs, axis=0)

                import matplotlib.pyplot as plt
                length += test_data_batch.shape[0] * ts_length
                for k in range(test_data_batch.shape[0]):
                    if mode != 'af':
                        output_stack = np.logical_or(output_stack, outputs[k, 1, :, :]>0.5)
                    else:
                        output_stack = outputs[k, 1, :, :]>0.5
                    label = test_labels_batch[k, 1, :, :]>0
                    label = label.numpy()

                    f1_ts = f1_score(label.flatten(), output_stack.flatten(), zero_division=1.0)
                    f1 += f1_ts
                    iou_ts = jaccard_score(label.flatten(), output_stack.flatten(), zero_division=1.0)
                    iou += iou_ts
                    plt.imshow(normalization(test_data_batch[k, 3, :, :]), cmap='gray')
                    img_tp = np.where(np.logical_and(output_stack==1, label==1), 1.0, 0.)
                    img_fp = np.where(np.logical_and(output_stack==1, label==0), 1.0, 0.)
                    img_fn = np.where(np.logical_and(output_stack==0, label==1), 1.0, 0.)
                    img_tp[img_tp==0.]=np.nan
                    img_fp[img_fp==0.]=np.nan
                    img_fn[img_fn==0.]=np.nan

                    plt.imshow(img_tp, cmap='autumn', interpolation='nearest')
                    plt.imshow(img_fp, cmap='summer', interpolation='nearest')
                    plt.imshow(img_fn, cmap='brg', interpolation='nearest')
                    plt.axis('off')

                    plt.savefig('evaluation_plot/id_{}_nhead_{}_hidden_{}_nbatch_{}_nts_{}_nc_{}.png'.format(id, num_heads, hidden_size, j, k, n_channel), bbox_inches='tight')
                    plt.show()
                    plt.close()
            iou_all += iou/length
            f1_all += f1/length
            print('ID{} IoU Score of the whole TS:{}'.format(id, iou/length))
            print('ID{} F1 Score of the whole TS:{}'.format(id, f1/length))
        print('model F1 Score: {} and iou score: {}'.format(f1_all/len(ids), iou_all/len(ids)))


/* Multiple versions of llrintf.
   Copyright (C) 2013-2024 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */

#include <math.h>
#include <shlib-compat.h>
#include "init-arch.h"
#include <libm-alias-float.h>

extern __typeof (__llrintf) __llrintf_ppc32 attribute_hidden;
extern __typeof (__llrintf) __llrintf_power6 attribute_hidden;

libc_ifunc (__llrintf,
	    (hwcap & PPC_FEATURE_ARCH_2_05)
	    ? __llrintf_power6
            : __llrintf_ppc32);

libm_alias_float (__llrint, llrint)


: relative;  text-align: center;  padding: 5px 10px;  cursor: pointer;}.w-e-toolbar .w-e-menu i {  color: #999;}.w-e-toolbar .w-e-menu:hover i {  color: #333;}.w-e-toolbar .w-e-active i {  color: #1e88e5;}.w-e-toolbar .w-e-active:hover i {  color: #1e88e5;}.w-e-text-container .w-e-panel-container {  position: absolute;  top: 0;  left: 50%;  border: 1px solid #ccc;  border-top: 0;  box-shadow: 1px 1px 2px #ccc;  color: #333;  background-color: #fff;  /* 为 emotion panel 定制的样式 */  /* 上传图片的 panel 定制样式 */}.w-e-text-container .w-e-panel-container .w-e-panel-close {  position: absolute;  right: 0;  top: 0;  padding: 5px;  margin: 2px 5px 0 0;  cursor: pointer;  color: #999;}.w-e-text-container .w-e-panel-container .w-e-panel-close:hover {  color: #333;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-title {  list-style: none;  display: -webkit-box;  display: -ms-flexbox;  display: flex;  font-size: 14px;  margin: 2px 10px 0 10px;  border-bottom: 1px solid #f1f1f1;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-title .w-e-item {  padding: 3px 5px;  color: #999;  cursor: pointer;  margin: 0 3px;  position: relative;  top: 1px;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-title .w-e-active {  color: #333;  border-bottom: 1px solid #333;  cursor: default;  font-weight: 700;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content {  padding: 10px 15px 10px 15px;  font-size: 16px;  /* 输入框的样式 */  /* 按钮的样式 */}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content input:focus,.w-e-text-container .w-e-panel-container .w-e-panel-tab-content textarea:focus,.w-e-text-container .w-e-panel-container .w-e-panel-tab-content button:focus {  outline: none;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content textarea {  width: 100%;  border: 1px solid #ccc;  padding: 5px;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content textarea:focus {  border-color: #1e88e5;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content input[type=text] {  border: none;  border-bottom: 1px solid #ccc;  font-size: 14px;  height: 20px;  color: #333;  text-align: left;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content input[type=text].small {  width: 30px;  text-align: center;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content input[type=text].block {  display: block;  width: 100%;  margin: 10px 0;}.


#!/usr/bin/env python
# -*- coding: utf-8 -*-
import copy
import datetime
import json
import os
import re
import struct
import threading
import time
import zlib
from urllib.parse import quote, unquote

import requests
import websocket
from bs4 import BeautifulSoup

# 仅从cfg和cfg_mod中获取参数，不会启动子监视器
class SubMonitor(threading.Thread):
    def __init__(self, name, tgt, tgt_name, cfg, **cfg_mod):
        super().__init__()
        self.name = name
        self.tgt = tgt
        self.tgt_name = tgt_name

        self.interval = 60
        self.timezone = 8
        self.vip_dic = {}
        self.word_dic = {}
        self.cookies = {}
        self.proxy = {}
        self.push_list = []
        # 不要直接修改通过cfg引用传递定义的列表和变量，请deepcopy后再修改
        for var in cfg:
            setattr(self, var, cfg[var])
        for var in cfg_mod:
            setattr(self, var, cfg_mod[var])

        self.stop_now = False

    def checksubmonitor(self):
        pass

    def run(self):
        while not self.stop_now:
            time.sleep(self.interval)

    def stop(self):
        self.stop_now = True

# 保留cfg(cfg_mod并不修改cfg本身)，可以启动子监视器
class Monitor(SubMonitor):
    # 初始化
    def __init__(self, name, tgt, tgt_name, cfg, **cfg_mod):
        super().__init__(name, tgt, tgt_name, cfg, **cfg_mod)
        self.cfg = copy.deepcopy(cfg)

        self.submonitor_config_name = "cfg"
        self.submonitor_threads = {}
        self.submonitor_cnt = 0
        self.submonitor_live_cnt = 0
        self.submonitor_checknow = False

        self.stop_now = False

    # 重设submonitorconfig名字并初始化
    def submonitorconfig_setname(self, submonitor_config_name):
        self.submonitor_config_name = submonitor_config_name
        submonitor_config = getattr(self, submonitor_config_name, {"submonitor_dic": {}})
        setattr(self, self.submonitor_config_name, submonitor_config)

    # 向submonitorconfig添加预设的config
    def submonitorconfig_addconfig(self, config_name, config):
        submonitor_config = getattr(self, self.submonitor_config_name)
        submonitor_config[config_name] = config
        setattr(self, self.submonitor_config_name, submonitor_config)

    # 向submonitorconfig的submonitor_dic中添加子线程信息以启动子线程
    def submonitorconfig_addmonitor(self, monitor_name, monitor_class, monitor_target, monitor_target_name,
                                    monitor_config_name, **config_mod):
        submonitor_config = getattr(self, self.submonitor_config_name)
        if monitor_name not in submonitor_config["submonitor_dic"]:
            submonitor_config["submonitor_dic"][monitor_name] = {}
        submonitor_config["submonitor_dic"][monitor_name]["class"] = monitor_class
        submonitor_config["submonitor_dic"][monitor_name]["target"] = monitor_target
        submonitor_config["submonitor_dic"][monitor_name]["target_name"] = monitor_target_name
        submonitor_config["submonitor_dic"][monitor_name]["config_name"] = monitor_config_name
        for mod in config_mod:
            submonitor_config["submonitor_dic"][monitor_name][mod] = config_mod[mod]
        setattr(self, self.submonitor_config_name, submonitor_config)

    # 从submonitorconfig的submonitor_dic中删除对应的子线程
    def submonitorconfig_delmonitor(self, monitor_name):
        submonitor_config = getattr(self, self.submonitor_config_name)
        if monitor_name in submonitor_config["submonitor_dic"]:
            submonitor_config["submonitor_dic"].pop(monitor_name)
        setattr(self, self.submonitor_config_name, submonitor_config)

    # 按照submonitorconfig检查子线程池
    def checksubmonitor(self):
        if not self.submonitor_checknow:
            self.submonitor_checknow = True
            submonitorconfig = getattr(self, self.submonitor_config_name)
            if "submonitor_dic" in submonitorconfig:
                self.submonitor_cnt = len(submonitorconfig["submonitor_dic"])
                for monitor_name in submonitorconfig["submonitor_dic"]:
                    if monitor_name not in self.submonitor_threads:
                        # 按照submonitorconfig启动子线程并添加到子线程池
                        monitor_thread = createmonitor(monitor_name, submonitorconfig)
                        self.submonitor_threads[monitor_name] = monitor_thread

                self.submonitor_live_cnt = 0
                for monitor_name in list(self.submonitor_threads):
                    if monitor_name not in submonitorconfig["submonitor_dic"]:
                        # 按照submonitorconfig关闭子线程并清理子线程池


Common_EventScript_Night::
	setvar VAR_DAYNIGHT, 1
	end

Common_EventScript_Day::
	setvar VAR_DAYNIGHT, 0
	end

Event_EndDemo::
	fadeoutbgm 0
	fadescreen FADE_TO_BLACK
	message Text_EndofDemo
	waitmessage
	waitbuttonpress
	delay 10
	warp MAP_PALLET_TOWN_PLAYERS_HOUSE_2F, 6, 6
	closemessage
	fadescreen FADE_FROM_BLACK
	releaseall
	end

Text_EndofDemo::
	.string "THIS IS THE END OF THE DEMO.$"

EventScript_SetExitingCyclingRoad::
	lockall
	clearflag FLAG_SYS_CYCLING_ROAD
	setvar VAR_CYCLING_ROAD, 0
	releaseall
	end

EventScript_SetEnteringCyclingRoad::
	lockall
	setvar VAR_CYCLING_ROAD, 1
	releaseall
	end

@ The below and surf.inc could be split into some text/notices.inc
gText_PokemartSign::
	.string "“Selected items for your convenience!”\n"
	.string "Pokémon Mart$"

gText_PokemonCenterSign::
	.string "“Rejuvenate your tired partners!”\n"
	.string "Pokémon Center$"

gText_MomOrDadMightLikeThisProgram::
	.string "{STR_VAR_1} might like this program.\n"
	.string "… … … … … … … … … … … … … … … …\p"
	.string "Better get going!$"

gText_WhichFloorWouldYouLike::
	.string "Which floor would you like?$"

gText_SandstormIsVicious::
	.string "The sandstorm is vicious.\n"
	.string "It's impossible to keep going.$"

gText_SelectWithoutRegisteredItem::
	.string "An item in the Bag can be\n"
	.string "registered to Select for easy use.$"

gText_LWithoutRegisteredItem::
	.string "An item in the Bag can be\n"
	.string "registered to L for easy use.$"

gText_RWithoutRegisteredItem::
	.string "An item in the Bag can be\n"
	.string "registered to R for easy use.$"

gText_PokemonTrainerSchoolEmail::
	.string "There's an e-mail from Pokémon Trainer\n"
	.string "School.\p"
	.string "… … … … … …\p"
	.string "A Pokémon may learn up to four moves.\p"
	.string "A Trainer's expertise is tested on the\n"
	.string "move sets chosen for Pokémon.\p"
	.string "… … … … … …$"

gText_PlayerHouseBootPC::
	.string "{PLAYER} booted up the PC.$"

gText_PokeblockLinkCanceled::
	.string "The link was canceled.$"

gText_UnusedNicknameReceivedPokemon::
	.string "Want to give a nickname to\n"
	.string "the {STR_VAR_2} you received?$"

gText_PlayerWhitedOut::
	.string "{PLAYER} is out of usable\n"
	.string "Pokémon!\p{PLAYER} whited out!$"

gText_RegisteredTrainerinPokeNav::
	.string "{STR_VAR_1} {STR_VAR_2} gave you\n"
	.string "their Cell Phone number.$"

gText_ComeBackWithSecretPower::
	.string "Do you know the TM Secret Power?\p"
	.string "Our group, we love the TM Secret\n"
	.string "Power.\p"
	.string "One of our members will give it to you.\n"
	.string "Come back and show me if you get it.\p"
	.string "We'll accept you as a member and sell\n"
	.string "you good stuff in secrecy.$"

	.include "


*****

// Write floating point value to output stream. Used from SoSFFloat
// and SoMFFloat.
void
sosffloat_write_value(SoOutput * out, float val)
{
  out->write(val);
}

// Write double precision floating point value to output stream. Used from
// SoSFDouble and SoMFDouble.
void
sosfdouble_write_value(SoOutput * out, double val)
{
  out->write(val);
}

// *************************************************************************

// Write SbString value to output stream. Used from SoSFString and
// SoMFString.
void
sosfstring_write_value(const SoField * f, SoOutput * out, const SbString & val)
{
  // VRML97 needs backslashes themselves to be backslash-quoted (like
  // in e.g. C strings), which is taken care of here instead of
  // downstream, as this is the last place we can find out whether or
  // not we're writing a VRML97 node.
  const SoFieldContainer * fc = f->getContainer();
  if (fc && fc->isOfType(SoNode::getClassTypeId()) &&
      (coin_assert_cast<const SoNode *>(fc)->getNodeType() & SoNode::VRML2)) {
    // FIXME: SbString should have had a replaceAll() method, so we
    // wouldn't have to spell out the iteration loop below. 20040614 mortene.
    SbString ws;
    for (int i = 0; i < val.getLength(); i++) {
      if (val[i] == '\\') { ws += '\\'; }
      ws += val[i];
    }
    out->write(ws);
  }
  else { // *Not* a VRML97 node, so write backslashes verbatim, as
         // dictated by the Inventor file format:
    out->write(val);
  }
}

// *************************************************************************

// Write matrix to output stream. Used from SoSFMatrix and SoMFMatrix.
void
sosfmatrix_write_value(SoOutput * out, const SbMatrix & m)
{
  if (out->isBinary()) {
    for(int i = 0; i < 4; i++) {
      for(int j = 0; j < 4; j++) {
        out->write(m[i][j]);
      }
    }
    return;
  }

  for(int k=0; k < 4; k++) {
    out->write(m[0][k]);
    if(k != 3) out->write(' ');
  }

  out->write('\n');
  out->incrementIndent();

  for(int i=1; i < 4; i++) {
    out->indent();
    for(int j=0; j < 4; j++) {
      out->write(m[i][j]);
      if(j != 3) out->write(' ');
    }
    if(i != 3) out->write('\n');
  }

  out->decrementIndent();
}

// *************************************************************************

// Read SbPlane from input stream, return TRUE if successful.  Used
// from SoSFPlane and SoMFPlane.
SbBool
sosfplane_read_value(SoInput * in, SbPlane & p)
{
  float f[4];
  for (int i = 0; i < 4; i++) {
    if (!in->read(f[i])) return FALSE;
  }
  p = SbPlane(SbVec3f(f[0], f[1], f[2]), f[3]);
  return TRUE;
}

// Write SbPlane value to output stream. Used from SoSFPlane and
// SoMFPlane.
void
sosfplane_write_value(SoOutput * out, const SbPlane & p)
{
  out->write(p.getNormal()[0]);
  if (!out->isBinary()) out->write(' ');
  out->write(p.


    run_test(test, size);
    run_test(test, size);
  }

  size = ASIZE;
  test[size] = INT32_MAX;

  for (i=0; i<20; i++) {
    constant_array(test, size);
    run_test(test, size);
  }

  for (i=0; i<20; i++) {
    increasing_array(test, size);
    run_test(test, size);
  }

  for (i=0; i<20; i++) {
    decreasing_array(test, size);
    run_test(test, size);
  }

  for (i=0; i<200; i++) {
    random_array(test, size);
    run_test(test, size);
  }

  size = ASIZE-1;
  test[size] = INT32_MAX;

  for (i=0; i<20; i++) {
    constant_array(test, size);
    run_test(test, size);
  }

  for (i=0; i<20; i++) {
    increasing_array(test, size);
    run_test(test, size);
  }

  for (i=0; i<20; i++) {
    decreasing_array(test, size);
    run_test(test, size);
  }

  for (i=0; i<200; i++) {
    random_array(test, size);
    run_test(test, size);
  }

  return 0;
}


background-accent-magenta-subtler-pressed, #e774bb);
}
._bfhky4f1 {
  background-color: var(--ds-background-success-pressed, #7ee2b8);
}
._bfhkybec {
  background-color: var(--ds-background-danger-bold, #c9372c);
}
._bfhkygwo {
  background-color: var(--ds-background-accent-purple-bolder, #6e5dc6);
}
._bfhkz2ec {
  background-color: var(--ds-background-accent-lime-subtler, #d3f1a7);
}
._bfhkzh8h {
  background-color: var(--ds-background-accent-teal-subtle-hovered, #9dd9ee);
}
._bozg1b66 {
  padding-inline-start: var(--ds-space-050, 4px);
}
._bozg1ejb {
  padding-inline-start: var(--ds-space-300, 24px);
}
._bozg1epz {
  padding-inline-start: var(--ds-space-1000, 5pc);
}
._bozg1jfw {
  padding-inline-start: var(--ds-space-500, 40px);
}
._bozgoahv {
  padding-inline-start: var(--ds-space-600, 3pc);
}
._bozgpxbi {
  padding-inline-start: var(--ds-space-200, 1pc);
}
._bozgv47k {
  padding-inline-start: var(--ds-space-250, 20px);
}
._bozgv77o {
  padding-inline-start: var(--ds-space-025, 2px);
}
._bozgxncg {
  padding-inline-start: var(--ds-space-800, 4pc);
}
._bozgxy5q {
  padding-inline-start: var(--ds-space-400, 2pc);
}
._y4ti1b66 {
  padding-inline-end: var(--ds-space-050, 4px);
}
._y4ti1ejb {
  padding-inline-end: var(--ds-space-300, 24px);
}
._y4ti1epz {
  padding-inline-end: var(--ds-space-1000, 5pc);
}
._y4ti1jfw {
  padding-inline-end: var(--ds-space-500, 40px);
}
._y4tioahv {
  padding-inline-end: var(--ds-space-600, 3pc);
}
._y4tipxbi {
  padding-inline-end: var(--ds-space-200, 1pc);
}
._y4tiv47k {
  padding-inline-end: var(--ds-space-250, 20px);
}
._y4tiv77o {
  padding-inline-end: var(--ds-space-025, 2px);
}
._y4tixncg {
  padding-inline-end: var(--ds-space-800, 4pc);
}
._y4tixy5q {
  padding-inline-end: var(--ds-space-400, 2pc);
}
._195g1i6y {
  margin-inline: var(--ds-space-negative-025, -2px);
}
._1mouze3t {
  margin-block: var(--ds-space-0, 0);
}
._lcxvglyw {
  pointer-events: none;
}
._syazjjyb {
  color: var(--ds-text-subtle, #42526e);
}
._1bah1b1v {
  justify-content: space-around;
}
._1b


the move out by calling fout() before finally	#
# exiting through _real_inex().						#
#									#
#########################################################################

	global		_fpsp_inex
_fpsp_inex:

	link.w		%a6,&-LOCAL_SIZE	# init stack frame

	fsave		FP_SRC(%a6)		# grab the "busy" frame

	movm.l		&0x0303,EXC_DREGS(%a6)	# save d0-d1/a0-a1
	fmovm.l		%fpcr,%fpsr,%fpiar,USER_FPCR(%a6) # save ctrl regs
	fmovm.x		&0xc0,EXC_FPREGS(%a6)	# save fp0-fp1 on stack

# the FPIAR holds the "current PC" of the faulting instruction
	mov.l		USER_FPIAR(%a6),EXC_EXTWPTR(%a6)

	mov.l		EXC_EXTWPTR(%a6),%a0	# fetch instruction addr
	addq.l		&0x4,EXC_EXTWPTR(%a6)	# incr instruction ptr
	bsr.l		_imem_read_long		# fetch the instruction words
	mov.l		%d0,EXC_OPWORD(%a6)

##############################################################################

	btst		&13,%d0			# is instr an fmove out?
	bne.w		finex_out		# fmove out

# the hardware, for "fabs" and "fneg" w/ a long source format, puts the
# longword integer directly into the upper longword of the mantissa along
# w/ an exponent value of 0x401e. we convert this to extended precision here.
	bfextu		%d0{&19:&3},%d0		# fetch instr size
	bne.b		finex_cont		# instr size is not long
	cmpi.w		FP_SRC_EX(%a6),&0x401e	# is exponent 0x401e?
	bne.b		finex_cont		# no
	fmov.l		&0x0,%fpcr
	fmov.l		FP_SRC_HI(%a6),%fp0	# load integer src
	fmov.x		%fp0,FP_SRC(%a6)	# store integer as extended precision
	mov.w		&0xe001,0x2+FP_SRC(%a6)

finex_cont:
	lea		FP_SRC(%a6),%a0		# pass: ptr to src op
	bsr.l		fix_skewed_ops		# fix src op

# Here, we zero the ccode and exception byte field since we're going to
# emulate the whole instruction. Notice, though, that we don't kill the
# INEX1 bit. This is because a packed op has long since been converted
# to extended before arriving here. Therefore, we need to retain the
# INEX1 bit from when the operand was first converted.
	andi.l		&0x00ff01ff,USER_FPSR(%a6) # zero all but accured field

	fmov.l		&0x0,%fpcr		# zero current control regs
	fmov.l		&0x0,%fpsr

	bfextu		EXC_EXTWORD(%a6){&0:&6},%d1 # extract upper 6 of cmdreg
	cmpi.b		%d1,&0x17		# is op an fmovecr?
	beq.w		finex_fmovcr		# yes

	lea		FP_SRC(%a6),%a0		# pass: ptr to src op
	bsr.l		set_tag_x		# tag the operand type
	mov.b		%d0,STAG(%a6)		#


{
	'Group', "Power",
	'Id', "WindTurbine",
	'template_class', "WindTurbine",
	'pin_rollover_context', "electricity",
	'construction_cost_Concrete', 4000,
	'construction_cost_MachineParts', 1000,
	'build_points', 1500,
	'is_tall', true,
	'dome_forbidden', true,
	'upgrade1_id', "WindTurbine_PolymerBlades",
	'upgrade1_display_name', T(5313, --[[BuildingTemplate WindTurbine upgrade1_display_name]] "Polymer Blades"),
	'upgrade1_description', T(5314, --[[BuildingTemplate WindTurbine upgrade1_description]] "+<upgrade1_mul_value_1>% Production."),
	'upgrade1_icon', "UI/Icons/Upgrades/polymer_blades_01.tga",
	'upgrade1_upgrade_cost_Polymers', 2000,
	'upgrade1_mod_label_1', "WindTurbine",
	'upgrade1_mod_prop_id_1', "electricity_production",
	'upgrade1_mul_value_1', 33,
	'maintenance_resource_type', "MachineParts",
	'maintenance_resource_amount', 500,
	'display_name', T(5315, --[[BuildingTemplate WindTurbine display_name]] "Wind Turbine"),
	'display_name_pl', T(5316, --[[BuildingTemplate WindTurbine display_name_pl]] "Wind Turbines"),
	'description', T(5317, --[[BuildingTemplate WindTurbine description]] "Generates Power. Increased production during Dust Storms and at high elevations."),
	'build_category', "Power",
	'display_icon', "UI/Icons/Buildings/wind_turbine.tga",
	'build_pos', 3,
	'entity', "WindTurbine",
	'encyclopedia_id', "WindTurbine",
	'encyclopedia_text', T(5318, --[[BuildingTemplate WindTurbine encyclopedia_text]] "Wind turbines generate electrical power from the Martian winds. The amount generated depends on how powerful the winds they are exposed to are, so proper positioning is essential as higher ground tends to be windier.\n\n<center><image UI/Common/rollover_line.tga 2000> <left>\n\nWhile wind speeds on Mars are generally mild, they can reach incredible speeds during dust storms. Still, the thin Martian atmosphere dictates that the average wind turbine would need winds around six times more powerful than those on Earth to create the same amount of thrust.\n \nThis technological challenge to take advantage of what little wind there is on Mars was solved by opting for vertical axis wind turbines, which are capable of catching the wind from all directions, instead of simply horizontal.  The materials used are light enough to self-start on much weaker forces than those most commonly used on Earth."),
	'encyclopedia_image', "UI/Encyclopedia/WindTurbine.tga",
	'label1', "OutsideBuildings",
	'label2', "OutsideBuildingsTargets",
	'palette_color1', "electro_accent_1",
	'palette_color2', "electro_base",
	'palette_color3', "electro_accent_2",
	'demolish_sinking', range(0, 0),
	'demolish_debris', 85,
	'entity2', "WindTurbineChrome",
	'entitydlc2', "dde",
	'electricity_production', 5000,
	'bonus_per_kilometer_elevation', 300,
	'min_production_to_work', 0,
})

PlaceObj('BuildingTemplate', {
	'Group', "Production",
	'Id', "DroneFactory",
	'template_class', "DroneFactory",
	'construction_cost_Metals', 15000,
	'constructio


model.original

import de.gematik.ti.erp.app.fhir.common.model.original.FhirIdentifier
import de.gematik.ti.erp.app.fhir.common.model.original.FhirMeta
import de.gematik.ti.erp.app.fhir.constant.SafeJson
import de.gematik.ti.erp.app.fhir.pkv.model.FhirPkvInvoiceMedicationDispenseErpModel
import de.gematik.ti.erp.app.fhir.prescription.model.original.FhirMedication
import de.gematik.ti.erp.app.utils.ParserUtil.asFhirTemporal
import de.gematik.ti.erp.app.utils.Reference
import io.github.aakira.napier.Napier
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.json.JsonElement

@Reference(
    info = "Dispensierung eines E-Rezepts (GEM_ERP_PR_MedicationDispense)",
    url = "https://simplifier.net/erezept-workflow/gem_erp_pr_medicationdispense"
)
@SerialName("MedicationDispense")
@Serializable
internal data class FhirPkvInvoiceMedicationDispenseBundle(
    @SerialName("resourceType") val resourceType: String? = null,
    @SerialName("id") val id: String? = null,
    @SerialName("meta") val meta: FhirMeta? = null,
    @SerialName("identifier") val identifier: List<FhirIdentifier> = emptyList(),
    @SerialName("contained") val contained: List<FhirMedication> = emptyList(),
    @SerialName("status") val status: String? = null,
    @SerialName("medicationReference") val medicationReference: FhirPkvMedicationDispenseReference? = null,
    @SerialName("subject") val subject: FhirPkvMedicationDispenseActor? = null,
    @SerialName("performer") val performer: List<FhirPkvMedicationDispensePerformer> = emptyList(),
    @SerialName("whenHandedOver") val whenHandedOver: String? = null,
    @SerialName("substitution") val wasSubstituted: FhirPkvMedicationDispenseSubstitution? = null
) {
    companion object {
        internal fun JsonElement.getPkvInvoiceMedicationDispenseBundle(): FhirPkvInvoiceMedicationDispenseBundle? {
            return try {
                SafeJson.value.decodeFromJsonElement(serializer(), this)
            } catch (e: Exception) {
                Napier.e(tag = "fhir-parser") { "Error parsing FhirPkvBaseBundle: ${e.message}" }
                null
            }
        }

        internal fun FhirPkvInvoiceMedicationDispenseBundle.toErpModel(): FhirPkvInvoiceMedicationDispenseErpModel {
            return FhirPkvInvoiceMedicationDispenseErpModel(
                whenHandedOver = whenHandedOver?.asFhirTemporal()
            )
        }
    }
}

@Serializable
internal data class FhirPkvMedicationDispenseSubstitution(
    @SerialName("wasSubstituted") val wasSubstituted: Boolean? = null
)

@Serializable
internal data class FhirPkvMedicationDispensePerformer(
    @SerialName("actor") val actor: FhirPkvMedicationDispenseActor? = null
)

@Serializable
internal data class FhirPkvMedicationDispenseActor(
    @SerialName("identifier") val identifier: FhirIdentifier? = null
)

@Serializable
internal data class FhirPkvMedicationDispenseReference(
    @SerialName("reference") val reference: String? = null,
    @SerialName("display") val display: String? = null
)
/*
 * Copyright (Change Date see Readme), gematik GmbH
 *
 * Licensed under the EUPL, Version 1.2 or - as soon they will be approved by the
 * European Commission – subsequent versions of the EUPL (the "Licence").
 * You may not use this work except in compliance with the Licence.
 *
 * You find a copy of the Licence in the "Licence" file or


-----------------------------------
-- Area: Oldton Movalpolos
--  NPC: Tarnotik
-- Type: Standard NPC
-- !pos 160.896 10.999 -55.659 11
-----------------------------------
require("scripts/globals/missions")
require("scripts/globals/npc_util")
-----------------------------------

function onTrade(player, npc, trade)
    if player:getCurrentMission(COP) >= tpz.mission.id.cop.THREE_PATHS and npcUtil.tradeHas(trade, 1725) then
        player:startEvent(32)
    end
end

function onTrigger(player, npc)
    if player:getCurrentMission(COP) == tpz.mission.id.cop.TH


-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }.i-akar-icons\:link-out{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M13.5 10.5L21 3m-5 0h5v5m0 6v5a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;width:1.2em;height:1.2em}.i-ant-design\:alert-twotone{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 1024 1024' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' fill-opacity='.15' d='M340 585c0-5.5 4.5-10 10-10h44c5.5 0 10 4.5 10 10v171h355V563c0-136.4-110.6-247-247-247S265 426.6 265 563v193h75z'/%3E%3Cpath fill='currentColor' d='m216.9 310.5l39.6-39.6c3.1-3.1 3.1-8.2 0-11.3l-67.9-67.9a8.03 8.03 0 0 0-11.3 0l-39.6 39.6a8.03 8.03 0 0 0 0 11.3l67.9 67.9c3.1 3.1 8.1 3.1 11.3 0m669.6-79.2l-39.6-39.6a8.03 8.03 0 0 0-11.3 0l-67.9 67.9a8.03 8.03 0 0 0 0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l67.9-67.9c3.1-3.2 3.1-8.2 0-11.3M484 180h56c4.4 0 8-3.6 8-


    words = self.count_words(self.doc_to_target(doc))
        bytes_ = self.count_bytes(self.doc_to_target(doc))
        return {
            "word_perplexity": (loglikelihood, words),
            "byte_perplexity": (loglikelihood, bytes_),
            "bits_per_byte": (loglikelihood, bytes_),
        }

    def aggregation(self) -> dict:
        return {
            "word_perplexity": weighted_perplexity,
            "byte_perplexity": weighted_perplexity,
            "bits_per_byte": bits_per_byte,
        }

    @classmethod
    def count_bytes(cls, doc) -> int:
        return len(doc.encode("utf-8"))

    @classmethod
    def count_words(cls, doc) -> int:
        """Downstream tasks with custom word boundaries should override this!"""
        return len(re.split(r"\s+", doc))


p>
    Bei den beiden anderen Formaten werden fehlende Werte durch den Standardrechner
    (der Rechner, auf dem Hudson läuft) bzw. Standard-JNLP-TCP-Port ergänzt. Insbesondere
    das <tt>HOST:</tt>-Format ist sehr praktisch, wenn ein HTTP-Reverse-Proxy verwendet
    wird und Hudson auf einem anderen Rechner läuft.

    When a slave is launched through JNLP, the slave agent attempts to connect to a specific TCP port of Hudson
    to establish a communication channel.
    But some security sensitive network can prevent you from making this connection.
    This can also happen when Hudson runs behind a load balancer,
    apache reverse proxy
    into DMZ, and so on.

    This tunneling option allows you to route this connection to another host/port, and useful for those situations.
    The field can either take "<tt>HOST:PORT</tt>", "<tt>:PORT</tt>", or "<tt>HOST:</tt>". In the first format,
    JNLP slave agent will connect to the given TCP port on the given host, and assume that you've configured your
    network so that this port forwards the connection to Hudson's JNLP slave TCP port.

    In the latter two formats, the default host name and port number (that is, the host name that Hudson runs,
    and the TCP port that Hudson opened) are used to augment the missing values. In particular the <tt>HOST:</tt> format
    is useful if the HTTP reverse proxy is used and Hudson actually runs on another system.

    Controls when Hudson starts and stops the slave.

            Keep this slave on-line as much as possible

            This is the default and normal setting.
            In this mode, Hudson uses tries to keep the slave on-line.
            If Hudson can start the slave without user assistance, it will periodically
            attempt to restart the slave if it is unavailable.
            Hudson will not take the slave off-line.

            Take this slave on-line and off-line at specific times

            In this mode, Hudson will keep the slave on-line according to the configured schedule.
            If Hudson can start the slave without user assistance, it will periodically
            attempt to start the slave if it is unavailable during an on-line window.

            During an off-line window, the slave will only be taken off-line if there are no active
            jobs running on the slave.

            Take this slave on-line when in demand and off-line when idle

            In this mode, if Hudson can launch the slave without user assistance, it will periodically
            attempt to launch the slave while there are unexecuted jobs which meet the following criteria:

They have been in the queue for at least the specified startup demand period

They can execute on this slave</l


eGroupMemberReq',
  '2': const [
    const {'1': 'group_id', '3': 1, '4': 1, '5': 3, '10': 'groupId'},
    const {'1': 'user_id', '3': 2, '4': 1, '5': 3, '10': 'userId'},
  ],
};

/// Descriptor for `DeleteGroupMemberReq`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List deleteGroupMemberReqDescriptor = $convert.base64Decode('ChREZWxldGVHcm91cE1lbWJlclJlcRIZCghncm91cF9pZBgBIAEoA1IHZ3JvdXBJZBIXCgd1c2VyX2lkGAIgASgDUgZ1c2VySWQ=');
@$core.Deprecated('Use getGroupMembersReqDescriptor instead')
const GetGroupMembersReq$json = const {
  '1': 'GetGroupMembersReq',
  '2': const [
    const {'1': 'group_id', '3': 1, '4': 1, '5': 3, '10': 'groupId'},
  ],
};

/// Descriptor for `GetGroupMembersReq`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List getGroupMembersReqDescriptor = $convert.base64Decode('ChJHZXRHcm91cE1lbWJlcnNSZXESGQoIZ3JvdXBfaWQYASABKANSB2dyb3VwSWQ=');
@$core.Deprecated('Use getGroupMembersRespDescriptor instead')
const GetGroupMembersResp$json = const {
  '1': 'GetGroupMembersResp',
  '2': const [
    const {'1': 'members', '3': 1, '4': 3, '5': 11, '6': '.pb.GroupMember', '10': 'members'},
  ],
};

/// Descriptor for `GetGroupMembersResp`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List getGroupMembersRespDescriptor = $convert.base64Decode('ChNHZXRHcm91cE1lbWJlcnNSZXNwEikKB21lbWJlcnMYASADKAsyDy5wYi5Hcm91cE1lbWJlclIHbWVtYmVycw==');
@$core.Deprecated('Use groupMemberDescriptor instead')
const GroupMember$json = const {
  '1': 'GroupMember',
  '2': const [
    const {'1': 'user_id', '3': 1, '4': 1, '5': 3, '10': 'userId'},
    const {'1': 'nickname', '3': 2, '4': 1, '5': 9, '10': 'nickname'},
    const {'1': 'sex', '3': 3, '4': 1, '5': 5, '10': 'sex'},
    const {'1': 'avatar_url', '3': 4, '4': 1, '5': 9, '10': 'avatarUrl'},
    const {'1': 'user_extra', '3': 5, '4': 1, '5': 9, '10': 'userExtra'},
    const {'1': 'member_type', '3': 6, '4': 1, '5': 14, '6': '.pb.MemberType', '10': 'memberType'},
    const {'1': 'remarks', '3': 7, '4': 1, '5': 9, '10': 'remarks'},
    const {'1': 'extra', '3': 8, '4': 1, '5': 9, '10': 'extra'},
  ],
};

/// Descriptor for `GroupMember`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List groupMemberDescriptor = $convert.base64Decode('CgtHcm91cE1lbWJlchIXCgd1c2VyX2lkGAEgASgDUgZ1c2VySWQSGgoIbmlja25hbWUYAiABKAlSCG5pY2tuYW1


x2c, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x20, 0x5f, 0x47, // n]], constant _G
                0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x26, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x75, 0x20, 0x5b, 0x5b, // lobal& _mtl_u [[
                0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x28, 0x30, 0x29, 0x5d, 0x5d, 0x29, 0x0a, 0x7b, 0x0a, 0x20, // buffer(0)]]).{.
                0x20, 0x20, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x4d, 0x61, 0x69, 0x6e, 0x5f, 0x6f, //    xlatMtlMain_o
                0x75, 0x74, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x3b, 0x0a, 0x20, 0x20, 0x20, // ut out = {};.
                0x20, 0x6f, 0x75, 0x74, 0x2e, 0x67, 0x6c, 0x5f, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, //  out.gl_Position
                0x20, 0x3d, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x75, 0x2e, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, //  = _mtl_u.u_view
                0x50, 0x72, 0x6f, 0x6a, 0x20, 0x2a, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x28, 0x69, 0x6e, // Proj * float4(in
                0x2e, 0x61, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x78, 0x79, 0x2c, 0x20, // .a_position.xy,
                0x30, 0x2e, 0x30, 0x2c, 0x20, 0x31, 0x2e, 0x30, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, // 0.0, 1.0);.    o
                0x75, 0x74, 0x2e, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x4f, 0x75, // ut._entryPointOu
                0x74, 0x70, 0x75, 0x74, 0x5f, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, // tput_v_texcoord0
                0x20, 0x3d, 0x20, 0x69, 0x6e, 0x2e, 0x61, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f


-selection { background: rgba(101, 115, 126, 0.33); }
.cm-s-oceanic-next .CodeMirror-gutters { background: #304148; border-right: 10px; }
.cm-s-oceanic-next .CodeMirror-guttermarker { color: white; }
.cm-s-oceanic-next .CodeMirror-guttermarker-subtle { color: #d0d0d0; }
.cm-s-oceanic-next .CodeMirror-linenumber { color: #d0d0d0; }
.cm-s-oceanic-next .CodeMirror-cursor { border-left: 1px solid #f8f8f0; }
.cm-s-oceanic-next.cm-fat-cursor .CodeMirror-cursor { background-color: #a2a8a175 !important; }
.cm-s-oceanic-next .cm-animate-fat-cursor { background-color: #a2a8a175 !important; }

.cm-s-oceanic-next span.cm-comment { color: #65737E; }
.cm-s-oceanic-next span.cm-atom { color: #C594C5; }
.cm-s-oceanic-next span.cm-number { color: #F99157; }

.cm-s-oceanic-next span.cm-property { color: #99C794; }
.cm-s-oceanic-next span.cm-attribute,
.cm-s-oceanic-next span.cm-keyword { color: #C594C5; }
.cm-s-oceanic-next span.cm-builtin { color: #66d9ef; }
.cm-s-oceanic-next span.cm-string { color: #99C794; }

.cm-s-oceanic-next span.cm-variable,
.cm-s-oceanic-next span.cm-variable-2,
.cm-s-oceanic-next span.cm-variable-3 { color: #f8f8f2; }
.cm-s-oceanic-next span.cm-def { color: #6699CC; }
.cm-s-oceanic-next span.cm-bracket { color: #5FB3B3; }
.cm-s-oceanic-next span.cm-tag { color: #C594C5; }
.cm-s-oceanic-next span.cm-header { color: #C594C5; }
.cm-s-oceanic-next span.cm-link { color: #C594C5; }
.cm-s-oceanic-next span.cm-error { background: #C594C5; color: #f8f8f0; }

.cm-s-oceanic-next .CodeMirror-activeline-background { background: rgba(101, 115, 126, 0.33); }
.cm-s-oceanic-next .CodeMirror-matchingbracket {
  text-decoration: underline;
  color: white !important;
}
.cm-s-ambiance.CodeMirror {
  -webkit-box-shadow: none;
  -moz-box-shadow: none;
  box-shadow: none;
}
/* Port of TextMate's Blackboard theme */

.cm-s-blackboard.CodeMirror { background: #0C1021; color: #F8F8F8; }
.cm-s-blackboard div.CodeMirror-selected { background: #253B76; }
.cm-s-blackboard .CodeMirror-line::selection, .cm-s-blackboard .CodeMirror-line > span::selection, .cm-s-blackboard .CodeMirror-line > span > span::selection { background: rgba(37, 59, 118, .99); }
.cm-s-blackboard .CodeMirror-line::-moz-selection, .cm-s-blackboard .CodeMirror-line > span::-moz-selection, .cm-s-blackboard .CodeMirror-line > span > span::-moz-selection { backgro


w== 3171
IHJlcGU= 3172
IHJ1bGVz 3173
Zm9yY2U= 3174
IFBhbA== 3175
IGZpbmFuY2lhbA== 3176
IGNvbnNpZGVyZWQ= 3177
IENoYXI= 3178
bmNlcw== 3179
IElT 3180
IGJyb3VnaHQ= 3181
IGJp 3182
aWVycw== 3183
IFNpbQ== 3184
T1A= 3185
IHByb2R1Y3Rz 3186
IHZpc2l0 3187
IGRvY3VtZW50 3188
IGNvbmR1Y3Q= 3189
IGNvbXBsZXRlbHk= 3190
aW5pbmc= 3191
IENhbGlm 3192
aWJseQ== 3193
IHdyaXR0ZW4= 3194
IFRW 3195
ZW1lbnRz 3196
IGRyYXc= 3197
T25l 3198
IHB1Ymxpc2hlZA== 3199
IHNlY3JldA== 3200
cmFpbg== 3201
aGV0 3202
IEZhY2Vib29r 3203
b25kYXk= 3204
IFVw 3205
IHNleHVhbA== 3206
IHRob3Vz 3207
IFBhdA== 3208
IGVzcw== 3209
IHN0YW5kYXJk 3210
IGFybQ== 3211
Z2Vz 3212
ZWN0aW9u 3213
IGZlbGw= 3214
IGZvcmVpZ24= 3215
YW5p 3216
IEZyaWRheQ== 3217
IHJlZ3VsYXI= 3218
aW5hcnk= 3219
IGluY3JlYXNlZA== 3220
IHVzdWFsbHk= 3221
IGRlbW9u 3222
IGRhcms= 3223
IGFkZGl0aW9uYWw= 3224
cm9s 3225
IE9m 3226
IHByb2R1Y3Rpb24= 3227
ISE= 3228
dW5kcmVk 3229
IGludGVybmF0aW9uYWw= 3230
aWRlbnRz 3231
IEZyZWU= 3232
cm91cA== 3233
IHJhY2U= 3234
IG1hY2g= 3235
IGh1Z2U= 3236
QWxs 3237
bGVhcg== 3238
b3ZlbWJlcg== 3239
IHRvd24= 3240
IGF0dGVudGlvbg== 3241
IE9mZg== 3242
eW9uZA== 3243
IFRoZW4= 3244
ZmllbGQ= 3245
IHRlcnJvcg== 3246
cmF6 3247
IEJv 3248
IG1lZXRpbmc= 3249
IFBhcms= 3250
IGFycmVzdA== 3251
IGZlYXI= 3252
IGF3 3253
IFZhbA== 3254
b3Jpbmc= 3255
Jyw= 3256
IGV4dHJlbWU= 3257
YXJy 3258
IHdvcmtlcnM= 3259
QWZ0ZXI= 3260
IDMx 3261
bmV0 3262
YW1lbnQ= 3263
IGRpcmVjdGx5 3264
IHBvcHVsYXRpb24= 3265
dWJl 3266
IE9jdG9iZXI= 3267
IElO 3268
IEphbnVhcnk= 3269
NTk= 3270
IERhdmlk 3271
IGNyb3Nz 3272
Y2VtYmVy 3273
IEZpcnN0 3274
IG1lc3NhZ2U= 3275
aXJpdA== 3276
IG5hdGlvbg== 3277
IHBvbGw= 3278
a


ForPacket Duration {33/1000 = 0.033}
default    13:02:09.720582-0400    LibAVExtension    LibAVSampleCursor: <LibAVSampleCursor: 0x13071cb70> updateStateForPacket sampleOffset 326665
default    13:02:09.720676-0400    LibAVExtension    LibAVSampleCursor: <LibAVSampleCursor: 0x13071cb70> updateStateForPacket sampleSize 10075
default    13:02:09.720779-0400    LibAVExtension    LibAVSampleCursor <LibAVSampleCursor: 0x131112340> stepInDecodeOrderByCount  1
default    13:02:09.720952-0400    LibAVExtension    LibAVSampleCursor: <LibAVSampleCursor: 0x131112340> readAPacketAndUpdateState
default    13:02:09.721113-0400    LibAVExtension    LibAVFormatReader got readPacket Success: 1 fromOffset: 336744, size: 4096, read: 4096
default    13:02:09.721287-0400    LibAVExtension    LibAVFormatReader got readPacket Success: 1 fromOffset: 340840, size: 6105, read: 6105
default    13:02:09.721390-0400    LibAVExtension    LibAVSampleCursor: <LibAVSampleCursor: 0x131112340> updateStateForPacket Presentation Timestamp {1100/1000 = 1.100}
default    13:02:09.721488-0400    LibAVExtension    LibAVSampleCursor: <LibAVSampleCursor: 0x131112340> updateStateForPacket Decode Timestamp {1100/1000 = 1.100}
default    13:02:09.721573-0400    LibAVExtension    LibAVSampleCursor: <LibAVSampleCursor: 0x131112340> updateStateForPacket Duration {33/1000 = 0.033}
default    13:02:09.721755-0400    LibAVExtension    LibAVSampleCursor: <LibAVSampleCursor: 0x131112340> updateStateForPacket sampleOffset 336763
default    13:02:09.721906-0400    LibAVExtension    LibAVSampleCursor: <LibAVSampleCursor: 0x131112340> updateStateForPacket sampleSize 10178
default    13:02:09.722105-0400    LibAVExtension    LibAVSampleCursor <LibAVSampleCursor: 0x13060f140> copyWithZone
default    13:02:09.722146-0400    LibAVExtension    LibAVSampleCursor <LibAVSampleCursor: 0x131013680> init with pts/dts
default    13:02:09.722269-0400    LibAVExtension    LibAVTrackReader videoFormatDescription Found Codec Type: 1635148593
default    13:02:09.722381-0400    LibAVExtension    LibAVSampleCursor: <LibAVSampleCursor: 0x131013680> seekToPTS already at {0/1000 = 0.000}
default    13:02:09.722505-0400    LibAVExtension    LibAVSampleCursor: <LibAVSampleCursor: 0x131013680> readAPacketAndUpdateState
default    13:02:09.722615-0400    LibAVExtension    LibAVFormatReader got readPacket Success: 1 fromOffset: 346945, size: 4096, read: 4096
default    13:02:09.722729-0400    LibAVExtension    LibAVFormatReader got readPacket Success: 1 fromOffset: 351041, size: 6104, read: 6104
default    13:02:09.722841-0400    LibAVExtension    LibAVSampleCursor: <LibAVSampleCursor: 0x131013680> updateStateForPacket Presentation Timestamp {1133/1000 = 1.133}
default    13:02:09.722976-0400    LibAVExtension    LibAVSampleCursor: <LibAVSampleCursor: 0x131013680> updateStateForPacket Decode Timestamp {1133/1000 = 1.133}
default    13:02:09.723038-0400    LibAVExtension    LibAVSampleCursor: <LibAVSampleCursor: 0x131013680> updateStateFo


fixExpr<tk.BitAndToken, ShiftExpr> { private _ = undefined; }
const andExprFac = new InfixExprFactory(
    AndExpr, [tk.BitAndToken], tokens => shiftExprFac.make(tokens));

/** xor_expr ::= and_expr {"^" and_expr} */
class XorExpr extends InfixExpr<tk.BitXorToken, AndExpr> { private _ = undefined; }
const xorExprFac = new InfixExprFactory(
    XorExpr, [tk.BitXorToken], tokens => andExprFac.make(tokens));

/** or_expr ::= xor_expr {"|" xor_expr} */
class OrExpr extends InfixExpr<tk.BitOrToken, XorExpr> { private _ = undefined; }
const orExprFac = new InfixExprFactory(
    OrExpr, [tk.BitOrToken], tokens => xorExprFac.make(tokens));
//#endregion

//#region 比较运算
/** comp_operator ::= "<" | ">" | "==" | ">=" | "<=" | "!=" | "is" */
type CompOperator = tk.LessToken | tk.LeqToken | tk.GreaterToken | tk.GeqToken
    | tk.EqualsToken | tk.NotEqualsToken | tk.IsToken;
/** comparison ::= or_expr {comp_operator or_expr} */
class Comparison extends InfixExpr<CompOperator, OrExpr> { private _ = undefined; }
const comparisonFac = new InfixExprFactory<Comparison, CompOperator, OrExpr>(
    Comparison,
    [tk.LessToken, tk.LeqToken, tk.GreaterToken, tk.GeqToken, tk.EqualsToken, tk.NotEqualsToken, tk.IsToken],
    tokens => orExprFac.make(tokens));
//#endregion

//#region 布尔运算
/** not_test ::= "not" not_test | comparison */
abstract class NotTest implements IGrammarSymbol {
    get type() { return this.constructor.name; }
    abstract repr(): IRepr;
    abstract toASTNode(): IASTNode;
    static make(tokens: ITokenSeq): NotTest {
        if (!tokens.hasNext()) {
            throw new PySyntaxError('Tokens goes to end.');
        }
        const token = tokens.viewNext();
        if (token instanceof tk.NotToken) {
            return NotTestWithOp.make(tokens);
        } else {
            return NotTestComparison.make(tokens);
        }
    }
}

class NotTestWithOp extends NotTest {
    readonly operator: tk.NotToken;
    readonly notTest: NotTest;
    constructor(operator: tk.NotToken, notTest: NotTest) {
        super();
        this.operator = operator;
        this.notTest = notTest;
    }
    repr() {
        return {
            type: this.type,
            operator: this.operator.repr(),
            notTest: this.notTest.repr()
        };
    }
    toASTNode() { return new ast.NotNode(this.notTest.toASTNode()); }
    static make(tokens: ITokenSeq): NotTestWithOp {
        const op = popExpectedToken(tk.NotToken, tokens);
        const notTest = NotTest.make(tokens);
        return new NotTestWithOp(op, notTest);
    }
}

class NotTestComparison extends NotTest {
    readonly comparison: Comparison;
    constructor(comparison: Comparison) { super(); this.comparison = comparison; };
    repr() { return { type: this.type, comparison: this.comparison.repr() }; }
    toASTNode(): IASTNode { return this.comparison.toASTNode(); }
    static make(tokens: ITokenSeq): NotTestComparison {
        return new NotTestComparison(comparisonFac.make(tokens));
    }
}

/** and_test ::= not_test {"and" not_test} */
class AndTest extends InfixExpr<tk.AndToken, NotTest> { private _ = undefined; }
const andTestFac = new InfixExprFactory(
    AndTest, [tk.AndToken], tokens => NotTest.make(tokens));

/** or_test ::= and_te


ul.kint-tabs{background:#f8f8f8;border:1px solid #d7d7d7;border-width:0 1px 1px 1px;padding:4px 0 0 12px;margin-left:-1px;margin-top:-1px}.kint-rich ul.kint-tabs li,.kint-rich ul.kint-tabs li+li{margin:0 0 0 4px}.kint-rich ul.kint-tabs li{border-bottom-width:0;height:25px}.kint-rich ul.kint-tabs li:first-child{margin-left:0}.kint-rich ul.kint-tabs li.kint-active-tab{border-top:1px solid #d7d7d7;background:#fff;font-weight:bold;padding-top:0;border-bottom:1px solid #fff !important;margin-bottom:-1px}.kint-rich ul.kint-tabs li.kint-active-tab:hover{border-bottom:1px solid #fff}.kint-rich ul>li>pre{border:1px solid #d7d7d7}.kint-rich dt:hover+dd>ul{border-color:#aaa}.kint-rich pre{background:#fff;margin-top:4px;margin-left:25px}.kint-rich .kint-source{margin-left:-1px}.kint-rich .kint-source .kint-highlight{background:#cfc}.kint-rich .kint-parent.kint-show>.kint-search{border-bottom-width:1px}.kint-rich table td{background:#fff}.kint-rich table td>dl{padding:0;margin:0}.kint-rich table td>dl>dt.kint-parent{margin:0}.kint-rich table td:first-child,.kint-rich table td,.kint-rich table th{padding:2px 4px}.kint-rich table dd,.kint-rich table dt{background:#fff}.kint-rich table tr:hover>td{box-shadow:none;background:#cfc}
/* BASICS */

.CodeMirror {
  /* Set height, width, borders, and global font properties here */
  font-family: monospace;
  height: 300px;
  color: black;
  direction: ltr;
}

/* PADDING */

.CodeMirror-lines {
  padding: 4px 0; /* Vertical padding around content */
}
.CodeMirror pre.CodeMirror-line,
.CodeMirror pre.CodeMirror-line-like {
  padding: 0 4px; /* Horizontal padding of content */
}

.CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
  background-color: white; /* The little square between H and V scrollbars */
}

/* GUTTER */

.CodeMirror-gutters {
  border-right: 1px solid #ddd;
  background-color: #f7f7f7;
  white-space: nowrap;
}
.CodeMirror-linenumbers {}
.CodeMirror-linenumber {
  padding: 0 3px 0 5px;
  min-width: 20px;
  text-align: right;
  color: #999;
  white-space: nowrap;
}

.CodeMirror-guttermarker { color: black; }
.CodeMirror-guttermarker-subtle { color: #999; }

/* CURSOR */

.CodeMirror-cursor {
  border-left: 1px solid black;
  border-right: none;
  width: 0;
}
/* Shown when moving in bi-directional text */
.CodeMirror div.CodeMirror-secondarycursor {
  border-left: 1px solid silver;
}
.cm-fat-cursor .CodeMirror-cursor {
  width: auto;
  border: 0 !important;
  background: #7e7;
}
.cm-fat-cursor div.CodeMirror-cursors {
  z-index: 1;
}
.cm-fat-cursor .CodeMirror-line::selection,
.


h { it2 ->
                size += 1
                buffer.writeLongArg(it2, charset, )
            }
        }
        aggregate?.let { it3 ->
            size += 1
            buffer.writeStringArg(it3.toString(), charset)
        }

        buffer = Buffer().apply {
            writeString("*$size")
            transferFrom(buffer)
        }
        return CommandRequest(buffer, RedisOperation.WRITE, BLOCKING_STATUS)
    }

    public suspend inline fun encodeWithSlot(
        charset: Charset,
        destination: String,
        vararg key: String,
        weight: List<Long>?,
        aggregate: ZAggregate?,
    ): CommandRequest {
        var slot: Int? = null
        slot = validateSlot(slot, CRC16.lookup(destination.toByteArray(charset)))
        key.forEach { it0 ->
            slot = validateSlot(slot, CRC16.lookup(it0.toByteArray(charset)))
        }
        if (slot == null) throw KeyAbsentException("Expected key is not provided")
        val request = encode(charset, destination = destination, key = key, weight = weight, aggregate = aggregate)
        return request.withSlot(slot % 16384)
    }

    public suspend fun decode(input: Buffer, charset: Charset): Long {
        val code = input.parseCode(RespCode.INTEGER)
        return when(code) {
            RespCode.INTEGER -> {
                IntegerDecoder.decode(input, charset, code)
            }
            else -> {
                throw UnexpectedResponseType("Expected [INTEGER] but got $code", input.tryInferCause(code))
            }
        }
    }
}
@file:Suppress("MatchingDeclarationName")

package eu.vendeli.tgbot.api.business

import eu.vendeli.tgbot.annotations.internal.TgAPI
import eu.vendeli.tgbot.interfaces.action.SimpleAction
import eu.vendeli.tgbot.utils.internal.getReturnType
import eu.vendeli.tgbot.utils.internal.toJsonElement

@TgAPI
class SetBusinessAccountUsernameAction(
    businessConnectionId: String,
    username: String? = null,
) : SimpleAction<Boolean>() {
    @TgAPI.Name("setBusinessAccountUsername")
    override val method = "setBusinessAccountUsername"
    override val returnType = getReturnType()

    init {
        parameters["business_connection_id"] = businessConnectionId.toJsonElement()
        username?.let { parameters["username"] = it.toJsonElement() }
    }
}

/**
 * Changes the username of a managed business account. Requires the can_change_username business bot right. Returns True on success.
 *
 * [Api reference](https://core.telegram.org/bots/api#setbusinessaccountusername)
 * @param businessConnectionId Unique identifier of the business connection
 * @param username The new value of the username for the business account; 0-32 characters
 * @returns [Boolean]
 */
@TgAPI
inline fun setBusinessAccountUsername(
    businessConnectionId: String,
    username: String? = null,
) = SetBusinessAccountUsernameAction(businessConnectionId, username)
@file:Suppress("MatchingDeclarationName")

package eu.vendeli.tgbot.api.business

import eu.vendeli.tgbot.annotations.internal.TgAPI
import eu.vendeli.tgbot.interfaces.action.SimpleAction
import eu.vendeli.tgbot.interfaces.features.OptionsFeature
import eu.vendeli.tgbot.types.gift.OwnedGifts
import eu.vendeli.tgbot.types.options.GetBusinessAccountGiftsOptions
import eu.vendeli.tgbot.utils.internal.getReturnType
import eu.vendeli.tgbot.utils.internal.toJsonElement

@TgAPI
class GetBusinessAccountGiftsAction(
    businessConnectionId: String,
) : SimpleAction<OwnedGifts>(),
    OptionsFeature<GetBusinessAccountGiftsAction, GetBusinessAccountGifts


MxIDAgMDAxLjMxLTEuMzFjMC0uNDI1LS4yMDUtLjc5OC0uNTE4LTEuMDM4em0tMy4wODUgMGMuMTQyLjIxLjIxOS40NjYuMjE5LjczN2ExLjMxIDEuMzEgMCAwMS0xLjMxIDEuMzFjLS4yNzIgMC0uNTI4LS4wNzctLjczNy0uMjE4LjI0LjMxMy42MTIuNTE5IDEuMDM3LjUxOWExLjMxIDEuMzEgMCAwMDEuMzEtMS4zMWMwLS40MjUtLjIwNS0uNzk4LS41MTktMS4wMzh6bS0zLjAzIDMuMDNjLjE0Mi4yMS4yMi40NjYuMjIuNzM3YTEuMzEgMS4zMSAwIDAxLTEuMzExIDEuMzFjLS4yNzEgMC0uNTI4LS4wNzctLjczNy0uMjE4LjI0LjMxMy42MTMuNTE4IDEuMDM3LjUxOGExLjMxIDEuMzEgMCAwMDEuMzEtMS4zMWMwLS40MjQtLjIwNS0uNzk4LS41MTgtMS4wMzd6bTMuMDMgMGMuMTQyLjIxLjIxOS40NjYuMjE5LjczN2ExLjMxIDEuMzEgMCAwMS0xLjMxIDEuMzFjLS4yNzIgMC0uNTI4LS4wNzctLjczNy0uMjE4LjI0LjMxMy42MTIuNTE4IDEuMDM3LjUxOGExLjMxIDEuMzEgMCAwMDEuMzEtMS4zMWMwLS40MjQtLjIwNS0uNzk4LS41MTktMS4wMzd6bTMuMDg1IDBjLjE0MS4yMS4yMTguNDY2LjIxOC43MzdhMS4zMSAxLjMxIDAgMDEtMS4zMSAxLjMxYy0uMjcxIDAtLjUyOC0uMDc3LS43MzctLjIxOC4yNC4zMTMuNjEzLjUxOCAxLjAzNy41MThhMS4zMSAxLjMxIDAgMDAxLjMxLTEuMzFjMC0uNDI0LS4yMDUtLjc5OC0uNTE4LTEuMDM3eiIgZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+);
  background-repeat: no-repeat;
  background-position: 100% 100%;
  pointer-events: auto !important;
}

.os-host-rtl > .os-scrollbar-corner.os-scrollbar-corner-resize {
  -webkit-transform: scaleX(-1);
  transform: scaleX(-1);
}

.os-host-overflow {
  overflow: hidden !important;
}

@-webkit-keyframes hs-resize-observer-dummy-animation {
  0% {
    z-index: 0;
  }
  to {
    z-index: -1;
  }
}

@keyframes hs-resize-observer-dummy-animation {
  0% {
    z-index: 0;
  }
  to {
    z-index: -1;
  }
}

.os-theme-none > .os-scrollbar


"Friendlies", "The target of the ability must be a friendly.");
        public static readonly DotaUnitTargetTeamType CUSTOM = new DotaUnitTargetTeamType("DOTA_UNIT_TARGET_TEAM_CUSTOM", "Custom", "The target of the ability is a custom type.");
        public static readonly DotaUnitTargetTeamType BOTH = new DotaUnitTargetTeamType("DOTA_UNIT_TARGET_TEAM_BOTH", "Both", "The target of the ability can be both teams.");

        public DotaUnitTargetTeamType(string key, string displayName, string description)
            : base(key, displayName, description)
        { }
    }
}


Info.getEndTime(), "yyyy.MM.dd HH:mm"));
                    }
                    if (couponInfo.getExpireType().equals(CouponExpireTypeEnum.FLEX.getKey())) {
                        couponDto.setEffectiveDate(DateUtil.formatDate(userCoupon.getCreateTime(), "yyyy.MM.dd HH:mm") + "~" + DateUtil.formatDate(userCoupon.getExpireTime(), "yyyy.MM.dd HH:mm"));
                    }
                    couponList.add(couponDto);
                }
            }
        }

        // 使用的卡券
        MtCoupon useCouponInfo = null;
        BigDecimal couponAmount = new BigDecimal("0");
        if (couponId > 0) {
            MtUserCoupon userCouponInfo = userCouponService.getUserCouponDetail(couponId);
            if (userCouponInfo != null) {
                useCouponInfo = couponService.queryCouponById(userCouponInfo.getCouponId());
                boolean isEffective = couponService.isCouponEffective(useCouponInfo, userCouponInfo);
                if (isEffective) {
                   if (useCouponInfo.getType().equals(CouponTypeEnum.COUPON.getKey())) {
                       couponAmount = useCouponInfo.getAmount();
                   } else if(useCouponInfo.getType().equals(CouponTypeEnum.PRESTORE.getKey())) {
                       BigDecimal couponTotalAmount = userCouponInfo.getBalance();
                       if (couponTotalAmount.compareTo(totalPrice) > 0) {
                           couponAmount = totalPrice;
                           useCouponInfo.setAmount(totalPrice);
                       } else {
                           couponAmount = couponTotalAmount;
                           useCouponInfo.setAmount(couponTotalAmount);
                       }
                   }
                }
            }
        }

        // 支付金额 = 商品总额 - 卡券抵扣金额
        BigDecimal payPrice = totalPrice.subtract(couponAmount);

        // 可用积分、可用积分金额
        Integer myPoint = userInfo.getPoint() == null ? 0 : userInfo.getPoint();
        Integer usePoint = 0;
        BigDecimal usePointAmount = new BigDecimal("0");
        MtSetting setting = settingService.querySettingByName(merchantId, SettingTypeEnum.POINT.getKey(), PointSettingEnum.EXCHANGE_NEED_POINT.getKey());
        if (myPoint > 0 && setting != null && isUsePoint) {
            if (StringUtil.isNotEmpty(setting.getValue()) && !setting.getValue().equals("0")) {
                BigDecimal usePoints = new BigDecimal(myPoint);
                usePointAmount = usePoints.divide(new BigDecimal(setting.getValue()), BigDecimal.ROUND_CEILING, 4);
                usePoint = myPoint;
                if (usePointAmount.compareTo(totalCanUsePointAmount) >= 0) {
                    usePointAmount = totalCanUsePointAmount;
                    usePoint = totalCanUsePointAmount.multiply(new BigDecimal(setting.getValue())).intValue();
                }
            }
        }

        // 积分金额不能大于支付金额
        if (usePointAmount.compareTo(payPrice) > 0 && isUsePoint) {
            usePointAmount = payPrice;
            BigDecimal usePoints = payPrice.multiply(new BigDecimal(setting.getValue()));
            usePoint = usePoints.intValue();
        }

        // 支付金额 = 商品总额 - 积分抵扣金额
        payPrice = payPrice.subtract(usePointAmount);

        // 配送费用
        BigDecimal deliveryFee = new BigDecimal("0");
        MtSetting mtSetting = settingService.querySettingByName(merchantId, SettingTypeEnum.ORDER.getKey(), OrderSettingEnum.DELIVERY_FEE.getKey());
        if (mtSetting != null && StringUtil.isNotEmpty(mtSetting.getValue()) && orderMode.equals(OrderModeEnum.EXPRESS.getKey())) {
            deliveryFee = new BigDecimal(mt


};

const quote: Reducer<IStoreState["quote"]> = (
  state = initialState.quote,
  action: Action
) => {
  switch (action.type) {
    case "NEW_QUOTE":
      return chooseDifferent(state);
    default:
      return state;
  }
};

const startTime: Reducer<IStoreState["startTime"]> = (
  state = initialState.startTime,
  action: Action
) => {
  switch (action.type) {
    case "TYPING_STARTED":
      return Date.now();
    case "NEW_QUOTE":
      return initialState.startTime;
    default:
      return state;
  }
};

const typos: Reducer<IStoreState["typos"]> = (
  state = initialState.typos,
  action: Action
) => {
  switch (action.type) {
    case "INPUT_INCORRECT":
      // we want to show only one typo for a given quote char
      // because it's common to type a few characters before noticing a typo
      return addIfUnique(state, action.payload);
    case "TYPING_STARTED":
    case "NEW_QUOTE":
      return initialState.typos;
    default:
      return state;
  }
};

const rootReducer = combineReducers<IStoreState, Action>({
  current,
  isCompleted,
  isPlaying,
  quote,
  startTime,
  typos
});

export default rootReducer;
import * as grammar from '../../../grammar';

import { LinterRule } from '../..';
import { Level } from '../../../diagnostic';

function isEmptyValue(node: grammar.Node): boolean {
  return node.type === grammar.SyntacticToken.EMPTY_FUNCTION_DECL
    || node.type === grammar.SyntacticToken.EMPTY_VARIABLE_DECL;
}

export const illegalAbstract: LinterRule = {
  description: 'Report illegal abstract properties',
  level: Level.ERROR,
  create(walker, report) {
    function checkAbstractClass(prop: grammar.ClassProp): void {
      if (prop.abstract) {
        report('Only abstract classes can contain abstract properties', prop.span);
      }
    }

    function checkAbstractProperty(prop: grammar.ClassProp): void {
      if (prop.abstract && !isEmptyValue(prop.value)) {
        report('An abstract property can not contain a value', prop.span);
      }
    }

    walker.onEnter(grammar.ClassDeclaration, (node) => {
      if (!node.abstract) {
        node.staticBody.forEach(checkAbstractClass);
        node.instanceBody.forEach(checkAbstractClass);
      }

      node.staticBody.forEach(checkAbstractProperty);
      node.instanceBody.forEach(checkAbstractProperty);
    });
  },
};
var quickSort = function (arr) {
  if (arr.length <= 1) {
    return arr;
  }

  var pivotIndex = Math.floor(arr.length / 2);

  var pivot = arr.splice(pivotIndex, 1)[0];

  var left = [];

  var right = [];

  for (var i = 0; i < arr.length; i++) {
    if (arr[i] < pivot) {
      left.push(arr[i]);
    } else {
      right.push(arr[i]);
    }
  }

  return quickSort(left).concat([pivot], quickSort(right));
};

export default quickSort;

// O(nlogn)
import produce, { immerable } from "immer";
import { CharacterType } from "./CharacterType";
import { Person } from "./Person";
import { CharacterClass } from "./CharacterClass";
import { ActorVariable } from "./ActorVariable";
import { ActorSexualStatus } from "./ActorSexualStatus";
import { ActorStatesClass, ActorStateLevels } from "./StateLogic";
import { ActorEquipmentsClass } from "./StateLogic/ActorEquipmentsClass";
import { ActorBattleStatus } from "./ActorBattleStatus";

export type CharacterClassMap = {


                            <svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5" fill="none" viewBox="0 0 24 24" stroke="currentColor">
                                <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 6.253v13m0-13C10.832 5.477 9.246 5 7.5 5S4.168 5.477 3 6.253v13C4.168 18.477 5.754 18 7.5 18s3.332.477 4.5 1.253m0-13C13.168 5.477 14.754 5 16.5 5c1.747 0 3.332.477 4.5 1.253v13C19.832 18.477 18.247 18 16.5 18c-1.746 0-3.332.477-4.5 1.253"></path>
                            </svg>
                            Documentation

                            <svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5" fill="none" viewBox="0 0 24 24" stroke="currentColor">
                                <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11 17l-5-5m0 0l5-5m-5 5h12"></path>
                            </svg>
                            Back to Brokers

{% endblock %}


right) => self
                .parse_instruction(lexer, left)
                .or_else(|_| self.parse_instruction(lexer, right)),
        }
    }
}
// Copyright 2014 Google Inc. 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
//
//     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.

//! Communication with SQLite.

use blob;

use capnp;
use chrono;

use diesel;
use diesel::connection::TransactionManager;
use diesel::prelude::*;
use diesel::sqlite::SqliteConnection;
use errors::DieselError;

use hash;
use root_capnp;
use std::sync::{Mutex, MutexGuard};
use std::path::Path;
use tags;
use time::Duration;
use util::{Counter, InfoWriter, PeriodicTimer};

mod schema;

pub struct Index(Mutex<InternalIndex>);
pub type IndexGuard<'a> = MutexGuard<'a, InternalIndex>;

impl Index {
    pub fn new(migrations_dir: &Path, path: &str) -> Result<Index, DieselError> {
        Ok(Index(Mutex::new(InternalIndex::new(migrations_dir, path)?)))
    }
    pub fn lock(&self) -> MutexGuard<InternalIndex> {
        self.0.lock().expect("Database mutex is poisoned")
    }
    #[cfg(test)]
    pub fn new_for_testing() -> Index {
        Index(Mutex::new(
            InternalIndex::new(Path::new("migrations"), ":memory:")
                .unwrap(),
        ))
    }
}

fn encode_childs(childs: &[u64]) -> Vec<u8> {
    let mut message = capnp::message::Builder::new_default();
    {
        let root = message.init_root::<root_capnp::hash_ids::Builder>();
        let mut list = root.init_hash_ids(childs.len() as u32);
        for (i, id) in childs.iter().enumerate() {
            list.set(i as u32, *id);
        }
    }
    let mut out = Vec::new();
    capnp::serialize_packed::write_message(&mut out, &message).unwrap();
    out
}

fn decode_childs(bytes: &[u8]) -> Result<Vec<u64>, capnp::Error> {
    let reader = capnp::serialize_packed::read_message(
        &mut &bytes[..],
        capnp::message::ReaderOptions::new(),
    ).unwrap();
    let msg = reader.get_root::<root_capnp::hash_ids::Reader>().unwrap();

    let ids = msg.get_hash_ids()?;
    let mut out = Vec::new();
    for i in 0..ids.len() {
        out.push(ids.get(i));
    }
    Ok(out)
}

fn decode_chunk_ref(
    cref: Option<&Vec<u8>>,
    blob: Option<self::schema::Blob>,
) -> Option<blob::ChunkRef> {
    cref.map(|c| {
        let mut r = blob::ChunkRef::from_bytes(&mut &c[..]).expect("Failed to decode chunk");
        if r.length > 0 {
            r.blob_name = blob.expect("Non-empty chunk without blob name").name;
        } else {
            r.blob_name = vec![0];
        }
        r
    })
}

#[derive(Clone, Debug, Eq, PartialEq)]
pub struct GcData {
    pub num: i64,
    pub bytes: Vec<u8>,
}
pub trait UpdateFn: FnOnce(GcData) -> Option<GcData> {}
impl<T> UpdateFn for T
where
    T: FnOnce(GcData) -> Option<GcData>,
{
}

#[derive(Clone, Debug)]
pub struct SnapshotInfo {
    pub unique_id: u64,
    pub family_id: u64,
    pub snapshot_id: u64,
}

#[derive(Debug)]
pub enum SnapshotWorkStatus {
    CommitInProgress,
    CommitComplete,
    DeleteInProgress,
    DeleteComplete,
    RecoverInProgress,
}

#[derive(Debug)]
pub struct SnapshotStatus {
    pub family_name: String,