** order by variance() on columns of table "default_positions" */
export type Default_Positions_Variance_Order_By = {
  order?: Maybe<Order_By>
}

/**
 * Статусы при создании базы
 *
 *
 * columns and relationships of "default_statuses"
 */
export type Default_Statuses = {
  __typename?: 'default_statuses'
  id: Scalars['uuid']
  name: Scalars['String']
  order: Scalars['Int']
}

/** aggregated selection of "default_statuses" */
export type Default_Statuses_Aggregate = {
  __typename?: 'default_statuses_aggregate'
  aggregate?: Maybe<Default_Statuses_Aggregate_Fields>
  nodes: Array<Default_Statuses>
}

/** aggregate fields of "default_statuses" */
export type Default_Statuses_Aggregate_Fields = {
  __typename?: 'default_statuses_aggregate_fields'
  avg?: Maybe<Default_Statuses_Avg_Fields>
  count?: Maybe<Scalars['Int']>
  max?: Maybe<Default_Statuses_Max_Fields>
  min?: Maybe<Default_Statuses_Min_Fields>
  stddev?: Maybe<Default_Statuses_Stddev_Fields>
  stddev_pop?: Maybe<Default_Statuses_Stddev_Pop_Fields>
  stddev_samp?: Maybe<Default_Statuses_Stddev_Samp_Fields>
  sum?: Maybe<Default_Statuses_Sum_Fields>
  var_pop?: Maybe<Default_Statuses_Var_Pop_Fields>
  var_samp?: Maybe<Default_Statuses_Var_Samp_Fields>
  variance?: Maybe<Default_Statuses_Variance_Fields>
}

/** aggregate fields of "default_statuses" */
export type Default_Statuses_Aggregate_FieldsCountArgs = {
  columns?: Maybe<Array<Default_Statuses_Select_Column>>
  distinct?: Maybe<Scalars['Boolean']>
}

/** order by aggregate values of table "default_statuses" */
export type Default_Statuses_Aggregate_Order_By = {
  avg?: Maybe<Default_Statuses_Avg_Order_By>
  count?: Maybe<Order_By>
  max?: Maybe<Default_Statuses_Max_Order_By>
  min?: Maybe<Default_Statuses_Min_Order_By>
  stddev?: Maybe<Default_Statuses_Stddev_Order_By>
  stddev_pop?: Maybe<Default_Statuses_Stddev_Pop_Order_By>
  stddev_samp?: Maybe<Default_Statuses_Stddev_Samp_Order_By>
  sum?: Maybe<Default_Statuses_Sum_Order_By>
  var_pop?: Maybe<Default_Statuses_Var_Pop_Order_By>
  var_samp?: Maybe<Default_Statuses_Var_Samp_Order_By>
  variance?: Maybe<Default_Statuses_Variance_Order_By>
}

/** input type for inserting array relation for remote table "default_statuses" */
export type Default_Statuses_Arr_Rel_Insert_Input = {
  data: Array<Default_Statuses_Insert_Input>
  on_conflict?: Maybe<Default_Statuses_On_Conflict>
}

/** aggregate avg on columns */
export type Default_Statuses_Avg_Fields = {
  __typename?: 'default_statuses_avg_fields'
  order?: Maybe<Scalars['Float']>
}

/** order by avg() on columns of table "default_statuses" */
export type Default_Statuses_Avg_Order_By = {
  order?: Maybe<Order_By>
}

/** Boolean expression to filter rows from the table "default_statuses". All fields are combined with a logical 'AND'. */
export type Default_Statuses_Bool_Exp = {
  _and?: Maybe<Array<Maybe<Default_Statuses_Bool_Exp>>>
  _not?: Maybe<Default_Statuses_Bool_Exp>
  _or?: Maybe<Array<Maybe<Default_Statuses_Bool_Exp>>>
  id?: Maybe<Uuid_Comparison_Exp>
  name?:


    def _default_instances(self) -> None:
        self.metrics = []
        for name in self.metric_names:
            if name == "Stereotype Classifier":
                self.metrics.append(
                    DefaultMetricClasses[name](_classifier_model=self._classifier_model)
                )
            else:
                self.metrics.append(DefaultMetricClasses[name]())

    def _validate_metrics(self, metric_names: List[str]) -> None:
        for name in metric_names:
            assert name in DefaultMetricNames, (
                """Provided metric name is not part of available metrics."""
            )


k .ace_print_margin{
	width:1px;
	background:#e8e8e8;
}
.ace-solarized-dark .ace_scroller{
	background-color:#002b36;
}
.ace-solarized-dark .ace_text-layer{
	cursor:text;
	color:#93a1a1;
}
.ace-solarized-dark .ace_cursor{
	border-left:2px solid #d31122;
}
.ace-solarized-dark .ace_cursor.ace_overwrite{
	border-left:0px;
	border-bottom:1px solid #d31122;
}
.ace-solarized-dark .ace_marker-layer .ace_selection{
	background:#773642;
}
.ace-solarized-dark .ace_marker-layer .ace_step{
	background:#c6dbae;
}
.ace-solarized-dark .ace_marker-layer .ace_bracket{
	margin:-1px 0 0 -1px;
	border:1px solid rgba(147,161,161,0.5);
}
.ace-solarized-dark .ace_marker-layer .ace_active_line{
	background:#773642;
}
.ace-solarized-dark .ace_invisible{
	color:rgba(147,161,161,0.5);
}
.ace-solarized-dark .ace_keyword{
	color:#859900;
}
.ace-solarized-dark .ace_constant.ace_language{
	color:#b58900;
}
.ace-solarized-dark .ace_constant.ace_numeric{
	color:#d33682;
}
.ace-solarized-dark .ace_support.ace_function{
	color:#268bd2;
}
.ace-solarized-dark .ace_string{
	color:#2aa198;
}
.ace-solarized-dark .ace_string.ace_regexp{
	color:#d31122;
}
.ace-solarized-dark .ace_comment{
	font-style:italic;
	color:#657b83;
}
.ace-solarized-dark .ace_variable.ace_language{
	color:#268bd2;
}
.ace-solarized-light .ace_editor{
	border:2px solid #9f9f9f;
}
.ace-solarized-light .ace_editor.ace_focus{
	border:2px solid #327fbd;
}
.ace-solarized-light .ace_gutter{
	width:50px;
	background:#e8e8e8;
	color:#333333;
	overflow:hidden;
}
.ace-solarized-light .ace_gutter-layer{
	width:100%;
	text-align:right;
}
.ace-solarized-light .ace_gutter-layer .ace_gutter-cell{
	padding-right:6px;
}
.ace-solarized-light .ace_print_margin{
	width:1px;
	background:#e8e8e8;
}
.ace-solarized-light .ace_scroller{
	background-color:#fdf6e3;
}
.ace-solarized-light .ace_text-layer{
	cursor:text;
	color:#586e75;
}
.ace-solarized-light .ace_cursor{
	border-left:2px solid #000000;
}
.ace-solarized-light .ace_cursor.ace_overwrite{
	border-left:0px;
	border-bottom:1px solid #000000;
}
.ace-solarized-light .ace_marker-layer .ace_selection{
	background:#773642;
}
.ace-solarized-light .ace_marker-layer .ace_step{
	background:#c6dbae;
}
.ace-solarized-light .ace_marker-


 reverse map for changes
    Changes changes2(changes.size(), std::numeric_limits<uint32_t>::max());
    for (size_t i = 0; i < changes.size(); ++i)
        changes2[changes[i]] = i;

    // convert indices into expolygons indicies
    for (Vec3i32 &t : indices)
        for (size_t ti = 0; ti < 3; ti++) t[ti] = changes2[t[ti]];

    return indices;
}

Triangulation::Indices Triangulation::triangulate(const ExPolygons &expolygons, const Points &points)
{
    assert(count_points(expolygons) == points.size());
    // when contain duplicit coordinate in points will not work properly
    assert(collect_duplicates(points).empty());

    HalfEdges edges;
    edges.reserve(points.size());
    uint32_t offset = 0;
    for (const ExPolygon &expolygon : expolygons) {
        priv::insert_edges(edges, offset, expolygon.contour);
        for (const Polygon &hole : expolygon.holes)
            priv::insert_edges(edges, offset, hole);
    }
    std::sort(edges.begin(), edges.end());
    return triangulate(points, edges);
}

Triangulation::Indices Triangulation::triangulate(const ExPolygons &expolygons, const Points& points, const Changes& changes)
{
    assert(!points.empty());
    assert(count_points(expolygons) == points.size());
    assert(changes.size() == points.size());
    // IMPROVE: search from end and somehow distiquish that value is not a change
    uint32_t count_points = *std::max_element(changes.begin(), changes.end())+1;
    Points pts(count_points);
    for (size_t i = 0; i < changes.size(); i++)
        pts[changes[i]] = points[i];

    HalfEdges edges;
    edges.reserve(points.size());
    uint32_t offset = 0;
    for (const ExPolygon &expolygon : expolygons) {
        priv::insert_edges(edges, offset, expolygon.contour, changes);
        for (const Polygon &hole : expolygon.holes)
            priv::insert_edges(edges, offset, hole, changes);
    }

    std::sort(edges.begin(), edges.end());
    return triangulate(pts, edges);
}

Triangulation::Changes Triangulation::create_changes(const Points &points, const Points &duplicits)
{
    assert(!duplicits.empty());
    assert(duplicits.size() < points.size()/2);
    std::vector<uint32_t> duplicit_indices(duplicits.size(), std::numeric_limits<uint32_t>::max());
    Changes changes;
    changes.reserve(points.size());
    uint32_t index = 0;
    for (const Point &p: points) {
        auto it = std::lower_bound(duplicits.begin(), duplicits.end(), p);
        if (it == duplicits.end() || *it != p) {
            changes.push_back(index);
            ++index;
            continue;
        }
        uint32_t &d_index = duplicit_indices[it - duplicits.begin()];
        if (d_index == std::numeric_limits<uint32_t>::max()) {
            d_index = index;
            changes.push_back(index);
            ++index;
        } else {
            changes.push_back(d_index);
        }
    }
    return changes;
}
#include <boost/log/trivial.hpp>
#include <onea


 JOIN rampart_api_key_usage u ON k.id = u.api_key_id
                    WHERE k.user_id = :user_id AND k.is_active = true
                """),
                {"user_id": current_user.user_id}
            ).fetchone()

            if api_keys_result:
                api_key_requests = api_keys_result[0] or 0
                api_key_tokens = api_keys_result[1] or 0
                api_key_cost = api_keys_result[2] or 0.0
    except Exception as e:
        # If database query fails, continue with trace data only
        print(f"Error fetching API key usage: {e}")
        pass

    # Aggregate totals
    total_requests = total_traces + api_key_requests
    total_tokens = trace_tokens + api_key_tokens
    total_cost = trace_cost + api_key_cost

    return {
        "total_requests": total_requests,
        "total_traces": total_traces,
        "total_spans": total_spans,
        "total_tokens": total_tokens,
        "total_cost": round(total_cost, 4),
        "average_latency_ms": round(avg_latency, 2),
        "api_key_requests": api_key_requests,
        "jwt_requests": total_traces,
        "breakdown": {
            "dashboard_activity": {
                "requests": total_traces,
                "tokens": trace_tokens,
                "cost": round(trace_cost, 4)
            },
            "api_key_activity": {
                "requests": api_key_requests,
                "tokens": api_key_tokens,
                "cost": round(api_key_cost, 4)
            }
        }
    }


out, const TIn *in, const int stride, const int x0,
                  const int xmax, const int k0, const int kmax, bool transposed) {
        assert (!transposed);
        Transform<width_vectors, block,  true, VLType::SVE>(out, in, stride, x0, xmax, k0, kmax);
    }

    template<typename TOut>
    void Merge(TOut *out, const TResult *in, int stride, int y0, int ymax, int x0, int xmax, const TOut *bias, const Activation act, bool append) {
        MergeResults<width_vectors / mmla, height, true>(out, in, stride, y0, ymax, x0, xmax, bias, act, append);
    }
};

} // namespace arm_gemm
#include "arm_vec_math.h"

#include "MISCQ7.h"
#include <stdio.h>
#include "Error.h"
#include "Test.h"

#define SNR_THRESHOLD 15
/*

Reference patterns are generated with
a double precision computation.

*/
#define ABS_ERROR_Q7 ((q7_t)5)
#define ABS_ERROR_FAST_Q7 ((q7_t)5)

    void MISCQ7::test_correlate_q7()
    {
        const q7_t *inpA=inputA.ptr();
        const q7_t *inpB=inputB.ptr();
        q7_t *outp=output.ptr();

        arm_correlate_q7(inpA, inputA.nbSamples(),
          inpB, inputB.nbSamples(),
          outp);

        ASSERT_SNR(ref,output,(q7_t)SNR_THRESHOLD);
        ASSERT_NEAR_EQ(ref,output,ABS_ERROR_Q7);

    }

    void MISCQ7::test_conv_q7()
    {
        const q7_t *inpA=inputA.ptr();
        const q7_t *inpB=inputB.ptr();
        q7_t *outp=output.ptr();

        arm_conv_q7(inpA, inputA.nbSamples(),
          inpB, inputB.nbSamples(),
          outp);

        ASSERT_EMPTY_TAIL(output);
        ASSERT_SNR(ref,output,(q7_t)SNR_THRESHOLD);
        ASSERT_NEAR_EQ(ref,output,ABS_ERROR_Q7);

    }

    // This value must be coherent with the Python script
    // generating the test patterns
    #define NBPOINTS 4

    void MISCQ7::test_conv_partial_q7()
    {
        const q7_t *inpA=inputA.ptr();
        const q7_t *inpB=inputB.ptr();
        q7_t *outp=output.ptr();
        q7_t *tmpp=tmp.ptr();

        arm_status status=arm_conv_partial_q7(inpA, inputA.nbSamples(),
          inpB, inputB.nbSamples(),
          outp,
          this->first,
          NBPOINTS);

        memcpy((void*)tmpp,(void*)&outp[this->first],NBPOINTS*sizeof(q7_t));
        ASSERT_TRUE(status==ARM_MATH_SUCCESS);
        ASSERT_SNR(ref,tmp,(q7_t)SNR_THRESHOLD);
        ASSERT_NEAR_EQ(ref,tmp,ABS_ERROR_Q7);

    }

    void MISCQ7::test_conv_partial_opt_q7()
    {
        const q7_t *inpA=inputA.ptr();
        const q7_t *inpB=inputB.ptr();
        q7_t *outp=output.ptr();
        q7_t *tmpp=tmp.ptr();

        q15_t *scratchAp=scratchA.ptr();
        q15_t *scratchBp=scratchB.ptr();

        arm_status status=arm_conv_partial_opt_q7(inpA, inputA.nbSamples(),
          inpB, inputB.nbSamples(),
          outp,
          this->first,
          NBPOINTS,
          scratchAp,
          scratchBp
          );

        memcpy((void*)tmpp,(void*)&outp[this->first],NBPOINTS*sizeof(q7_t));
        ASSERT_TRUE(status==ARM_MATH_SUCCESS);
        ASSERT_SNR(ref,tmp


整，首先要加强采掘工业，加强配套产品的生产，加强维修力量，争取在四、五年的时间内，使工业内部逐步达到平衡。

   我们在大跃进中，把一些较好较大的修理厂和配件厂改为制造厂是必要的，只有这样，才能使我国逐步工业化。但是，改得多了些，把一些不应当改的也改了；有些企业的生产能力发展了，但维修力量没有相应地跟上去。这都是不对的。

   2、工业的发展，首先要保证当前生产的正常进行，然后在可能的条件下，再进行基本建设，扩大再生产。

   在过去三年中，基本建设的规模和现有的生产水平脱节。基本建设的摊子太大（包括水利建设和农垦），战线太长，力量分散，既挤了当前的生产，又不能使建设项目按时完工投入生产，增加新的生产能力，把大量的人力、物力、财力搁置起来，不能发挥作用，造成巨大的浪费；甚至由于错误地实行简易投产和不适当地开荒，还造成地下和地上资源的损失。

   今后，确定基本建设规模的大小，应当根据国民经济在维持原有企业的正常生产以外，还能提供多少生产资料、生活资料和劳动力。如果基本建设的规模超过了这种可能性，如查生产能力不配套，不仅不能扩大再生产，而且会妨害当前的生产，造成国民经济各方面的紧张。

   3、工业的生产和建设，必须认真贯彻勤检建国的方针，讲究经济效果，反对人力、财力、物力的浪费。

   在过去一段时期中，许多生产企业和基本建设企业，管理混乱，责任制废弛，很多设备损坏严重，片面追求数量，不顾质量，不讲经济效果，产品质量下降，产品成本普遍提高，一年多以来许多企业亏本赔钱。

   在过去三年中，基本建设投资共为九百九十六亿元（第一个五年共为五百五十亿元），不包括职工宿舍和学校宿舍的非生产性建设的投资为九十二亿元，其中相当大


IODIC, PERIOD_PER_YEAR);
    assertThat(pv.getAmount()).isCloseTo(-7710148.864076961, offset(EPS * NOTIONAL * QUANTITY));
    PointSensitivities pvPoint = TRADE_PRICER.presentValueSensitivityWithZSpread(
        FUTURE_TRADE, PROVIDER, Z_SPREAD, PERIODIC, PERIOD_PER_YEAR);
    CurrencyParameterSensitivities test = PROVIDER.parameterSensitivity(pvPoint);

    DoubleArray expectedIssuer = DoubleArray.of(
        -48374.31671055041, -510470.43789512076, -1748988.1122760356, -1.2199872917663E8, -5.0289585725762194E8, 0);
    DoubleArray actualIssuer = test.getSensitivity(METADATA_ISSUER.getCurveName(), USD).getSensitivity();
    assertThat(actualIssuer.equalWithTolerance(expectedIssuer, TOL * NOTIONAL * QUANTITY)).isTrue();

    DoubleArray expectedRepo = DoubleArray.of(1.7625865116887797E7, 2.497970288088735E7, 0.0, 0.0, 0.0, 0.0);
    DoubleArray actualRepo = test.getSensitivity(METADATA_REPO.getCurveName(), USD).getSensitivity();
    assertThat(actualRepo.equalWithTolerance(expectedRepo, TOL * NOTIONAL * QUANTITY)).isTrue();
  }

}
/*
 * Copyright (C) 2024 - present by OpenGamma Inc. and the OpenGamma group of companies
 *
 * Please see distribution for license.
 */
package com.opengamma.strata.pricer.capfloor;

import static com.opengamma.strata.basics.currency.Currency.EUR;
import static com.opengamma.strata.pricer.capfloor.SabrOvernightInArrearsCapFloorTestData.CAP_ONE_LEG;
import static com.opengamma.strata.pricer.capfloor.SabrOvernightInArrearsCapFloorTestData.CAP_TWO_LEGS;
import static com.opengamma.strata.pricer.capfloor.SabrOvernightInArrearsCapFloorTestData.NOTIONAL_VALUE;
import static com.opengamma.strata.pricer.capfloor.SabrOvernightInArrearsCapFloorTestData.PREMIUM;
import static com.opengamma.strata.pricer.capfloor.SabrOvernightInArrearsCapFloorTestData.RATES;
import static com.opengamma.strata.pricer.capfloor.SabrOvernightInArrearsCapFloorTestData.RATES_PAY;
import static com.opengamma.strata.pricer.capfloor.SabrOvernightInArrearsCapFloorTestData.TRADE;
import static com.opengamma.strata.pricer.capfloor.SabrOvernightInArrearsCapFloorTestData.TRADE_PAYLEG;
import static com.opengamma.strata.pricer.capfloor.SabrOvernightInArrearsCapFloorTestData.TRADE_PREMIUM;
import static com.opengamma.strata.pricer.capfloor.SabrOvernightInArrearsCapFloorTestData.VOLS;
import static com.opengamma.strata.pricer.capfloor.SabrOvernightInArrearsCapFloorTestData.VOLS_PAY;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.data.Offset.offset;

import org.junit.jupiter.api.Test;

import com.opengamma.strata.basics.currency.CurrencyAmount;
import com.opengamma.strata.basics.currency.MultiCurrencyAmount;
import com.opengamma.strata.market.sensitivity.PointSensitivities;
import com.opengamma.strata.pricer.DiscountingPaymentPricer;

/**
 * Test {@link SabrOvernightInArrearsCapFloorTradePrice


aller than DLAMCH( 'E' )*ANORM in order to limit the size of
        /// the error bound.
        ///
        /// DDISNA may also be used to compute error bounds for eigenvectors of
        /// the generalized symmetric definite eigenproblem.
        ///
        ///</summary>
        /// <param name="JOB">
        /// (input) CHARACTER*1
        /// Specifies for which problem the reciprocal condition numbers
        /// should be computed:
        /// = 'E':  the eigenvectors of a symmetric/Hermitian matrix;
        /// = 'L':  the left singular vectors of a general matrix;
        /// = 'R':  the right singular vectors of a general matrix.
        ///</param>
        /// <param name="M">
        /// (input) INTEGER
        /// The number of rows of the matrix. M .GE. 0.
        ///</param>
        /// <param name="N">
        /// (input) INTEGER
        /// If JOB = 'L' or 'R', the number of columns of the matrix,
        /// in which case N .GE. 0. Ignored if JOB = 'E'.
        ///</param>
        /// <param name="D">
        /// (input) DOUBLE PRECISION array, dimension (M) if JOB = 'E'
        /// dimension (min(M,N)) if JOB = 'L' or 'R'
        /// The eigenvalues (if JOB = 'E') or singular values (if JOB =
        /// 'L' or 'R') of the matrix, in either increasing or decreasing
        /// order. If singular values, they must be non-negative.
        ///</param>
        /// <param name="SEP">
        /// (output) DOUBLE PRECISION array, dimension (M) if JOB = 'E'
        /// dimension (min(M,N)) if JOB = 'L' or 'R'
        /// The reciprocal condition numbers of the vectors.
        ///</param>
        /// <param name="INFO">
        /// (output) INTEGER
        /// = 0:  successful exit.
        /// .LT. 0:  if INFO = -i, the i-th argument had an illegal value.
        ///</param>
        public void Run(string JOB, int M, int N, double[] D, int offset_d, ref double[] SEP, int offset_sep, ref int INFO)
        {

            #region Variables

            bool DECR = false; bool EIGEN = false; bool INCR = false; bool LEFT = false; bool RIGHT = false; bool SING = false;
            int I = 0;int K = 0; double ANORM = 0; double EPS = 0; double NEWGAP = 0; double OLDGAP = 0; double SAFMIN = 0;
            double THRESH = 0;

            #endregion

            #region Array Index Correction

             int o_d = -1 + offset_d;  int o_sep = -1 + offset_sep;

            #endregion

            #region Strings

            JOB = JOB.Substring(0, 1);

            #endregion

            #region Prolog

            // *
            // *  -- LAPACK routine (version 3.0) --
            // *     Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd.,
            // *     Courant Institute, Argonne National Lab, and Rice University
            // *     September 30, 1994
            // *
            // *     .. Scalar Arguments ..
            // *     ..
            // *     .. Array Arguments ..
            // *     ..
            // *
            // *  Purpose
            // *  =======
            // *
            // *  DDISNA computes the reciprocal condition numbers for the eigenvectors
            // *  of a real symmetric or complex Hermitian matrix or for the left or
            // *  right singular vectors of a general m-by-n matrix. The reciprocal
            // *  condition number is the 'gap' between the corresponding eigenvalue or
            // *  singular value and the nearest other one.
            //


t scrumboard = "https://www.youtube.com/channel/UClIKOsDS5dsfzFA3zveDT3Q?view_as=subscriber" %}
{% set repo = "https://github.com/avabrooks/Python-Web-Portfolio-Series-Demo" %}
{% set authors = "https://thesmack.nighthawkcodingsociety.com/digitalPortfolios/"  %}

{% block background %}

{% endblock %}<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Статистика по приёмке</title>


令（如 `syscall`）。
> >    > - **切换特权级**：CPU 自动从用户态（Ring 3）切换到内核态（Ring 0）。
> >    > - **安全检查**：操作系统验证参数合法性（比如检查文件路径是否允许访问）。
> >    >
> >    > **结果**：用户程序像“隔着防弹玻璃办事”，全程受控，无法直接触碰底层硬件。
> >
> >
> >
> > 3. **内存隔离护城河**：内核拥有独立的内存空间，用户程序试图 "翻墙" 访问时，MMU（内存管理单元）会立即触发异常警报。
> >
> > 4. **中断应急通道**：当硬件故障或程序异常时（如除零错误），CPU 自动切换到内核态启动应急响应，就像医院遇到突发状况自动启动应急电源。
> >
> > ##### 进阶知识：现代 CPU 使用特权环（Ring 0-3）实现多级防护：
> >
> > - Ring 0：操作系统内核（主刀医生）
> > - Ring 1-2：驱动/虚拟机（助理医师）
> > - Ring 3：应用程序（患者家属）
> >

> 从 3 个角度看待内核态与用户态的区别

- **内核态**：操作系统的 **管理程序** 执行时机器所处的状态，在此状态下处理机可使用 **全部指令包括一组特权指令**；使用全部系统资源包括 **整个存储区域**.
- **用户态**：**用户程序** 执行时 CPU 所处的状态，在此状态下 **禁止使用特权指令**，不能直接取用资源与改变机器状态，并且 **只允许用户程序访问自己的存储区域**。

**CPU 的特权指令集**：涉及外部设备的输入输出指令修改特殊寄存器的指令，改变机器状态的指令

### CPU 特权级切换的 3 个场景

- **应用程序调用操作系统提供的系统调用**，此时应用程序通过执行系统调用指令将 CPU 的特权级从用户态切换到内核态。

- 应用 **程序执行一条指令** 触发了 **异常**，导致 CPU 的特权级从用户态切换到内核态，比如访内存指令触发了 **缺页异常**

- 应用程序执行过程中，CPU 收到一条 **来自外设的中断** ，对中断的处理导致 CPU 的特权级从用户态切换到内核态。

#### 中断

- 中断一般通过中断向量将控制权转移到中断服务例程，中断向


u > .active > a:hover, *.dalliance .dropdown-menu > .active > a:focus {
  color: #fff;
  text-decoration: none;
  background-color: #0081c2;
  background-image: -moz-linear-gradient(top, #08c, #0077b3);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#08c), to(#0077b3));
  background-image: -webkit-linear-gradient(top, #08c, #0077b3);
  background-image: -o-linear-gradient(top, #08c, #0077b3);
  background-image: linear-gradient(to bottom, #08c, #0077b3);
  background-repeat: repeat-x;
  outline: 0;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);
}
*.dalliance .dropdown-menu > .disabled > a, *.dalliance .dropdown-menu > .disabled > a:hover, *.dalliance .dropdown-menu > .disabled > a:focus {
  color: #999;
}
*.dalliance .dropdown-menu > .disabled > a:hover, *.dalliance .dropdown-menu > .disabled > a:focus {
  text-decoration: none;
  cursor: default;
  background-color: transparent;
  background-image: none;
  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
}
*.dalliance .open {
  *z-index: 1000;
}
*.dalliance .open > .dropdown-menu {
  display: block;
}
*.dalliance .pull-right > .dropdown-menu {
  right: 0;
  left: auto;
}
*.dalliance .dropup .caret, *.dalliance .navbar-fixed-bottom .dropdown .caret {
  border-top: 0;
  border-bottom: 4px solid #000;
  content: "";
}
*.dalliance .dropup .dropdown-menu, *.dalliance .navbar-fixed-bottom .dropdown .dropdown-menu {
  top: auto;
  bottom: 100%;
  margin-bottom: 1px;
}
*.dalliance .dropdown-submenu {
  position: relative;
}
*.dalliance .dropdown-submenu > .dropdown-menu {
  top: 0;
  left: 100%;
  margin-top: -6px;
  margin-left: -1px;
  -webkit-border-radius: 0 6px 6px 6px;
  -moz-border-radius: 0 6px 6px 6px;
  border-radius: 0 6px 6px 6px;
}
*.dalliance .dropdown-submenu:hover > .dropdown-menu {
  display: block;
}
*.dalliance .dropup .dropdown-submenu > .dropdown-menu {
  top: auto;
  bottom: 0;
  margin-top: 0;
  margin-bottom: -2px;
  -webkit-border-radius: 5px 5px 5px 0;
  -moz-border-radius: 5px 5px 5px 0;
  border-radius: 5px 5px 5px 0;
}
*.dalliance .dropdown-submenu > a:after {
  display: block;
  float: right;
  width: 0;
  height: 0;
  margin-top: 5px;
  margin-right: -10px;
  border-color: transparent;
  border-left-color: #ccc;
  border-style: solid;
  border-width: 5px 0 5px 5px;
  content: " ";
}
*.dalliance .dropdown-submenu:hover > a:after {
  border-left-color: #fff;
}
*.dalliance .dropdown-submenu.pull-left {
  float: none;
}
*.dalliance .dropdown-submenu.pull-left > .dropdown-menu {
  left:


/循环结束
        fun onFinish()

        //事件执行失败, 在主线程回调
        fun onError(e: Throwable?)
    }
}package com.common.webframe.jsapi

import android.content.Context
import android.content.Intent
import android.net.Uri
import android.text.TextUtils
import android.view.View
import android.view.inputmethod.InputMethodManager
import android.webkit.JavascriptInterface
import android.widget.ImageView
import android.widget.TextView
import android.widget.Toast
import androidx.cardview.widget.CardView
import androidx.fragment.app.FragmentActivity
import com.bumptech.glide.Glide
import com.coder.zzq.smartshow.dialog.LoadingDialog
import com.common.arms.integration.AppManager
import com.common.res.config.AppConfig
import com.common.res.entity.SendEventEntity
import com.common.res.event.WEBFRAME_EVENT
import com.common.res.utils.GsonUtil
import com.common.res.utils.appLogoutToLogin
import com.common.res.utils.eventBusPost
import com.common.webframe.entity.*
import com.common.webframe.entity.ToolBarEntity.BtnLeftEntity
import com.common.webframe.entity.ToolBarEntity.BtnmoreEntity
import com.common.webframe.ui.activity.TabPageActivity
import com.common.webframe.ui.activity.WebPageActivity
import com.common.webframe.ui.fragment.WebPageFrgment
import com.common.webframe.utils.JsApiHelper
import com.common.webframe.view.BaseDWebView
import com.common.webframe.view.CompletionHandler
import com.google.gson.Gson
import com.tencent.mmkv.MMKV
import kotlinx.android.synthetic.main.layout_toolbar.*
import java.util.*

class JsApi {

    var isCanBack = true
    var dWebView: BaseDWebView? = null
    var morebtns: ArrayList<BtnmoreEntity>? = null
    var fragment: WebPageFrgment? = null
    var activity: FragmentActivity? = null
    var loadingDialog: LoadingDialog? = null
    private var webframeToolbar: CardView? = null
    private var tvWebframeTitle: TextView? = null
    private var ivWebframeBack: ImageView? = null
    private var ivWebframeMore: ImageView? = null
    private var tvWebframeRightText: TextView? = null
    private var ivRightImage: ImageView? = null
    private var handler: CompletionHandler<String>? = null
    private var btnleft: BtnLeftEntity? = null

    fun init(fragment: WebPageFrgment?, dWebView: BaseDWebView?) {
        this.fragment = fragment
        this.dWebView = dWebView
        activity = fragment?.activity
        if (activity is WebPageActivity<*>) {
            webframeToolbar = activity?.webframe_toolbar
            tvWebframeTitle = activity?.tv_webframe_title
            ivWebframeMore = activity?.iv_webframe_more
            ivWebframeBack = activity?.iv_webframe_back
            ivRightImage = activity?.iv_right_image
            tvWebframeRightText = activity?.tv_webframe_right_text
        }
    }

    /**
     * 初始化页面
     *
     * @param data
     */
    @JavascriptInterface
    fun initWebPage(data: Any) {
        activity?.runOnUiThread {
            val entity = GsonUtil.fromJson(data.toString(), WebPageEntity::class.java)
            if (entity != null) {
                val toolBar = entity.toolbar
                if (toolBar != null && toolBar.visible) {
                    //显示toolbar
                    if (webframeToolbar != null) webframeToolbar?.visibility = View.VISIBLE

                    //处理左侧按钮逻辑
                    btnleft = toolBar.btnleft
                    isCanBack = btnleft == null
                    if (ivWebframeBack != null) ivWebframeBack?.setOnClickListener { v: View? -> activity?.onBackPressed() }

                    //显示title
                    val title = toolBar.title
                    if (tvWebframe


inCallback = callback;
    cb_user_data.ChainCallbackUserData = user_data;
    return InputTextWithHint(label, hint, (char*)str->c_str(), str->capacity() + 1, flags, InputTextCallback, &cb_user_data);
}

#if defined(__clang__)
#pragma clang diagnostic pop
#endif

#endif // #ifndef IMGUI_DISABLE
// dear imgui: FreeType font builder (used as a replacement for the stb_truetype builder)
// (code)

// Get the latest version at https://github.com/ocornut/imgui/tree/master/misc/freetype
// Original code by @vuhdo (Aleksei Skriabin). Improvements by @mikesart. Maintained since 2019 by @ocornut.

// CHANGELOG
// (minor and older changes stripped away, please see git history for details)
//  2024/10/17: added plutosvg support for SVG Fonts (seems faster/better than lunasvg). Enable by using '#define IMGUI_ENABLE_FREETYPE_PLUTOSVG'. (#7927)
//  2023/11/13: added support for ImFontConfig::RasterizationDensity field for scaling render density without scaling metrics.
//  2023/08/01: added support for SVG fonts, enable by using '#define IMGUI_ENABLE_FREETYPE_LUNASVG'. (#6591)
//  2023/01/04: fixed a packing issue which in some occurrences would prevent large amount of glyphs from being packed correctly.
//  2021/08/23: fixed crash when FT_Render_Glyph() fails to render a glyph and returns nullptr.
//  2021/03/05: added ImGuiFreeTypeBuilderFlags_Bitmap to load bitmap glyphs.
//  2021/03/02: set 'atlas->TexPixelsUseColors = true' to help some backends with deciding of a preferred texture format.
//  2021/01/28: added support for color-layered glyphs via ImGuiFreeTypeBuilderFlags_LoadColor (require Freetype 2.10+).
//  2021/01/26: simplified integration by using '#define IMGUI_ENABLE_FREETYPE'. renamed ImGuiFreeType::XXX flags to ImGuiFreeTypeBuilderFlags_XXX for consistency with other API. removed ImGuiFreeType::BuildFontAtlas().
//  2020/06/04: fix for rare case where FT_Get_Char_Index() succeed but FT_Load_Glyph() fails.
//  2019/02/09: added RasterizerFlags::Monochrome flag to disable font anti-aliasing (combine with ::MonoHinting for best results!)
//  2019/01/15: added support for imgui allocators + added FreeType only override function SetAllocatorFunctions().
//  2019/01/10: re-factored to match big update in STB builder. fixed texture height waste. fixed redundant glyphs when merging. support for glyph padding.
//  2018/06/08: added support for ImFontConfig::GlyphMinAdvanceX, GlyphMaxAdvanceX.
//  2018/02/04: moved to main imgui repository (away from http://www.github.com/ocornut/imgui_club)
//  2018/01/22: fix for addition of ImFontAtlas::TexUvscale member.
//  2017/10/22: minor inconsequential change to match change in master (removed an unnecessary statement).
//  2017/09/26: fixes for imgui internal changes.
//  2017/08/26: cleanup, optimizations, support for ImFontConfig::RasterizerFlags, ImFontConfig::RasterizerMultiply.
//  2017/08/16: imported from https://github.com/Vuhdo/imgui_freetype into http://www.github.com/ocornut/imgui_club, updated for latest changes in ImFontAtlas, minor tweaks.

// About Gamma Correct Blending:
// - FreeType assumes blending in linear space rather than gamma space.
// - See https://www.freetype.org/freetype2/docs/reference/ft2-base_interface.html#FT_Render_Gly


÷ 1160 ÷	#  × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [7.01] SPACE (SP) ÷ [18.0] HANGUL JUNGSEONG FILLER (JV) ÷ [0.3]
× 200D × 0308 ÷ 1160 ÷	#  × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) ÷ [999.0] HANGUL JUNGSEONG FILLER (JV) ÷ [0.3]
× 200D × 0308 × 0020 ÷ 1160 ÷	#  × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) ÷ [18.0] HANGUL JUNGSEONG FILLER (JV) ÷ [0.3]
× 200D × 000A ÷	#  × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [6.0] <LINE FEED (LF)> (LF) ÷ [0.3]
× 200D × 0020 × 000A ÷	#  × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [7.01] SPACE (SP) × [6.0] <LINE FEED (LF)> (LF) ÷ [0.3]
× 200D × 0308 × 000A ÷	#  × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [6.0] <LINE FEED (LF)> (LF) ÷ [0.3]
× 200D × 0308 × 0020 × 000A ÷	#  × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) × [6.0] <LINE FEED (LF)> (LF) ÷ [0.3]
× 200D × 0085 ÷	#  × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [6.0] <NEXT LINE (NEL)> (NL) ÷ [0.3]
× 200D × 0020 × 0085 ÷	#  × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [7.01] SPACE (SP) × [6.0] <NEXT LINE (NEL)> (NL) ÷ [0.3]
× 200D × 0308 × 0085 ÷	#  × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [6.0] <NEXT LINE (NEL)> (NL) ÷ [0.3]
× 200D × 0308 × 0020 × 0085 ÷	#  × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] COMBINING DIAERESIS (CM1_CM) × [7.01] SPACE (SP) × [6.0] <NEXT LINE (NEL)> (NL) ÷ [0.3]
× 200D × 17D6 ÷	#  × [0.3] ZERO WIDTH JOINER (ZWJ_O_ZWJ_CM) × [8.1] KHMER SIGN CAMNUC PII KUUH (NS) ÷ [0.3]
× 200D × 0020 ÷ 17D6 ÷	#  × [0.3] ZERO WIDTH JOINER (Z


Console","Lucida Sans Typewriter","DejaVu Sans Mono","Bitstream Vera Sans Mono","Liberation Mono","Nimbus Mono L",Monaco,"Courier New",Courier,monospace;font-size:1em;background:none;border:none;color:gray}.rst-footer-buttons{*zoom:1}.rst-footer-buttons:before,.rst-footer-buttons:after{width:100%}.rst-footer-buttons:before,.rst-footer-buttons:after{display:table;content:""}.rst-footer-buttons:after{clear:both}.rst-breadcrumbs-buttons{margin-top:12px;*zoom:1}.rst-breadcrumbs-buttons:before,.rst-breadcrumbs-buttons:after{display:table;content:""}.rst-breadcrumbs-buttons:after{clear:both}#search-results .search li{margin-bottom:24px;border-bottom:solid 1px #e1e4e5;padding-bottom:24px}#search-results .search li:first-child{border-top:solid 1px #e1e4e5;padding-top:24px}#search-results .search li a{font-size:120%;margin-bottom:12px;display:inline-block}#search-results .context{color:gray;font-size:90%}@media screen and (max-width: 768px){.wy-body-for-nav{background:#fcfcfc}.wy-nav-top{display:block}.wy-nav-side{left:-300px}.wy-nav-side.shift{width:85%;left:0}.wy-side-scroll{width:auto}.wy-side-nav-search{width:auto}.wy-menu.wy-menu-vertical{width:auto}.wy-nav-content-wrap{margin-left:0}.wy-nav-content-wrap .wy-nav-content{padding:1.618em}.wy-nav-content-wrap.shift{position:fixed;min-width:100%;left:85%;top:0;height:100%;overflow:hidden}}@media screen and (min-width: 1400px){.wy-nav-content-wrap{background:rgba(0,0,0,0.05)}.wy-nav-content{margin:0;background:#fcfcfc}}@media print{.rst-versions,footer,.wy-nav-side{display:none}.wy-nav-content-wrap{margin-left:0}}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;border-top:solid 10px #343131;font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif;z-index:400}.rst-versions a{color:#2980B9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27AE60;*zoom:1}.rst-versions .rst-current-version:before,.rst-versions .rst-current-version:after{display:table;content:""}.rst-versions .rst-current-version:after{clear:both}.rst-versions .rst-current-version .fa,.rst-versions .rst-current-version .wy-menu-vertical li span.toctree-expand,.wy-menu-vertical li .rst-versions .rst-current-version span.toctree-expand,.rst-versions .rst-current-version .rst-content .admonition-title,.rst-content .rst-versions .rst-current-version .admonition-title,.rst-versions .rst-current-version .rst-content h1 .headerlink,.rst-content h1 .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content h2 .headerlink,.rst-content h2 .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content h3 .headerlink,.rst-content h3 .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content h4 .headerlink,.rst-content h4


        "(?:§.)*Active Effects: (?:§.)*\\((?<amount>\\d+)\\)",
    ),
    BESTIARY(
        // language=RegExp
        "(?:§.)*Bestiary:",
    ),
    ESSENCE(
        // language=RegExp
        "(?:§.)*Essence:.*",
    ),
    FORGE(
        // language=RegExp
        "(?:§.)*Forges:",
    ),
    TIMERS(
        // language=RegExp
        "(?:§.)*Timers:",
    ),
    DUNGEON_STATS(
        // language=RegExp
        "Opened Rooms: (?:§.)*(?<opend>\\d+)",
    ),
    PARTY(
        // language=RegExp
        "(?:§.)*Party:.*",
    ),
    TRAPPER(
        // language=RegExp
        "(?:§.)*Trapper:",
    ),
    COMMISSIONS(
        // language=RegExp
        "(?:§.)*Commissions:",
    ),
    POWDER(
        // language=RegExp
        "(?:§.)*Powders:",
    ),
    CRYSTAL(
        // language=RegExp
        "(?:§.)*Crystals:",
    ),
    UNCLAIMED_CHESTS(
        // language=RegExp
        "Unclaimed chests: (?:§.)*(?<amount>\\d+)",
    ),
    RAIN(
        // language=RegExp
        "(?<type>Thunder|Rain): (?:§.)*(?<time>.*)",
    ),
    BROODMOTHER(
        // language=RegExp
        "Broodmother: (?:§.)*(?<stage>.*)",
    ),
    EYES_PLACED(
        // language=RegExp
        "Eyes placed: (?:§.)*(?<amount>\\d).*|(?:§.)*Dragon spawned!|(?:§.)*Egg respawning!",
    ),
    PROTECTOR(
        // language=RegExp
        "Protector: (?:§.)*(?<time>.*)",
    ),
    DRAGON(
        // language=RegExp
        "(?:§.)*Dragon: (?:§.)*\\((?<type>[^)]*)\\)",
    ),
    VOLCANO(
        // language=RegExp
        "Volcano: (?:§.)*(?<time>.*)",
    ),
    REPUTATION(
        // language=RegExp
        "(?:§.)*(?<faction>Barbarian|Mage) Reputation:",
    ),
    FACTION_QUESTS(
        // language=RegExp
        "(?:§.)*Faction Quests:",
    ),
    TROPHY_FISH(
        // language=RegExp
        "(?:§.)*Trophy Fish:",
    ),
    RIFT_INFO(
        // language=RegExp
        "(?:§.)*Good to know:",
    ),
    RIFT_SHEN(
        // language=RegExp
        "(?:§.)*Shen: (?:§.)*\\((?<time>[^)])\\)",
    ),
    RIFT_BARRY(
        // language=RegExp
        "(?:§.)*Advertisement:",
    ),
    COMPOSTER(
        // language=RegExp
        "(?:§.)*Composter:",
    ),
    GARDEN_LEVEL(
        // language=RegExp
        "Garden Level: (?:§.)*(?<level>.*)",
    ),
    COPPER(
        // language=RegExp
        "Copper: (?:§.)*(?<amount>\\d+)",
    ),
    PESTS(
        // language=RegExp
        "(?:§.)*Pests:",
    ),
    PEST_TRAPS(
        // language=RegExp


30 170L30 230L185 449L34 449L34 527L304 527L304 468L150 248L308 248L308 170L30 170Z" /></symbol><symbol id="OBSERVED/MORX-5/11a.one_one" overflow="visible"><path d="M171-28L171-28Q50-28 50 94L50 94L50 620L50 620Q50 742 171 742L171 742L698 742L698 742Q820 742 820 620L820 620L820 94L820 94Q820-28 698-28L698-28L171-28ZM302 181L397 181L397 532L313 532L192 434L241 374L241 374Q249 380 261.50 388.50L261.50 388.50L261.50 388.50Q274 397 281 405L281 405L281 405Q293 419 303 429L303 429L303 429Q302 403 302 355L302 355L302 181ZM544 181L639 181L639 532L555 532L434 434L483 374L483 374Q491 380 503.50 388.50L503.50 388.50L503.50 388.50Q516 397 523 405L523 405L523 405Q535 419 545 429L545 429L545 429Q544 403 544 355L544 355L544 181Z" /></symbol><use xlink:href="#OBSERVED/MORX-5/11a.P" x="0" y="0" /><use xlink:href="#OBSERVED/MORX-5/11a.Q" x="333" y="0" /><use xlink:href="#OBSERVED/MORX-5/11a.R" x="699" y="0" /><use xlink:href="#OBSERVED/MORX-5/11a.A" x="1050" y="0" /><use xlink:href="#OBSERVED/MORX-5/11a.X" x="1880" y="0" /><use xlink:href="#OBSERVED/MORX-5/11a.Y" x="2244" y="0" /><use xlink:href="#OBSERVED/MORX-5/11a.Z" x="2576" y="0" /><use xlink:href="#OBSERVED/MORX-5/11a.one_one" x="2898" y="0" /></svg>

    Conformance
    ✖
    ✖
    ✖
    ✖

    11: ABxD ⇒ DxBA
only 2 of 3+ glyphs
    12: ABxCD ⇒ CDxAB
only 1 of 4+ glyphs
    12: ABxCD ⇒ CDxAB
only 2 of 4+ glyphs
    12: ABxCD ⇒ CDxAB
only 3 of 4+ glyphs

    Expected
    <svg version="1.1" viewBox="0 -200 4578 1200"><symbol id="MORX-5/11b.P" overflow="visible"><path d="M47,527 L171,527 Q238,527 272,498 Q306,469 306,414 Q306,360 274,324 Q242,289 171,289 L144,289 L144,


 $v1, 24
/* 01050 80833260 00021603 */  sra     $v0, $v0, 24
.L80833264:
/* 01054 80833264 90EF0846 */  lbu     $t7, 0x0846($a3)           ## 00000846
/* 01058 80833268 00EFC021 */  addu    $t8, $a3, $t7
/* 0105C 8083326C A3030847 */  sb      $v1, 0x0847($t8)           ## 00000847
/* 01060 80833270 90F90846 */  lbu     $t9, 0x0846($a3)           ## 00000846
/* 01064 80833274 00F94021 */  addu    $t0, $a3, $t9
/* 01068 80833278 A102084B */  sb      $v0, 0x084B($t0)           ## 0000084B
/* 0106C 8083327C 8FBF0014 */  lw      $ra, 0x0014($sp)
/* 01070 80833280 27BD0018 */  addiu   $sp, $sp, 0x0018           ## $sp = 00000000
/* 01074 80833284 03E00008 */  jr      $ra
/* 01078 80833288 00000000 */  nop


Ayarlarda devre dışı';
        PROXY_SERVICE_FAIL = 'Çalışmıyor, %x kez başarısız oldu';

        PROXY_SETTINGS = 'Proxy Ayarları (İnternet sansürü ve ilgili proxy)';
        PROXY_SETTINGS_SUMMARY =
            'Yalnızca bir proxy etkinleştirilebilir. Yayın bağlantılarını farklı bir sunucudan almak için proxy sunucusunu etkinleştirir, bu da bölgenizde yasaklanmış içeriği görmenizi ve reklamları önlemenizi sağlayabilir. Çok fazla veya uzun süren arabelleğe alma, donma veya yayın kalitesinin düşmesine neden olabilecek yavaş bağlantı gibi herhangi bir canlı yayın sorununuz varsa bunu devre dışı bırakın.';
        SEEK_PREVIEW = 'Atlama Önizlemesi';
        SEEK_PREVIEW_SUMMARY =
            "Geri veya hızlı ileri sarma sırasında gösterilen VOD atlama önizleme resmini kontrol etmenizi sağlar. Atlama önizlemesi tüm VOD'lar için mevcut değildir.";
        SEEK_PREVIEW_SINGLE = 'Tek resim';
        SEEK_PREVIEW_CAROUSEL = 'Resim döngüsü';

        OPEN_NEW_ISSUE = "(Yeni sorun'a tıklayın)";

        STR_CONFIRM = 'Onayla';

        STR_MATURE_NO_CHANGES = 'Eksik şifre nedeniyle yetişkin içeriğinde değişiklik yapılmadı';
        STR_MATURE_PROTECT = 'Yetişkin içeriği değişikliklerini bir şifreyle koru';
        STR_MATURE_HELP_SET_PASS = "Bir şifre belirleyin ve Onayla'ya tıklayın, çıkış yapmak yetişkin ayarlarını sıfırlayacaktır";
        STR_MATURE_HELP_CHECK_PASS = "Kaydedilmiş şifreyi girin ve Onayla'ya tıklayın, çıkış yapmak yetişkin ayarlarını sıfırlayacaktır";

        STR_MATURE_DISABLED = 'Yetişkin içeriği devre dışı';
        STR_ENABLE_MATURE = 'Yetişkin içeriği';
        STR_ENABLE_MATURE_SUMMARY =
            'Devre dışı bırakıldığında uygulama, takip edilen içerikler de dahil olmak üzere yetişkin olarak işaretlenmiş tüm içeriği engeller. Buna yetişkin olarak işaretlenmiş canlı yayınlar ve klip ve VOD bölümlerindeki tüm içerikler dahildir';

        STR_SCREEN_OFF = 'Ekran kapalı (Sadece ses)';

        STR_UNBLOCK_CHANNEL = 'Kanalın engelini kaldır';
        STR_UNBLOCK_GAME = 'Oyunun engelini kaldır';
        STR_BLOCK_CHANNEL = 'Kanalı engelle';
        STR_BLOCK_GAME = 'Oyunu engelle';
        STR_BLOCK_NO_USER = 'Engelleyebilmek için önce bir kullanıcı ekleyin';
        STR_BLOCK_NO_CHANNEL = 'Bunun için kanal bilgisi alınamıyor';
        STR_BLOCK_OVERWRITE = 'Engellenenleri göster';
        STR_BLOCK_


f\n\t    ${1:guard} ->\n\t        ${2:body}\n\tend\n# case expression\nsnippet case\n\tcase ${1:expression} of\n\t    ${2:pattern} ->\n\t        ${3:body};\n\tend\n# anonymous function\nsnippet fun\n\tfun (${1:Parameters}) -> ${2:body} end${3}\n# try...catch\nsnippet try\n\ttry\n\t    ${1}\n\tcatch\n\t    ${2:_:_} -> ${3:got_some_exception}\n\tend\n# record directive\nsnippet rec\n\t-record(${1:record}, {\n\t    ${2:field}=${3:value}}).${4}\n# todo comment\nsnippet todo\n\t%% TODO: ${1}\n## Snippets below (starting with '%') are in EDoc format.\n## See http://www.erlang.org/doc/apps/edoc/chapter.html#id56887 for more details\n# doc comment\nsnippet %d\n\t%% @doc ${1}\n# end of doc comment\nsnippet %e\n\t%% @end\n# specification comment\nsnippet %s\n\t%% @spec ${1}\n# private function marker\nsnippet %p\n\t%% @private\n# OTP application\nsnippet application\n\t-module(${1:`Filename('', 'my')`}).\n\n\t-behaviour(application).\n\n\t-export([start/2, stop/1]).\n\n\tstart(_Type, _StartArgs) ->\n\t    case ${2:root_supervisor}:start_link() of\n\t        {ok, Pid} ->\n\t            {ok, Pid};\n\t        Other ->\n\t\t          {error, Other}\n\t    end.\n\n\tstop(_State) ->\n\t    ok.\t\n# OTP supervisor\nsnippet supervisor\n\t-module(${1:`Filename('', 'my')`}).\n\n\t-behaviour(supervisor).\n\n\t%% API\n\t-export([start_link/0]).\n\n\t%% Supervisor callbacks\n\t-export([init/1]).\n\n\t-define(SERVER, ?MODULE).\n\n\tstart_link() ->\n\t    supervisor:start_link({local, ?SERVER}, ?MODULE, []).\n\n\tinit([]) ->\n\t    Server = {${2:my_server}, {$2, start_link, []},\n\t      permanent, 2000, worker, [$2]},\n\t    Children = [Server],\n\t    RestartStrategy = {one_for_one, 0, 1},\n\t    {ok, {RestartStrategy, Children}}.\n# OTP gen_server\nsnippet gen_server\n\t-module(${1:`Filename('', 'my')`}).\n\n\t-behaviour(gen_server).\n\n\t%% API\n\t-export([\n\t         start_link/0\n\t        ]).\n\n\t%% gen_server callbacks\n\t-export([init/1, handle_call/3, handle_cast/2, handle_info/2,\n\t         terminate/2, code_change/3]).\n\n\t-define(SERVER, ?MODULE).\n\n\t-record(state, {}).\n\n\t%%%===================================================================\n\t%%% API\n\t%%%===================================================================\n\n\tstart_link() ->\n\t    gen_server:start_link({local, ?SERVER}, ?MODULE, [], []).\n\n\t%%%===================================================================\n\t%%% gen_server callbacks\n\t%%%===================================================================\n\n\tinit([]) ->\n\t    {ok, #state{}}.\n\


le, or in the Claude Desktop configuration:\u003c/p\u003e\n\u003cdiv class=\"highlight highlight-source-json notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"{\n  \u0026quot;mcpServers\u0026quot;: {\n    \u0026quot;mcp-clickhouse\u0026quot;: {\n      \u0026quot;command\u0026quot;: \u0026quot;uv\u0026quot;,\n      \u0026quot;args\u0026quot;: [\n        \u0026quot;run\u0026quot;,\n        \u0026quot;--with\u0026quot;,\n        \u0026quot;mcp-clickhouse\u0026quot;,\n        \u0026quot;--python\u0026quot;,\n        \u0026quot;3.13\u0026quot;,\n        \u0026quot;mcp-clickhouse\u0026quot;\n      ],\n      \u0026quot;env\u0026quot;: {\n        \u0026quot;CLICKHOUSE_HOST\u0026quot;: \u0026quot;\u0026lt;clickhouse-host\u0026gt;\u0026quot;,\n        \u0026quot;CLICKHOUSE_USER\u0026quot;: \u0026quot;\u0026lt;clickhouse-user\u0026gt;\u0026quot;,\n        \u0026quot;CLICKHOUSE_PASSWORD\u0026quot;: \u0026quot;\u0026lt;clickhouse-password\u0026gt;\u0026quot;,\n        \u0026quot;CLICKHOUSE_DATABASE\u0026quot;: \u0026quot;\u0026lt;optional-database\u0026gt;\u0026quot;\n      }\n    }\n  }\n}\"\u003e\u003cpre\u003e{\n  \u003cspan class=\"pl-ent\"\u003e\"mcpServers\"\u003c/span\u003e: {\n    \u003cspan class=\"pl-ent\"\u003e\"mcp-clickhouse\"\u003c/span\u003e: {\n      \u003cspan class=\"pl-ent\"\u003e\"command\"\u003c/span\u003e: \u003cspan class=\"pl-s\"\u003e\u003cspan class=\"pl-pds\"\u003e\"\u003c/span\u003euv\u003cspan class=\"pl-pds\"\u003e\"\u003c/span\u003e\u003c/span\u003e,\n      \u003cspan class=\"pl-ent\"\u003e\"args\"\u003c/span\u003e: [\n        \u003cspan class=\"pl-s\"\u003e\u003cspan class=\"pl-pds\"\u003e\"\u003c/span\u003erun\u003cspan class=\"pl-pds\"\u003e\"\u003c/span\u003e\u003c/span\u003e,\n        \u003cspan class=\"pl-s\"\u003e\u003cspan class=\"pl-pds\"\u003e\"\u003c/span\u003e--with\u003cspan class=\"pl-pds\"\u003e\"\u003c/span\u003e\u003c/span\u003e,\n        \u003cspan class=\"pl-s\"\u003e\u003cspan class=\"pl-pds\"\u003e\"\u003c/span\u003emcp-clickhouse\u003cspan class=\"pl-pds\"\u003e\"\u003c/span\u003e\u003c/span\u003e,\n        \u003cspan class=\"pl-s\"\u003e\u003cspan class=\"pl-pds\"\u003e\"\u003c/span\u003e--python\u003cspan class=\"pl-pds\"\u003e


/x-cvsweb-markup">gui/boundaryvisualizer/RemoteResult.html (1.3)

gui/experiment/DatasetListPanel.html (1.25)

gui/experiment/DistributeExperimentPanel.html (1.6)

gui/experiment/Experimenter.html (1.12)

gui/experiment/GeneratorPropertyIteratorPanel.html (1.10)

gui/experiment/HostListPanel.html (1.5)

gui/experiment/OutputFormatDialog.html (1.7)

gui/experiment/ResultsPanel.html (1.42)

gui/experiment/RunNumberPanel.html (1.6)

gui/experiment/RunPanel.html (1.21)

gui/experiment/SetupModePanel.html (1.5)

gui/experiment/SetupPanel.html (1.31)

gui/experiment/SimpleSetupPanel.html (1.14)

gui/explorer/AssociationsPanel.html (1.26)

gui/explorer/AttributeSelectionPanel.html (1.48)

2007-05-01 01:24 fracp


id="returns">Returns

None

Side Effects

Updates material operators (G, B, CT) and copies to FE field CT.

                                        <input id="LinearMomentum.compute_elastic_stress-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">

        def
        compute_elastic_stress(self, eps_e: torch.Tensor) -> torch.Tensor:

                View Source

783    def compute_elastic_stress(self, eps_e: to.Tensor) -> to.Tensor:
784        """
785        Compute elastic Cauchy stress using the elastic stiffness `C`.
786
787        Parameters
788        ----------
789<spa


ue
}

Then you should handle shake gesture in AppDelegate (if you want to record bug reports from anywhere in the app on iOS 8, 9, 10) or in specific UIViewController (since motionBegan method doesn’t work in AppDelegate starting from iOS 10).

Objective-C :
objective-c
- (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event {
    [[ClueController sharedInstance] handleShake:motion];
}

Swift :
swift
func motionBegan(_ motion: UIEventSubtype, with event: UIEvent?) {
    ClueController.sharedInstance().handleShake(motion)
}

After that you can shake your device and start recording. Shake it again to stop it.

Additional abilities

If you want to use your own custom UI element to enable report recording you can call startRecording() and stopRecording() methods  from ClueController directly like in the example below.

Objective-C :
objective-c
[[ClueController sharedInstance] startRecording];
...
[[ClueController sharedInstance] stopRecording];

Swift :
swift
ClueController.sharedInstance().startRecording()
...
ClueController.sharedInstance().stopRecording()

To disable ability to record bug reports just call disable() method from ClueController.

Objective-C :
objective-c
[[ClueController sharedInstance] disable];

Swift :
swift
ClueController.sharedInstance().disable()

✅ Platforms Support

Clue supports iOS 9+ devices.
The current version of Clue (and the master branch) is compatible with Xcode 8

🛠 Hackable

Love this part. Clue designed in a way that you can tweak whatever you want and add more functionalities to report recording process (and I encourage you to do so) so it will fit into your custom needs. For example you want to track your custom logs during recording. Just create a separate module for that and plug it to recording process (I’ll explain this in details below)

Unfortunately Clue built with Objective-C (at least for the first iteration. I’m considering to rewrite some parts to Swift, for sure)  so all internals wasn’t design to be Swift compatible. (If you can fix it — contributions are welcome!)

Basic architecture and structures:

There are two main concepts in Clue which you need to understand in order to build it by yourself:
* Modules
    * Record


ine-39">PlutusTx.makeLift ''A

-- | "B"-side coin token
data B = B deriving Typeable B
DataType
Constr
Typeable B
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> B -> c B)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c B)
-> (B -> Constr)
-> (B -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c B))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c B))
-> ((forall b. Data b => b -> b) -> B -> B)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> B -> r)
-> (forall r r'.
    (r' -> r -> r)


ion>
🔬This is a nightly-only experimental API. (error_generic_member_access)

Provides type-based access to context intended for error reports. Read more

Auto Trait Implementations§

§
impl Freeze for SpawnError

§
impl RefUnwindSafe for SpawnError

§
impl Send for SpawnError

§
impl Sync for SpawnError

§
impl Unpin for SpawnError

§
impl <a class="trait" href="https://doc.rust-lang.org/1


Boundary>' +
                        '<ogc:Literal>100</ogc:Literal>' +
                    '</ogc:UpperBoundary>' +
                '</ogc:PropertyIsBetween>' +
            '</ogc:Filter>';

        var filter = parser.read(xml.read(test_xml).documentElement);
        t.eq(filter.type, OpenLayers.Filter.Comparison.BETWEEN,
             "[0] read correct type");
        t.eq(filter.lowerBoundary, 0,
             "[0] record correct lower boundary value");
        t.eq(filter.upperBoundary, 100,
             "[0] record correct upper boundary value");

        test_xml =
            '<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">' +
                '<ogc:PropertyIsBetween>' +
                    '<ogc:PropertyName>number</ogc:PropertyName>' +
                    '<ogc:LowerBoundary>0</ogc:LowerBoundary>' +
                    '<ogc:UpperBoundary>100</ogc:UpperBoundary>' +
                '</ogc:PropertyIsBetween>' +
            '</ogc:Filter>';

        var filter = parser.read(xml.read(test_xml).documentElement);
        t.eq(filter.type, OpenLayers.Filter.Comparison.BETWEEN,
             "[1] read correct type");
        t.eq(filter.lowerBoundary, 0,
             "[1] record correct lower boundary value");
        t.eq(filter.upperBoundary, 100,
             "[1] record correct upper boundary value");
    }

    function test_PropertyIsNull(t) {

        t.plan(3);

        var format, test_xml, xml, filter, node;

        format = new OpenLayers.Format.Filter.v1();

        test_xml =
            '<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">' +
                '<ogc:PropertyIsNull>' +
                    '<ogc:PropertyName>prop</ogc:PropertyName>' +
                '</ogc:PropertyIsNull>' +
            '</ogc:Filter>';

        // Test reading a PropertyIsNull filter from an XML doc
        xml = new OpenLayers.Format.XML();
        filter = format.read(xml.read(test_xml).documentElement);
        t.eq(filter.type, OpenLayers.Filter.Comparison.IS_NULL,
             "[0] read correct type");
        t.eq(filter.property, 'prop',
             "[0] record correct property name");

        // Test writing a PropertyIsNull filter out to XML
        filter = new OpenLayers.Filter.Comparison({
            type: OpenLayers.Filter.Comparison.IS_NULL,
            property: "prop"
        });
        node = format.write(filter);
        t.xml_eq(node, test_xml, "filter correctly written");

    }

    function test_Intersects(t) {

        t.plan(4);

        var str =
            '<Filter xmlns="http://www.opengis.net/ogc">' +
                '<Intersects>' +
                    '<PropertyName>Geometry</PropertyName>' +
                    '<gml:Polygon xmlns:gml="http://www.opengis.net/gml">' +
                        '<gml:outerBoundaryIs>' +
                            '<gml:LinearRing>' +
                                '<gml:coordinates decimal="." cs="," ts=" ">2488789,289552 2588789,289552 2588789,389552 2488789,389552 2488789,289552</gml:coordinates>' +
                            '</gml:LinearRing>' +
                        '</gml:outerBoundaryIs>' +
                    '</gml:Polygon>' +
                '</Intersects>' +
            '</Filter>';

        var format = new OpenLayers.Format.Filter.v1_0_0();
        var filter = new OpenLayers.Filter.


Environment('protobuf.omit_field_names')
            ? ''
            : 'url')
    ..pc<DiagnosticMessage>(
        9,
        const $core.bool.fromEnvironment('protobuf.omit_field_names')
            ? ''
            : 'diagnosticMessages',
        $pb.PbFieldType.PM,
        protoName: 'diagnosticMessages',
        subBuilder: DiagnosticMessage.create)
    ..aOS(
        10,
        const $core.bool.fromEnvironment('protobuf.omit_field_names')
            ? ''
            : 'correction')
    ..hasRequiredFields = false;

  AnalysisIssue._() : super();
  factory AnalysisIssue({
    $core.String? kind,
    $core.int? line,
    $core.String? message,
    $core.String? sourceName,
    $core.bool? hasFixes,
    $core.int? charStart,
    $core.int? charLength,
    $core.String? url,
    $core.Iterable<DiagnosticMessage>? diagnosticMessages,
    $core.String? correction,
  }) {
    final _result = create();
    if (kind != null) {
      _result.kind = kind;
    }
    if (line != null) {
      _result.line = line;
    }
    if (message != null) {
      _result.message = message;
    }
    if (sourceName != null) {
      _result.sourceName = sourceName;
    }
    if (hasFixes != null) {
      _result.hasFixes = hasFixes;
    }
    if (charStart != null) {
      _result.charStart = charStart;
    }
    if (charLength != null) {
      _result.charLength = charLength;
    }
    if (url != null) {
      _result.url = url;
    }
    if (diagnosticMessages != null) {
      _result.diagnosticMessages.addAll(diagnosticMessages);
    }
    if (correction != null) {
      _result.correction = correction;
    }
    return _result;
  }
  factory AnalysisIssue.fromBuffer($core.List<$core.int> i,
          [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromBuffer(i, r);
  factory AnalysisIssue.fromJson($core.String i,
          [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromJson(i, r);
  @$core.Deprecated('Using this can add significant overhead to your binary. '
      'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
      'Will be removed in next major version')
  AnalysisIssue clone() => AnalysisIssue()..mergeFromMessage(this);
  @$core.Deprecated('Using this can add significant overhead to your binary. '
      'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
      'Will be removed in next major version')
  AnalysisIssue copyWith(void Function(AnalysisIssue) updates) =>
      super.copyWith((message) => updates(message as AnalysisIssue))
          as AnalysisIssue; // ignore: deprecated_member_use
  $pb.BuilderInfo get info_ => _i;
  @$core.pragma('dart2js:noInline')
  static AnalysisIssue create() => AnalysisIssue._();
  AnalysisIssue createEmptyInstance() => create();
  static $pb.PbList<AnalysisIssue> createRepeated() =>
      $pb.PbList<AnalysisIssue>();
  @$core.pragma('dart2js:noInline')
  static AnalysisIssue getDefault() => _defaultInstance ??=
      $pb.GeneratedMessage.$_defaultFor<AnalysisIssue>(create);
  static AnalysisIssue? _defaultInstance;

  @$pb.TagNumber(1)
  $core.String get kind => $_getSZ(0);
  @$pb.TagNumber(1)
  set kind($core.String v) {
    $_setString(0, v);
  }

  @$pb.TagNumber(1)
  $core.bool hasKind() => $_has(0);
  @$pb.TagNumber


.kpos--
	}

	if s.kpos > len(matchersNames) {
		s.kpos = 1
	}

	if s.kpos < 1 {
		s.kpos = len(matchersNames)
	}

	// Prepare the cycling functions, increments and counters.
	var (
		kpos = s.kpos
		done func(i int) bool
		move func(inc int) int
	)

	if next {
		done = func(i int) bool { return i <= len(matchersNames) }
		move = func(inc int) int { return kpos + 1 }
	} else {
		done = func(i int) bool { return i > 0 }
		move = func(inc int) int { return kpos - 1 }
	}

	// Try the different matchers until one succeeds, and select the first/last capturing group.
	for done(kpos) {
		matcherName = matchersNames[kpos-1]
		matcher := matchers[matcherName]

		groups = s.runMatcher(buf, matcher)

		if len(groups) <= 1 {
			kpos = move(kpos)
			continue
		}

		if !next && prevPos == 1 {
			s.kmpos = len(groups)

			return matcherName, true, bbpos + groups[len(groups)-2], bbpos + groups[len(groups)-1]
		}

		return matcherName, true, bbpos + groups[0], bbpos + groups[1]
	}

	return "", false, -1, -1
}

func (s *Selection) cycleSubgroup(groups []int, bbpos int, next bool) (bpos, epos int, cycled bool) {
	canCycleSubgroup := (next && s.kmpos < len(groups)-1) || (!next && s.kmpos > 1)

	if !canCycleSubgroup {
		return
	}

	if next {
		s.kmpos++
	} else {
		s.kmpos--
	}

	return bbpos + groups[s.kmpos-1], bbpos + groups[s.kmpos], true
}

func (s *Selection) runMatcher(buf []rune, matcher *regexp.Regexp) (groups []int) {
	if matcher == nil {
		return
	}

	matches := matcher.FindAllStringSubmatchIndex(string(buf), -1)
	if len(matches) == 0 {
		return
	}

	return matches[0]
}

// Tested URL / IP regexp matchers, not working as well as the current ones
//
// "URL": regexp.MustCompile(`([\w+]+\:\/\/)?([\w\d-]+\.)*[\w-]+[\.\:]\w+([\/\?\=\&\#.]?[\w-]+)*\/?`),

// "Domain|IP": regexp.MustCompile(ipv4_regex + `|` + ipv6_regex + `|` + domain_regex),
// (http(s?):\/\/)?(((www\.)?+[a-zA-Z0-9\.\-\_]+(\.[a-zA-Z]{2,3})+)|(\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b))(\/[a-zA-Z0-9\_\-\s\.\/\?\%\#\&\=]*)?
/


直观上来讲，这意味着对于所有 $i \in {0, \ldots, n - 1}$ “LM 头” 层会将 $\mathbf{\overline{y }}_i$ 与词汇表 $\mathbf{y}^1, \ldots, \mathbf{y}^{\text{vocab}}$ 中的所有词嵌入一一比较，输出的 logit 向量 $\mathbf{l}_{i+1}$ 即表示 $\mathbf{\overline{y }}_i$ 与每个词嵌入之间的相似度。Softmax 操作只是将相似度转换为概率分布。对于每个 $i \in {1, \ldots, n}$，以下等式成立:

$$ p_{\theta_{dec}}(\mathbf{y} | \mathbf{\overline{X}}_{1:n}, \mathbf{Y}_{0:i-1})$$
$$ = \text{Softmax}(f_{\theta_{\text{dec}}}(\mathbf{\overline{X}}_{1:n}, \mathbf{Y}_{0:i-1}))$$
$$ = \text{Softmax}(\mathbf{W}_{\text{emb}}^{\intercal} \mathbf{\overline{y}}_{i-1})$$
$$ = \text{Softmax}(\mathbf{l}_i) $$

总结一下，为了对目标向量序列 $\mathbf{Y}_{1: m}$ 的条件分布建模，先在目标向量 $\mathbf{Y}_{1: m-1}$ 前面加上特殊的 $\text{BOS}$ 向量 ( _即_ $\mathbf{y}_0$)，并将其与上下文相关的编码序列 $\mathbf{\overline{X}}_{1:n}$ 一起映射到 logit 向量序列 $\mathbf{L}_{1:m}$。然后，使用 softmax 操作将每个 logit 目标向量 $\mathbf{l}_i$ 转换为目标向量 $\mathbf{y}_i$ 的条件概率分布。最后，将所有目标向量的条件概率 $\mathbf{y}_1, \ldots, \mathbf{y}_m$ 相乘得到完整目标向量序列的条件概率:

$$ p_{\theta_{dec}}(\mathbf{Y}_{1:m} | \mathbf{\overline{X}}_{1:n}) = \prod_{i=1}^{m} p_{\theta_{dec}}(\mathbf{y}_i | \mathbf{Y}_{0: i-1}, \mathbf{\overline{X}}_{1:n}).$$

与基于 transformer 的编码器不同，在基于 transformer 的解码器中，其输出向量 $\mathbf{\overline{y}}_{i-1}$ 应该能很好地表征 _下一个_目标向量 (即 $\mathbf{y}_i$)，而不是输入向量本身 (即 $\mathbf{y}_{i-1}$)。此外，输出向量 $\mathbf{\overline{y}}_{i-1}$ 应基于编码器的整个输出序列 $\mathbf{\overline{X}}_{1:n}$。为了满足这些要求，每个解码器块都包含一个 **单向**自注意层，紧接着是一个 **交叉注意**层，最后是两个前馈层${}^2$。单向自注意层将其每个输入向量 $\mathbf{y'}_j$ 仅与其前驱输入向量 $\mathbf{y'}_i$ (其中 $i \le j$，且 $j \in {1, \ldots, n}$) 相关联，来模拟下一个目标向量的概率分布。交叉注意


 Neeru...$B$B...Gazz\'uz, are you there...?",
    ["O"] = "Take this eye to Neeru Fireblade.",
    ["T"] = "Burning Shadows",
  },
  [833] = {
    ["D"] = "가장 용감한 타우렌만이 우리의 신성한 묘지인 붉은 바위 언덕에 잠들 수 있네. 썬더 블러프를 건설하고 수호하는데 기여한 위대한 전사들과, 부족 및 지도자들의 더 큰 대의를 위해 자신의 생명을 바친 자들에게 주어지는 대단한 영광이지.$B$B하지만 우리의 신성한 땅에 악한 위험이 드리워지는 것 같네. 뾰족털 약탈자 무리가 이 묘지를 황폐하게 하고 있어. 한창때였다면 모르겠지만, 난 이미 놈들을 몰아내기에는 너무 늙어 버렸네.$B$B반드시 놈들을 처단해야 하네.",
    ["O"] = "Lorekeeper Raintotem wants you to kill 8 Bristleback Interlopers at Red Rocks.",
    ["T"] = "신성한 묘지",
  },
  [834] = {
    ["D"] = "I\'m Rezlak, one of Gazlowe\'s boys. Boss sent me to help the orcs here in Durotar. Things\'d been going good except for the caravans. Can\'t manage to keep them safe! Makes my job a little harder, you know?$b$bThe last shipment--they promised it\'d get through!--was snatched by the Dustwind harpies of...where was it...Razorwind Canyon?$b$bI gotta have those supplies or I\'ll never get anything done! Follow the big canyon to the south, you\'ll find the ravine cut right into the west and east sides of the walls.",
    ["O"] = "Retrieve 5 Sacks of Supplies and return them to Rezlak near Orgrimmar.",
    ["T"] = "사막의 바람",
  },
  [835] = {
    ["D"] = "Gazlowe told me once, \"Rezlak. There\'s one thing you need to know in life, and that\'s if you want something done well, do it yourself.\"$b$bI can\'t deal with losing all our caravans, so I\'m just going to take matters into my own hands. Drygulch Ravine lies through the eastern part of Razorwind Canyon. If we kill all the harpies there, the routes will be safe.$b$bOf course, there was one other thing that Gazlowe taught me, and that\'s \"You can get anything done for a price.\" So, going to help me out, $n?",
    ["O"] = "Kill 12 Dustwind Savages and 8 Dustwind Storm Witches for Rezlak near Drygulch Ravine.",
    ["T"] = "보급로 확보",
  },
  [836] = {
    ["D"] = "The gnome\'s voice crackles once again from the robot:$B$B\"I need to move OOX-09/HL to an open, safe place so it can begin a lengthy take-off procedure.  It has built-in cloaking, but I need time on my end to make it operational again.  Escort the robot from its current location to, let\'s say, the shoreline beyond Overlook Cliff!  That should be a perfect place, and long enough, to get things online!\"$B$B\"Escort it safely to the shore


encoding: [0x62,0x62,0x7d,0x18,0x44,0xb2,0x00,0x02,0x00,0x00]
          vplzcntd 512(%rdx){1to4}, %xmm30

// CHECK: vplzcntd -512(%rdx){1to4}, %xmm30
// CHECK:  encoding: [0x62,0x62,0x7d,0x18,0x44,0x72,0x80]
          vplzcntd -512(%rdx){1to4}, %xmm30

// CHECK: vplzcntd -516(%rdx){1to4}, %xmm30
// CHECK:  encoding: [0x62,0x62,0x7d,0x18,0x44,0xb2,0xfc,0xfd,0xff,0xff]
          vplzcntd -516(%rdx){1to4}, %xmm30

// CHECK: vplzcntd %ymm22, %ymm21
// CHECK:  encoding: [0x62,0xa2,0x7d,0x28,0x44,0xee]
          vplzcntd %ymm22, %ymm21

// CHECK: vplzcntd %ymm22, %ymm21 {%k3}
// CHECK:  encoding: [0x62,0xa2,0x7d,0x2b,0x44,0xee]
          vplzcntd %ymm22, %ymm21 {%k3}

// CHECK: vplzcntd %ymm22, %ymm21 {%k3} {z}
// CHECK:  encoding: [0x62,0xa2,0x7d,0xab,0x44,0xee]
          vplzcntd %ymm22, %ymm21 {%k3} {z}

// CHECK: vplzcntd (%rcx), %ymm21
// CHECK:  encoding: [0x62,0xe2,0x7d,0x28,0x44,0x29]
          vplzcntd (%rcx), %ymm21

// CHECK: vplzcntd 4660(%rax,%r14,8), %ymm21
// CHECK:  encoding: [0x62,0xa2,0x7d,0x28,0x44,0xac,0xf0,0x34,0x12,0x00,0x00]
          vplzcntd 4660(%rax,%r14,8), %ymm21

// CHECK: vplzcntd (%rcx){1to8}, %ymm21
// CHECK:  encoding: [0x62,0xe2,0x7d,0x38,0x44,0x29]
          vplzcntd (%rcx){1to8}, %ymm21

// CHECK: vplzcntd 4064(%rdx), %ymm21
// CHECK:  encoding: [0x62,0xe2,0x7d,0x28,0x44,0x6a,0x7f]
          vplzcntd 4064(%rdx), %ymm21

// CHECK: vplzcntd 4096(%rdx), %ymm21
// CHECK:  encoding: [0x62,0xe2,0x7d,0x28,0x44,0xaa,0x00,0x10,0x00,0x00]
          vplzcntd 4096(%rdx), %ymm21

// CHECK: vplzcntd -4096(%rdx), %ymm21
// CHECK:  encoding: [0x62,0xe2,0x7d,0x28,0x44,0x6a,0x80]
          vplzcntd -4096(%rdx), %ymm21

// CHECK: vplzcntd -4128(%rdx), %ymm21
// CHECK:  encoding: [0x62,0xe2,0x7d,0x28,0x44,0xaa,0xe0,0xef,0xff,0xff]
          vplzcntd -4128(%rdx), %ymm21

// CHECK: vplzc


LEFT;
    switch3[1]= Funbox::SWITCH_3_RIGHT;
    dip[0]= Funbox::SWITCH_DIP_1;
    dip[1]= Funbox::SWITCH_DIP_2;
    dip[2]= Funbox::SWITCH_DIP_3;
    dip[3]= Funbox::SWITCH_DIP_4;

    pswitch1[0]= false;
    pswitch1[1]= false;
    pswitch2[0]= false;
    pswitch2[1]= false;
    pswitch3[0]= false;
    pswitch3[1]= false;
    pdip[0]= false;
    pdip[1]= false;
    pdip[2]= false;
    pdip[3]= false;

    sample_index = 0;
    trigger = false;
    fade_length = 8000;

    for(int i = 0; i < MAX_SAMPLE; i++) { // hard coding sample length for now
        audioSample[i] = 0.;
    }

    /** Initializes the GranularPlayer module.
        \param sample pointer to the sample to be played
        \param size number of elements in the sample array
        \param sample_rate audio engine sample rate
    */
    granular.Init(audioSample, MAX_SAMPLE, samplerate);

    grainsize.Init(hw.knob[Funbox::KNOB_1], 0.0f, 1.0f, Parameter::LINEAR);
    speed.Init(hw.knob[Funbox::KNOB_2], 0.0f, 1.0f, Parameter::LINEAR);
    pitch.Init(hw.knob[Funbox::KNOB_3], 0.0f, 1.0f, Parameter::LINEAR);
    mix.Init(hw.knob[Funbox::KNOB_4], 0.0f, 1.0f, Parameter::LINEAR);
    level.Init(hw.knob[Funbox::KNOB_5], 0.01f, 1.0f, Parameter::LINEAR);
    samplesize.Init(hw.knob[Funbox::KNOB_6], 0.0f, 1.0f, Parameter::LINEAR);
    expression.Init(hw.expression, 0.0f, 1.0f, Parameter::LINEAR);

    // Init the LEDs and set activate bypass
    led1.Init(hw.seed.GetPin(Funbox::LED_1),false);
    led1.Update();
    bypass = true;

    led2.Init(hw.seed.GetPin(Funbox::LED_2),false);
    led2.Update();

    //hw.InitMidi();
    //hw.midi.StartReceive();

    hw.StartAdc();
    hw.StartAudio(AudioCallback);
    while(1)
    {
        //hw.midi.Listen();
        // Handle MIDI Events
        //while(hw.midi.HasEvents())
        //{
        //    HandleMidiMessage(hw.midi.PopEvent());
        //}

    }
}#include "daisy_petal.h"
#include "daisysp.h"
#include "funbox.h"

using namespace daisy;
using namespace daisysp;
using namespace funbox;  // This is important for mapping the correct controls to the Daisy Seed on Funbox PCB

// Declare a local daisy_petal for hardware access
DaisyPetal hw;
Parameter Cdepth, Mix, ReverbTime, Cfreq, Level, Rdamp;

bool            bypass;

bool            pswitch1[2], pswitch2[2], pswitch3[2], pdip[2];
int             switch1[2], switch2[2], switch3[2], dip[2];

float dryMix, wetMix;

Led led1, led2;

// Pitchshifter
PitchShifter  pitch;
PitchShifter  pitchRight;

// Chorus
Chorus chorus;

// Reverb
ReverbSc        verb;

void updateSwitch1() // Chorus settings, left=norm, center=spreadFreq, right=spreadDelay
{

}

void updateSwitch2()  // Routing, left=Chorus->Reverb, center=parallel, right=Reverb->Chorus
{

}

void updateSwitch3()  // Reverb, left=Normal, center=Shimmer(octave up), right=deep(octave down)
{
    if (pswitch3[0] == true) {  // left
        pitch.SetTransposition(0.0);
        pitchRight.SetTransposition(0.0);

    } else if (pswitch3[1] == true


P.test(control.value) ? null : {
      validateEmail: {
        valid: false
      }
    };
  }
  static date (control: FormControl){
    let DATE_REGEXP = /^((((0?[1-9]|[12]\d|3[01])[\.\-\/](0?[13578]|1[02])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|[12]\d|30)[\.\-\/](0?[13456789]|1[012])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|1\d|2[0-8])[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|(29[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00)))|(((0[1-9]|[12]\d|3[01])(0[13578]|1[02])((1[6-9]|[2-9]\d)?\d{2}))|((0[1-9]|[12]\d|30)(0[13456789]|1[012])((1[6-9]|[2-9]\d)?\d{2}))|((0[1-9]|1\d|2[0-8])02((1[6-9]|[2-9]\d)?\d{2}))|(2902((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00))))$/;
    var str = control.value;
    var currentDate = new Date(str.split('/').reverse().join('/'));
    var newDate = new Date();
    if(!str) return null;
    return (DATE_REGEXP.test(control.value) && (currentDate < newDate)) ? null : {
      validateDate: {
        valid: false
      }
    };
  }

  static nameStr (control: FormControl){
    let NAMESTR_REGEXP = /^[\\p{L} .'-]+$/;
    if(!control.value) return null;
    return NAMESTR_REGEXP.test(control.value) ? null : {
      validateNameStr: {
        valid: false
      }
    };
  }

  static cpf (control: FormControl){
    let CPF_REGEXP = /^([0-9]{2}[\.]?[0-9]{3}[\.]?[0-9]{3}[\/]?[0-9]{4}[-]?[0-9]{2})|([0-9]{3}[\.]?[0-9]{3}[\.]?[0-9]{3}[-]?[0-9]{2})$/;

    var error = false;
    var add = 0;
    var i;
    var rev;
    if(!control.value) {
      return null;
    }
    var cpf = control.value.replace(/[^\d]+/g,'');

    if(cpf == '') error = true;
    //removes the known invalid CPFs numbers
    if (cpf.length != 11 || cpf == "00000000000" || cpf == "11111111111" || cpf == "22222222222" || cpf == "33333333333" || cpf == "44444444444" || cpf == "55555555555" || cpf == "66666666666" || cpf == "77777777777" || cpf == "88888888888" || cpf == "99999999999") error = true;

    //valid first digit
    for (i=0; i < 9; i ++)
        add += parseInt(cpf.charAt(i)) * (10 - i);
        rev = 11 - (add % 11);
        if (rev == 10 || rev == 11)
            rev = 0;
        if (rev != parseInt(cpf.charAt(9)))
            error = true;
    //valid second digit
    add = 0;
    for (i = 0; i < 10; i ++)
        add += parseInt(cpf.charAt(i)) * (11 - i);
    rev = 11 - (add % 11);
    if (rev == 10 || rev == 11)
        rev = 0;
    if (rev != parseInt(cpf.charAt(10)))
        error = true;

    return (CPF_REGEXP.test(control.value) &&


Manage cookies

Further Information

         Jobs bei LVCC

         Newsletter

         Hintergrundbilder

About us

					           LVCC ist Ihr Partner für die Vermittlung von Ferienhausvermietungen in Florida. Egal ob gehobenes Feriendomizil oder voll ausgestattete Luxusvilla, wir haben die passenden Vermieter gelistet!

          Wenn Sie bereits wissen, dass Sie Ihren Urlaub im sonnigen Florida in einem Ferienhaus oder einer Luxusvilla verbringen möchten dann ist Cape Coral genau das Richtige.

          Diese Region hat ein sehr großes und breites Angebot an Vermiethäusern und ist perfekt auf Urlaub ausgerichtet. Egal ob Sie in Florida Boot fahren, am Strand heiraten, einkaufen oder einfach nur am privaten Pool relaxen wollen.

<!doctype html>

	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<link rel="profile" href="http://gmpg.org/xfn/11">
	<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
	<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
	<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">

	<title>Kaisers royaler Wochenrückblick – JUNGE FREIHEIT</title>
<link rel='dns-prefetch' href='//assets.jungefreiheit.de' />
<link rel='dns-prefetch' href='//s.w.org' />
<link rel="alternate" type="application/rss+xml" title="JUNGE FREIHEIT » Feed" href="https://jungefreiheit.de/feed/" />
<link rel="alternate" type="application/rss+xml" title="JUNGE FREIHEIT » Kommentar-Feed" href="https://jungefreiheit.de/comments/feed/" />
<link rel="alternate" type="application/rss+xml" title="JUNGE FREIHEIT » Kaisers royaler Wochenrückblick Kommentar-


und-color: @hover-bg-stcolor;
     border-color:@hover-border-color;
   }

}
@{e-js}.e-splitter .e-splitbar .e-icon.e-arrow-sans-left:before {
  & when (@skin= "material") {
      content:"\e630";
  }
}
@{e-js}.e-splitter .e-splitbar .e-icon.e-arrow-sans-right:before {
  & when (@skin= "material") {
     content:"\e62f";
  }
}
 @{e-js}.e-splitter .e-splitbar > .e-icon.v-backward:before, @{e-js}.e-splitter .e-splitbar > .e-icon.e-arrow-sans-left:before, @{e-js}.e-splitter .e-splitbar > .e-icon:before {
  & when (@skin= "material") {
     font-size:8px;
  }
}
@{e-js}.e-splitter .e-splitbar .e-h-arrow.e-arrow-sans-right {
  & when (@skin= "material") {
     left:-1.25px;
  }
  & when (@skin= "office-365") {
     margin-top: 35px;
     margin-left: 1px;
     font-size: 12px;
     width: 12px;
     color: @neutral-secondary-alt;
  }
}
@{e-js}.e-splitter .e-splitbar .e-h-arrow.e-arrow-sans-left {
    & when (@skin= "material") {
     left:-1px;
  }
  & when (@skin= "office-365") {
    left: 3px;
    width: 12px;
    font-size: 12px;
    margin-top: -20px;
    color: @neutral-secondary-alt;
  }
}
 @{e-js}.e-splitter .e-splitbar.e-h-bar {
   & when (@skin= "material") {
      width:8px;
   }
   & when (@skin= "office-365") {
      width: 12px;
      border: none;
      background-color: @neutral-light;
   }
 }
@{e-js}.e-splitter .e-splitbar .e-activebar {
   & when (@skin= "material") {
      display:block;
   }
   & when (@skin= "office-365") {
      display:block;
   }
   & when not (@skin= "material") and not (@skin= "office-365") {
      display:none;
   }
}
@{e-js}.e-splitter .e-splitbar .e-h-arrow.e-arrow-sans-left {
  & when (@skin= "material") {
     margin-top: -13px;
  }
}
/*&.e-splitter .e-splitbar .e-h-arrow.e-arrow-sans-right {
  & when (@skin= "material") {
     top:62%;
  }
}*/
@{e-js}.e-splitter .e-splitbar .e-icon.e-arrow-sans-up:before {
    & when (@skin= "material") {
     content:"\e67d";
  }
}
@{e-js}.e-splitter .e-splitbar .e-icon.e-arrow-sans-down:before {
    & when (@skin= "material") {
     content:"\e631";
  }
}
@{e-js}.e-splitter .e-splitbar.e-v-bar {
     & when (@skin= "material") {
       height:8px;
  }
  & when (@skin= "office-365") {
      height: 12px;
      border: none;
      background-color: @neutral-light;
  }
}
@{e-js}.e-splitter .e-splitbar .e-v-arrow.e-icon.e-arrow-sans-up:before {
    & when (@skin= "office-365") {
        content: "\e625";
    }
}
@{e-js}.e-splitter .e-splitbar .e-v-arrow.e-arrow-sans-up {
    & when (@


export default async (exchange, opts: Options) => {
    try {

        // properties that are not assigned a default value are required
        const {
          pair,
          until,
          period,
        } = opts;

        let {
          since,
          recordLimit, // TODO: change the default to a dynamic value
        } = opts; // destructure mutable properties seperately (maybe better way to do this?)

        const allowedTimeframes = Object.keys(exchange.timeframes);
        if (!allowedTimeframes.includes(period)) throw new Error('Period does not exist as an exchange timeframe');

        const periodUnitMS = {
            minute: 60000,
            hour: 3600000,
            day: 86400000
        };

        const msDiff = until - since;
        const {unit, ammount }= convertTimeFrame(period);

        let recrodsToFetch = (msDiff / (periodUnitMS[unit] * ammount));
        console.log(`Records to fetch ${recrodsToFetch}`);

        let allTrades = []

        // TODO: calculate how many periods total to fetch, and if the record
        // limit is greater than the remaining periods to fetch, set the record
        // limit to the remaining number of periods
        await sleep(500)
        while (since < until) {

            if (recordLimit > recrodsToFetch) recordLimit = recrodsToFetch;

            const rawOHLCV = await exchange.fetchOHLCV(pair, period, since, recordLimit);
            const ohlcv = reshape(rawOHLCV);
            const diff = (ohlcv[1].timestamp - ohlcv[0].timestamp);
            since = ohlcv[ohlcv.length - 1].timestamp + diff;

            console.log(`Fetch ${ohlcv.length} records`);

            recrodsToFetch -= ohlcv.length;
            allTrades = [...allTrades, ...ohlcv];
            // we should know what the rate limit of each exchange is.
            await sleep(2000); // must sleep to avoid get rate limited on SOME EXCHANGES (check exchange API docs).

        }
        console.log(allTrades[0]);
        console.log(`Fetched ${allTrades.length} trades`);
        console.log(`First trade - ${allTrades[0].timestamp}`)
        console.log(`Last trade - ${allTrades[allTrades.length - 1].timestamp}`)
    }
    catch (err) {
        console.log(err)
    }
}
import fetch from 'node-fetch';
import { v4 as uuid } from 'uuid';

import SSHClient from 'clients/ssh-client';
import IPLeakClient from 'clients/ipleak-client';
import { parseState, parseClients } from 'utils/nvram-parser';
import * as NVRAM_COMMANDS from 'constants/nvram-commands';
import { VPNClient, ErrorType, IPAddressInfo } from 'types';

const MAX_ACTIVE_CLIENTS = 3;
const POLL_INTERVAL_MS = 2000;
const POLL_COUNT = 10;

const waitPollInterval = (): Promise<void> =>
    new Promise(resolve => setTimeout(resolve, POLL_INTERVAL_MS));

class Api {
    private sshClient: SSHClient;
    private ipLeakClient: IPLeakClient;

    constructor() {
        this.sshClient = new SSHClient();
        this.ipLeakClient = new IPLeakClient(fetch, uuid);
    }

    /**
     * Get current VPN clients
     */
    public async getVpnClients(): Promise<VPNClient[]> {
        const clients = [];

        for (const id of [1, 2, 3, 4, 5]) {
            clients.push(await this.getVpnClient


 theta = acos(1 - 2 * float(i + float(j) / float(Nphi)) / float(Ntheta));
            float x = sin(theta) * cos(phi);
            float y = sin(theta) * sin(phi);
            float z = 0.5f + 0.5f * cos(theta);

            x *= 0.5f * panicle_width;
            y *= 0.5f * panicle_width;
            z *= panicle_height;

            float tilt = -deg2rad(seed_tilt) * sqrtf(1.f - z / panicle_height);

            context_ptr->rotatePrimitive(UUIDs_copy, tilt, "x");
            context_ptr->rotatePrimitive(UUIDs_copy, phi - 0.5f * M_PI, "z");

            context_ptr->translatePrimitive(UUIDs_copy, make_vec3(x, y, z));
            UUIDs.insert(UUIDs.end(), UUIDs_copy.begin(), UUIDs_copy.end());
        }
    }

    context_ptr->deletePrimitive(UUIDs_seed_ptype);

    std::vector<uint> UUIDs_sphere = context_ptr->addSphere(10, make_vec3(0, 0, 0.5 * panicle_height), 0.5f, seed_texture_file.c_str());
    context_ptr->scalePrimitiveAboutPoint(UUIDs_sphere, make_vec3(1.9 * panicle_width, 1.9 * panicle_width, 0.8 * panicle_height), make_vec3(0, 0, 0.5 * panicle_height));
    UUIDs.insert(UUIDs.end(), UUIDs_sphere.begin(), UUIDs_sphere.end());

    context_ptr->rotatePrimitive(UUIDs, 0.5f * M_PI, "y");
    context_ptr->translatePrimitive(UUIDs, make_vec3(-0.2, 0, 0));

    uint objID = context_ptr->addPolymeshObject(UUIDs);
    return objID;
}

void SorghumPhytomerCreationFunction(std::shared_ptr<Phytomer> phytomer, uint shoot_node_index, uint parent_shoot_node_index, uint shoot_max_nodes, float plant_age) {

    // set leaf scale based on position along the shoot
    float scale = fmin(1.f, 0.7 + 0.3 * float(shoot_node_index) / 5.f);
    phytomer->scaleLeafPrototypeScale(scale);

    // set internode length based on position along the shoot
    phytomer->scaleInternodeMaxLength(scale);
}

uint SoybeanFruitPrototype(helios::Context *context_ptr, uint subdivisions) {
    std::vector<uint> UUIDs = context_ptr->loadOBJ(helios::resolvePluginAsset("plantarchitecture", "assets/obj/SoybeanPod.obj").string().c_str(), make_vec3(0., 0, 0), 0, nullrotation, RGB::black, "ZUP", true);
    uint objID = context_ptr->addPolymeshObject(UUIDs);
    return objID;
}

uint SoybeanFlowerPrototype(helios::Context *context_ptr, uint subdivisions, bool flower_is_open) {
    std::vector<uint> UUIDs;
    if (flower_is_open) {
        UUIDs = context_ptr->loadOBJ(helios::resolvePluginAsset("plantarchitecture", "assets/obj/SoybeanFlower_open_white.obj").string().c_str(), make_vec3(0.0, 0, 0), 0, nullrotation, RGB::black, "ZUP", true);
    } else {
        UUIDs = context_ptr->loadOBJ(helios::resolvePluginAsset("plantarchitecture", "assets/obj/BeanFlower_closed_white.obj").string().c_str(), make_vec3(0.0, 0, 0), 0, nullrotation, RGB::black, "ZUP", true);
    }
    uint objID = context_ptr->addPolymeshO


okr);
            encodings.Add("iso-2022-kr", isokr);

            var isocn = GetEncoding("iso-2022-cn");
            encodings.Add("iso-2022-cn", isocn);
            encodings.Add("iso-2022-cn-ext", isocn)


 0xAE, 0xFD, 0xD8, 0x4A, 0x80, 0x67, 0x0C, 0x22, 0x40, 0x08, 0xE9, 0x00, 0x06,
	0x00, 0x22, 0x4E, 0xAE, 0xFE, 0x62, 0x43, 0xFA, 0x00, 0x18, 0x4E, 0xAE, 0xFF, 0xA0, 0x4A, 0x80,
	0x67, 0x0A, 0x20, 0x40, 0x20, 0x68, 0x00, 0x16, 0x70, 0x00, 0x4E, 0x75, 0x70, 0xFF, 0x4E, 0x75,
	0x64, 0x6F, 0x73, 0x2E, 0x6C, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x00, 0x65, 0x78, 0x70, 0x61,
	0x6E, 0x73, 0x69, 0x6F, 0x6E, 0x2E, 0x6C, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x00, 0x00, 0x00,
};

#define FS_OFS_DATABLOCKSIZE 488
#define FS_FLOPPY_BLOCKSIZE 512
#define FS_EXTENSION_BLOCKS 72
#define FS_FLOPPY_TOTALBLOCKS 1760
#define FS_FLOPPY_RESERVED 2

static void writeimageblock (struct zfile *dst, uae_u8 *sector, int offset)
{
  zfile_fseek (dst, offset, SEEK_SET);
  zfile_fwrite (sector, FS_FLOPPY_BLOCKSIZE, 1, dst);
}

static uae_u32 disk_checksum (uae_u8 *p, uae_u8 *c)
{
  uae_u32 cs = 0;
  int i;
  for (i = 0; i < FS_FLOPPY_BLOCKSIZE; i+= 4)
    cs += (p[i] << 24) | (p[i+1] << 16) | (p[i+2] << 8) | (p[i+3] << 0);
  cs = (~cs) + 1;
	if (c) {
    c[0] = cs >> 24; c[1] = cs >> 16; c[2] = cs >> 8; c[3] = cs >> 0;
  }
	return cs;
}

static int dirhash (const uae_char *name)
{
  uae_u32 hash;
  int i;

  hash = strlen (name);
  for(i = 0; i < strlen (name); i++) {
	  hash = hash * 13;
	  hash = hash + toupper (name[i]);
	  hash = hash & 0x7ff;
  }
  hash = hash % ((FS_FLOPPY_BLOCKSIZE / 4) - 56);
  return hash;
}

static void disk_date (uae_u8 *p)
{
	static int pdays, pmins, pticks;
	int days, mins, ticks;
	struct timeval tv;
	struct mytimeval mtv;

	gettimeofday (&tv, NULL);
	tv.tv_sec -= _timezone;
	mtv.tv_sec = tv.tv_sec;
	mtv.tv_usec = tv.tv_usec;
	timeval_to_amiga (&mtv, &days, &mins, &ticks, 50);
	if (days == pdays && mins == pmins && ticks == pticks) {
		ticks++;
		if (ticks >= 50 * 60) {
			ticks = 0;
			mins++;
			if (mins >= 24 * 60)
				days++;
    }
	}
	pdays = days;
	pmins = mins;
	pticks = ticks;
  p[0] = days >> 24; p[1] = days >> 16; p[2] = days >> 8; p[3] = days >> 0;
	p[4] = mins >> 24; p[5] = mins >> 16; p[6] = mins >> 8; p[7] = mins >> 0;
  p[8] = ticks >> 24; p[9] = ticks >> 16; p[10]


using Autodesk.Revit.Attributes;
using Autodesk.Revit.UI;
using System.Windows;
using MessageBox = System.Windows.MessageBox;

namespace RevitAddinManager.Model;

public static class StaticUtil
{
    public static void ShowWarning(string msg)
    {
        MessageBox.Show(msg, Resource.AppName, MessageBoxButton.OK, MessageBoxImage.Exclamation);
    }

    public static string CommandFullName = typeof(IExternalCommand).FullName;

    public static string AppFullName = typeof(IExternalApplication).FullName;

    public static


using System;
using HarmonyLib;
using UnityEngine;
using System.Collections.Generic;

namespace UnityPlugin_BepInEx_NHA2
{
    /// <summary>
    /// Change Keyboard KEYS
    /// </summary>
    class minput_manage
    {
        [HarmonyPatch(typeof(input_manage), "init_input_obj_list")]
        class init_input_obj_list
        {
            static bool Prefix(input_manage __instance)
            {
                DemulShooter_Plugin.MyLogger.LogMessage("minput_manage.init_input_obj_list()");

                input_manage my_base = __instance;
                my_base.add_input_obj(new input_obj_start_game(KeyCode.Alpha1, 1));
                my_base.add_input_obj(new input_obj_start_game(KeyCode.Alpha2, 2));
                my_base.add_input_obj(new input_obj_pass_movie(KeyCode.Space));
                my_base.add_input_obj(new input_obj_pass_movie(KeyCode.Alpha1));
                my_base.add_input_obj(new input_obj_pass_movie(KeyCode.Alpha2));
                my_base.add_input_obj(new input_obj_goto_houtai(KeyCode.Alpha0));
                my_base.add_input_obj(new input_obj_insert_coin(KeyCode.Alpha5, 1));
                my_base.add_input_obj


Scale) * vector), position.w, coneOffset, normal);\n  vec4 conePosition = model * vec4(position.xyz, 1.0) + vec4(XYZ, 0.0);\n\n  //Lighting geometry parameters\n  vec4 cameraCoordinate = view * conePosition;\n  cameraCoordinate.xyz /= cameraCoordinate.w;\n  f_lightDirection = lightPosition - cameraCoordinate.xyz;\n  f_eyeDirection   = eyePosition - cameraCoordinate.xyz;\n  f_normal = normalize((vec4(normal, 0.0) * inverseModel).xyz);\n\n  // vec4 m_position  = model * vec4(conePosition, 1.0);\n  vec4 t_position  = view * conePosition;\n  gl_Position      = projection * t_position;\n\n  f_color          = color;\n  f_data           = conePosition.xyz;\n  f_position       = position.xyz;\n  f_uv             = uv;\n}\n"]),a=n(["#extension GL_OES_standard_derivatives : enable\n\nprecision highp float;\n#define GLSLIFY 1\n\nfloat beckmannDistribution(float x, float roughness) {\n  float NdotH = max(x, 0.0001);\n  float cos2Alpha = NdotH * NdotH;\n  float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha;\n  float roughness2 = roughness * roughness;\n  float denom = 3.141592653589793 * roughness2 * cos2Alpha * cos2Alpha;\n  return exp(tan2Alpha / roughness2) / denom;\n}\n\nfloat cookTorranceSpecular(\n  vec3 lightDirection,\n  vec3 viewDirection,\n  vec3 surfaceNormal,\n  float roughness,\n  float fresnel) {\n\n  float VdotN = max(dot(viewDirection, surfaceNormal), 0.0);\n  float LdotN = max(dot(lightDirection, surfaceNormal), 0.0);\n\n  //Half angle vector\n  vec3 H = normalize(lightDirection + viewDirection);\n\n  //Geometric term\n  float NdotH = max(dot(surfaceNormal, H), 0.0);\n  float VdotH = max(dot(viewDirection, H), 0.000001);\n  float LdotH = max(dot(lightDirection, H), 0.000001);\n  float G1 = (2.0 * NdotH * VdotN) / VdotH;\n  float G2 = (2.0 * NdotH * LdotN) / LdotH;\n  float G = min(1.0, min(G1, G2));\n  \n  //Distribution term\n  float D = beckmannDistribution(NdotH, roughness);\n\n  //Fresnel term\n  float F = pow(1.0 - VdotN, fresnel);\n\n  //Multiply terms and done\n  return  G * F * D / max(3.14159265 * VdotN, 0.000001);\n}\n\nbool outOfRange(float a, float b, float p) {\n  return ((p > max(a, b)) || \n          (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n  return (outOfRange(a.x, b.x, p.x) ||\n          outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n  return (outOfRange(a.x, b.x, p.x) ||\n          outOfRange(a.y, b.y, p.y) ||\n          outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n  return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 clipBounds[2];\nuniform float roughness, fresnel, kambient, kdiffuse, kspecular, opacity;\nuniform sampler2D texture;\n\nvarying vec3 f_normal, f_lightDirection,


 part of the iText (R) project.
    Copyright (c) 1998-2022 iText Group NV
 * Authors: Bruno Lowagie, Paulo Soares, et al.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License version 3
 * as published by the Free Software Foundation with the addition of the
 * following permission added to Section 15 as permitted in Section 7(a):
 * FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY
 * ITEXT GROUP. ITEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT
 * OF THIRD PARTY RIGHTS
 *
 * This program is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
 * or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Affero General Public License for more details.
 * You should have received a copy of the GNU Affero General Public License
 * along with this program; if not, see http://www.gnu.org/licenses or write to
 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
 * Boston, MA, 02110-1301 USA, or download the license from the following URL:
 * http://itextpdf.com/terms-of-use/
 *
 * The interactive user interfaces in modified source and object code versions
 * of this program must display Appropriate Legal Notices, as required under
 * Section 5 of the GNU Affero General Public License.
 *
 * In accordance with Section 7(b) of the GNU Affero General Public License,
 * a covered work must retain the producer line in every PDF that is created
 * or manipulated using iText.
 *
 * You can be released from the requirements of the license by purchasing
 * a commercial license. Buying such a license is mandatory as soon as you
 * develop commercial activities involving the iText software without
 * disclosing the source code of your own applications.
 * These activities include: offering paid services to customers as an ASP,
 * serving PDFs on the fly in a web application, shipping iText with a closed
 * source product.
 *
 * For more information, please contact iText Software Corp. at this
 * address: sales@itextpdf.com
 */
package com.itextpdf.text.pdf;

import java.io.IOException;

public class PdfMediaClipData extends PdfDictionary {

    PdfMediaClipData(String file, PdfFileSpecification fs, String mimeType) throws IOException {
        put(PdfName.TYPE,new PdfName("MediaClip"));
        put(PdfName.S, new PdfName("MCD"));
        put(PdfName.N, new PdfString("Media clip for "+file));
        put(new PdfName("CT"), new PdfString(mimeType));
        PdfDictionary dic = new PdfDictionary();
        dic.put(new PdfName("TF"), new PdfString("TEMPACCESS"));
        put(new PdfName("P"), dic);
        put(PdfName.D, fs.getReference());
    }
}
/*
 *
 * This file is part of the iText (R) project.
    Copyright (c) 1998-2022 iText Group NV
 * Authors: Bruno Lowagie, Paulo Soares, et al.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License version 3
 * as published by the Free Software Foundation with the addition of the
 * following permission added to Section 15 as permitted in Section 7(a):
 * FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY
 * ITEXT GROUP. ITEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT
 * OF THIRD PARTY RIGHTS
 *
 * This program is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even


; // Place content on top of elevation and ripple
    height: 100%;
    font: inherit;
    color: var(--_label-text-color);
    padding: 0;
    gap: inherit;
    // Override the user-agent text-transform: none of <button> and <a>
    text-transform: inherit;

    &::-moz-focus-inner {
      padding: 0;
      border: 0;
    }
  }

  :host(:hover) .button {
    color: var(--_hover-label-text-color);
  }

  :host(:focus-within) .button {
    color: var(--_focus-label-text-color);
  }

  :host(:active) .button {
    color: var(--_pressed-label-text-color);
  }

  .background {
    // Background color. Separate node for disabled opacity styles.
    background: var(--_container-color);
    border-radius: inherit;
    inset: 0;
    position: absolute;
  }

  .label {
    overflow: hidden;
  }

  // Inherit text-overflow down through label and slotted content so that it
  // can be customized on the host.
  :is(.button, .label, .label slot),
  .label ::slotted(*) {
    text-overflow: inherit;
  }

  :host(:is([disabled], [soft-disabled])) .label {
    color: var(--_disabled-label-text-color);
    opacity: var(--_disabled-label-text-opacity);
  }

  :host(:is([disabled], [soft-disabled])) .background {
    background: var(--_disabled-container-color);
    opacity: var(--_disabled-container-opacity);
  }

  @media (forced-colors: active) {
    .background {
      // Use CanvasText to increase visibility of buttons when the background
      // is not rendered. Buttons that use outlines by default should change The
      // outline color to GrayText when disabled.
      border: 1px solid CanvasText;
    }

    :host(:is([disabled], [soft-disabled])) {
      --_disabled-icon-color: GrayText;
      --_disabled-icon-opacity: 1;
      --_disabled-container-opacity: 1;
      --_disabled-label-text-color: GrayText;
      --_disabled-label-text-opacity: 1;
    }
  }

  :host([has-icon]:not([trailing-icon])) {
    padding-inline-start: var(--_with-leading-icon-leading-space);
    padding-inline-end: var(--_with-leading-icon-trailing-space);
  }

  :host([has-icon][trailing-icon]) {
    padding-inline-start: var(--_with-trailing-icon-leading-space);
    padding-inline-end: var(--_with-trailing-icon-trailing-space);
  }
}
/**
 * Copyright 2020 Google LLC
 *
 * 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.
 */

@import "@material/layout-grid/dist/mdc.layout-grid.css";
@import "@material/tab-bar/dist/mdc.tab-bar.css";
@import "@material/tab-scroller/dist/mdc.tab-scroller.css";
@import "./components/material.css";
@import "./material/drawer.css";
@import "./material/top-app-ba


45510

no invalid

invalid:true

invalid:false

invalid:grammar

invalid:spelling

invalid:true

  <title>nsIAccessible::getAccessibleRelated() tests</title>
  <link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css" />


mp.weixin.qq.com/s?__biz=MzI4NjAxNjY4Nw==&mid=2650222327&idx=1&sn=f4ed2f2be81f0d8c18fc40d47b6743e0&chksm=f3e0db37c497522173b927c08b4292c54595817c92ca030c1b93d2fa8f5968a774a345c5ab73&scene=27#wechat_redirect)

文章简介:这里记录每周值得分享的科技内容，周五发布。

文章作者:阮一峰

[2019-11-21_Python 异步编程入门](http://mp.weixin.qq.com/s?__biz=MzI4NjAxNjY4Nw==&mid=2650222321&idx=1&sn=80e637bebd14287196a38dbfc0b169f2&chksm=f3e0db31c49752271c96349c57f0667c21be59a5529c82ab5a6e66caa220bfdd772e959eccb0&scene=27#wechat_redirect)

文章简介:本文是写给 JavaScript 程序员的 Python 教程。Python 的异步编程，其他人可能觉得很难，但是 JavaScript 程序员应该特别容易理解。

文章作者:阮一峰

[2019-11-19_CSS 定位详解](http://mp.weixin.qq.com/s?__biz=MzI4NjAxNjY4Nw==&mid=2650222317&idx=1&sn=e6df3d14b90b1f093a347f17fe7f8608&chksm=f3e0db2dc497523b79cafbdf2d4a62398d4073f572cf907f836eec768416889a2cb5377ebf2e&scene=27#wechat_redirect)

文章简介:CSS 有两个最重要的基本属性，前端开发必须掌握：display 和 position。

文章作者:阮一峰

[2019-11-17_容错，高可用和灾备](http://mp.weixin.qq.com/s?__biz=MzI4NjAxNjY4Nw==&mid=2650222313&idx=1&sn=8582c241312c3b67bc6575dfab774182&chksm=f3e0db29c497523f723de2f293c23010cbfb8232c81fb13b5fd866aaedb9e30cfbab79b30026&scene=27#wechat_redirect)

文章简介:标题里面的三个术语，很容易混淆，专业人员有时也会用错。本文就用图片解释它们有何区别。

文章作者:阮一峰

[2019-11-15_科技爱好者周刊：第 82 期](http://mp.weixin.qq.com/s?__biz=MzI4NjAxNjY4Nw==&mid=2650222309&idx=1&sn=1157f5b3646a9e6a18e14acb43fde


d, 0x3f, 0x47, 0xc8,
	0x9d, 0xef, 0x10, 0xde, 0xd1, 0x54, 0x1e, 0xdf, 0x5d, 0x95, 0xc7, 0x72, 0xdb, 0x54, 0xab, 0xb9,
	0x84, 0x38, 0xa9, 0x19, 0xe1, 0xef, 0x50, 0x9b, 0x0b, 0x9a, 0x08, 0xb5, 0x0d, 0xd6, 0x5f, 0x7b,
	0x1b, 0xec, 0x66, 0xa9, 0xd1, 0xee, 0xcf, 0x0d, 0x48, 0xe5, 0x85, 0x87, 0x68, 0xaf, 0x0a, 0xe6,
	0xff, 0xdc, 0x6c, 0x6a, 0x9e, 0x67, 0x0b, 0x2e, 0xe4, 0x8e, 0xab, 0xdc, 0x2f, 0x79, 0x72, 0x55,
	0xd0, 0x9a, 0xd5, 0x7e, 0xc9, 0x63, 0x4e, 0x8a, 0x5b, 0x6c, 0xa1, 0x36, 0x9f, 0xba, 0x2e, 0x80,
	0x07, 0x9e, 0x8a, 0x4b, 0xd3, 0x7e, 0xa3, 0xa0, 0xb6, 0xfb, 0xf3, 0x0b, 0x52, 0x71, 0xa4, 0xf1,
	0x90, 0xfa, 0x01, 0x78, 0x2a, 0x26, 0x35, 0xe3, 0x73, 0x85, 0x92, 0xe2, 0xd6, 0x3e, 0xba, 0xb9,
	0xd5, 0xd7, 0x5e, 0xdc, 0xea, 0x6b, 0x2f, 0x6f, 0xf5, 0xb5, 0x5f, 0x32, 0x5d, 0xbb, 0xc9, 0x74,
	0xed, 0x45, 0xa6, 0x6b, 0x2f, 0x33, 0x5d, 0xfb, 0x2b, 0xd3, 0xb5, 0x5f, 0xff, 0xd6, 0xd7, 0xbe,
	0x5f, 0x9f, 0x1d, 0xff, 0x1b, 0x00, 0x00, 0xff, 0xff, 0xc8, 0x73, 0xe7, 0x7a, 0xb8, 0x08, 0x00,
	0x00,
}

func (m *Job) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *Job) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *Job) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	{
		size, err := m.Status.MarshalToSizedBuffer(dAtA[:i])
		if