nc setStatefulSetGVK(statefulSet *appsv1.StatefulSet) {
	if statefulSet == nil {
		return
	}
	statefulSet.SetGroupVersionKind(StatefulSetGVK)
}
/*
Copyright 2021 The KodeRover Authors.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

package getter

import (
	appsv1 "k8s.io/api/apps/v1"
	"k8s.io/apimachinery/pkg/labels"
	"k8s.io/apimachinery/pkg/runtime/schema"
	"sigs.k8s.io/controller-runtime/pkg/client"
)

var ReplicaSetGVK = schema.GroupVersionKind{
	Group:   "apps",
	Kind:    "ReplicaSet",
	Version: "v1",
}

func ListReplicaSets(ns string, selector labels.Selector, cl client.Client) ([]*appsv1.ReplicaSet, error) {
	ss := &appsv1.ReplicaSetList{}
	err := ListResourceInCache(ns, selector, nil, ss, cl)
	if err != nil {
		return nil, err
	}

	var res []*appsv1.ReplicaSet
	for i := range ss.Items {
		setReplicaSetGVK(&ss.Items[i])
		res = append(res, &ss.Items[i])
	}
	return res, err
}

func setReplicaSetGVK(replicaSet *appsv1.ReplicaSet) {
	if replicaSet == nil {
		return
	}
	gvk := schema.GroupVersionKind{
		Group:   "apps",
		Kind:    "ReplicaSet",
		Version: "v1",
	}
	replicaSet.SetGroupVersionKind(gvk)
}
/*
Copyright 2021 The KodeRover Authors.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

package getter

import (
	corev1 "k8s.io/api/core/v1"
	"k8s.io/apimachinery/pkg/runtime/schema"
	"sigs.k8s.io/controller-runtime/pkg/client"
)

func ListNodes(cl client.Client) ([]*corev1.Node, error) {
	nodes := &corev1.NodeList{}
	err := ListResourceInCache("", nil, nil, nodes, cl)
	if err != nil {
		return nil, err
	}

	var res []*corev1.Node
	for i := range nodes.Items {
		setNodeGVK(&nodes.Items[i])
		res = append(res, &nodes.Items[i])
	}
	return res, err
}

func setNodeGVK(node *corev1.Node) {
	if node == nil {
		return
	}
	gvk := schema.GroupVersionKind{
		Group:   "",
		Kind:    "Node",
		Version: "v1",
	}
	node.SetGroupVersionKind(gvk)
}
/*
Copyright 2021 The KodeRover Authors.


');
  }

  Future<void> test_functionType_FunctionCall() async {
    await resolveTestCode('''
void f1(int i) {
  f2(f3);
}

void f2(int Function() f) {}
''');
    await assertHasFix('''
void f1(int i) {
  f2(f3);
}

void f2(int Function() f) {}

int f3() {
}
''');
  }

  Future<void> test_functionType_importType() async {
    newFile('$testPackageLibPath/a.dart', r'''
class A {}
''');
    newFile('$testPackageLibPath/b.dart', r'''
import 'package:test/a.dart';

useFunction(int g(A a)) {}
''');
    await resolveTestCode('''
import 'package:test/b.dart';

void f() {
  useFunction(test);
}
''');
    await assertHasFix('''
import 'package:test/a.dart';
import 'package:test/b.dart';

void f() {
  useFunction(test);
}

int test(A a) {
}
''');
  }

  Future<void> test_functionType_inside_conditional_operator() async {
    await resolveTestCode('''
void f1(int i) {
  f2(i == 0 ? f3 : (v) => v);
}

void f2(int Function(int) f) {}
''');
    await assertHasFix('''
void f1(int i) {
  f2(i == 0 ? f3 : (v) => v);
}

void f2(int Function(int) f) {}

int f3(int p1) {
}
''');
  }

  Future<void> test_functionType_inside_conditional_operator_else() async {
    await resolveTestCode('''
void f1(int i) {
  f2(i == 0 ? (v) => v : f3);
}

void f2(int Function(int) f) {}
''');
    await assertHasFix('''
void f1(int i) {
  f2(i == 0 ? (v) => v : f3);
}

void f2(int Function(int) f) {}

int f3(int p1) {
}
''');
  }

  Future<void> test_functionType_inside_record_functionType() async {
    await resolveTestCode('''
void f1(int i) {
  f2((0, f3));
}

void f2((int, int Function(int)) f) {}
''');
    await assertHasFix('''
void f1(int i) {
  f2((0, f3));
}

void f2((int, int Function(int)) f) {}

int f3(int p1) {
}
''');
  }

  Future<void> test_functionType_inside_record_functionType_named() async {
    await resolveTestCode('''
void f1(int i) {
  f2((f: f3));
}

void f2(({int Function(int) f}) f) {}
''');
    await assertHasFix('''
void f1(int i) {
  f2((f: f3));
}

void f2(({int Function(int) f}) f) {}

int f3(int p1) {
}
''');
  }

  Future<void> test_record_tearoff() async {
    await resolveTestCode('''
(bool Function(),) f = (g,);
''');
    await assertHasFix('''
(bool Function(),) f = (g,);

bool g() {
}
''');
  }

  Future<void> test_returnType_typeAlias_function() async {
    await resolveTestCode('''
typedef A<T> = void Function(T a);

void f(A<int> Function() a) {}

void g() {
  f(test);
}
''');
    await assertHasFix('''
typedef A<T> = void Function(T a);

void f(A<int> Function() a) {}

void g() {
  f(test);
}

A<int> test() {
}
''')


/**
		* Returns the attribute certificate checker. The returned set contains
		* {@link PKIXAttrCertChecker}s and is immutable.
		*
		* @return Returns the attribute certificate checker. Is never
		*         null.
		*/
		public virtual ISet<PkixAttrCertChecker> GetAttrCertCheckers()
		{
			return new HashSet<PkixAttrCertChecker>(attrCertCheckers);
		}

		/**
		* Sets the attribute certificate checkers.
		*

		* All elements in the ISet must a {@link PKIXAttrCertChecker}.
		*

		*

		* The given set is cloned.
		*

		*
		* @param at


toEqual(2);
  });

  it('Detach A, set value 3, detach B', () => {
    observer.detach(subscriberA);
    observer.setValue(3);
    observer.detach(subscriberB);

    expect(actualA).toEqual(2);
    expect(actualB).toEqual(3);
  });

  it('Set value 4, A and B already detached', () => {
    observer.setValue(4);

    expect(actualA).toEqual(2);
    expect(actualB).toEqual(3);
  });
});
import { Component, OnInit, Input } from "@angular/core";
import { FormGroup, FormBuilder } from "@angular/forms";

@Component({
  selector: "app-reactive-date",
  templateUrl: "./reactive-date.component.html",
  styleUrls: ["./reactive-date.component.scss"]
})
export class ReactiveDateComponent implements OnInit {
  @Input() formReactDate: FormGroup;
  inputWidth;
  constructor() {}

  ngOnInit() {}

  // Enter a valid date
  setFomatDate(e): void {
    var input = e.target.value;
    const matchDigit = /\D\/$/.test(input);
    if (matchDigit) {
      input = input.substr(0, input.length - 3);
    }
    var values = this.removeSpace(input); // remove space previous day, month, year
    this.checkDayandMonthHasValid(values); // check day and month that the users entered is valid.
    e.target.value = this.addSeparator(values); // Add separator to valid date format, e.g: 03/02/1997
  }

  // Show date when users click elsewhere
  showDateValid(e): void {
    var input = e.target.value;
    var values = this.removeSpace(input); // remove space previous day, month, year
    var output = "";
    if (values.length === 3) {
      var year =
        values[2].length !== 4
          ? parseInt(values[2]) + 2000
          : parseInt(values[2]);
      var month = parseInt(values[0]) - 1;
      var day = parseInt(values[1]);
      output = this.fomatDateValid(year, month, day); // fomat date valid when users click elsewhere
    }
    e.target.value = output;
  }

  // Set 'input' cell width based on value length that the user entered.
  setWidthInput(e): void {
    var value = e.target.value;
    if (value.length === 1) {
      this.inputWidth = 24;
    } else if (value.length === 2) {
      this.inputWidth = 60;
    } else if (value.length === 5) {
      this.inputWidth = 67;
    } else if (value.length === 6) {
      this.inputWidth = 90;
    } else if (value.length === 7) {
      this.inputWidth = 120;
    } else if (value.length === 10) {
      this.inputWidth = 119;
    } else if (value.length === 11) {
      this.inputWidth = 146;
    } else if (value.length === 12) {
      this.inputWidth = 167;
    } else if (value.length === 13) {
      this.inputWidth = 187;
    } else if (value.length === 14) {
      this.inputWidth = 210;
    }
  }

  // ** Functions for 'setFomatDate' **
  private checkDayandMonthHasValid(values) {
    if (values[0]) {
      values[0] = this.checkValue(values[0], 12);
    }
    if (values[1]) {
      values[1] = this.checkValue(values[1], 31);
    }
  }

  private addSeparator(values) {
    var output = values.map((v, i) => {
      return v.length === 2 && i < 2 ? v + " / " : v;
    });

    var op = output.join("").substr(0, 14);
    return op;
  }


 "Barand",
		"state_id": "1645"
	},
	{
		"id": "21111",
		"name": "Berettyoujfalu",
		"state_id": "1645"
	},
	{
		"id": "21112",
		"name": "Biharkeresztes",
		"state_id": "1645"
	},
	{
		"id": "21113",
		"name": "Biharnagybajom",
		"state_id": "1645"
	},
	{
		"id": "21114",
		"name": "Debrecen",
		"state_id": "1645"
	},
	{
		"id": "21115",
		"name": "Derecske",
		"state_id": "1645"
	},
	{
		"id": "21116",
		"name": "Egyek",
		"state_id": "1645"
	},
	{
		"id": "21117",
		"name": "Foldes",
		"state_id": "1645"
	},
	{
		"id": "21118",
		"name": "Hajduboszormeny",
		"state_id": "1645"
	},
	{
		"id": "21119",
		"name": "Hajdudorog",
		"state_id": "1645"
	},
	{
		"id": "21120",
		"name": "Hajduhadhaz",
		"state_id": "1645"
	},
	{
		"id": "21121",
		"name": "Hajdusamson",
		"state_id": "1645"
	},
	{
		"id": "21122",
		"name": "Hajduszoboszlo",
		"state_id": "1645"
	},
	{
		"id": "21123",
		"name": "Hajduszovat",
		"state_id": "1645"
	},
	{
		"id": "21124",
		"name": "Hortobagy",
		"state_id": "1645"
	},
	{
		"id": "21125",
		"name": "Hosszupalyi",
		"state_id": "1645"
	},
	{
		"id": "21126",
		"name": "Kaba",
		"state_id": "1645"
	},
	{
		"id": "21127",
		"name": "Komadi",
		"state_id": "1645"
	},
	{
		"id": "21128",
		"name": "Mikepercs",
		"state_id": "1645"
	},
	{
		"id": "21129",
		"name": "Monostorpalyi",
		"state_id": "1645"
	},
	{
		"id": "21130",
		"name": "Nadudvar",
		"state_id": "1645"
	},
	{
		"id": "21131",
		"name": "Nagyleta",
		"state_id": "1645"
	},
	{
		"id": "21132",
		"name": "Nyirabrany",
		"state_id": "1645"
	},
	{
		"id": "21133",
		"name": "Nyiracsad",
		"state_id": "1645"
	},
	{
		"id": "21134",
		"name": "Nyiradony",
		"state_id": "1645"
	},
	{
		"id": "21135",
		"name": "Polgar",
		"state_id": "1645"
	},
	{
		"id": "21136",
		"name": "Puspokladany",
		"state_id": "1645"
	},


ntent-body .mce-reset{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:black;font-family:Arial;font-size:11px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;line-height:normal;font-weight:normal;text-align:left;-webkit-tap-highlight-color:transparent;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr;max-width:none}.mce-object{border:1px dotted #3A3A3A;background:#D5D5D5 url(img/object.gif) no-repeat center}.mce-preview-object{display:inline-block;position:relative;margin:0 2px 0 2px;line-height:0;border:1px solid gray}.mce-preview-object[data-mce-selected="2"] .mce-shim{display:none}.mce-preview-object .mce-shim{position:absolute;top:0;left:0;width:100%;height:100%;background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)}figure.align-left{float:left}figure.align-right{float:right}figure.image.align-center{display:table;margin-left:auto;margin-right:auto}figure.image{display:inline-block;border:1px solid gray;margin:0 2px 0 1px;background:#f5f2f0}figure.image img{margin:8px 8px 0 8px}figure.image figcaption{margin:6px 8px 6px 8px;text-align:center}.mce-toc{border:1px solid gray}.mce-toc h2{margin:4px}.mce-toc li{list-style-type:none}.mce-pagebreak{cursor:default;display:block;border:0;width:100%;height:5px;border:1px dashed #666;margin-top:15px;page-break-before:always}@media print{.mce-pagebreak{border:0}}.mce-item-anchor{cursor:default;display:inline-block;-webkit-user-select:all;-webkit-user-modify:read-only;-moz-user-select:all;-moz-user-modify:read-only;user-select:all;user-modify:read-only;width:9px !important;height:9px !important;border:1px dotted #3A3A3A;background:#D5D5D5 url(img/anchor.gif) no-repeat center}.mce-nbsp,.mce-shy{background:#AAA}.mce-shy::after{content:'-'}.mce-match-marker{background:#AAA;color:#fff}.mce-match-marker-selected{background:#3399ff;color:#fff}.mce-spellchecker-word{border-bottom:2px solid #F00;cursor:default}.mce-spellchecker-grammar{border-bottom:2px solid #008000;cursor:default}.mce-item-table,.mce-item-table td,.mce-item-table th,.mce-item-table caption{border:1px dashed #BBB}td[data-mce-selected],th[data-mce-selected]{background-color:#3399ff !important}.mce-edit-focus{outline:1px dotted #333}.mce-resize-bar-dragging{background-color:blue;opacity:.25;filter:alpha(opacity=25);zoom:1}.mce-content-body p,.mce-content-body div,.mce-content-body h1,.mce-content-body h2,.mce-content-body h3,.mce-content-body h4,.mce-content-body h5,.mce-content-body h6{line-height:1.2em}.mce-content-body *[contentEditable=false] *[contentEditable=


nextauth+%28ID%3A+151633%29)
**标语**：与任何API集成
**介绍**：API管理框架的新版本发布。亮点包括：
• 全新开发工具 🪄
• SDK生成 🔌
• 强大命令行工具 ✅
• 全新文档 📚
• 插件系统 🌐
• 新增Socket支持 🚀

HyperFetch极大简化了应用的维护工作。不要落后，选择HyperFetch。
**产品网站**: [立即访问](https://www.producthunt.com/r/DJWRVR5M2PSIS7?utm_campaign=producthunt-api&utm_medium=api-v2&utm_source=Application%3A+nextauth+%28ID%3A+151633%29)
**Product Hunt**: [查看 Product Hunt 页面](https://www.producthunt.com/products/hyper-fetch?utm_campaign=producthunt-api&utm_medium=api-v2&utm_source=Application%3A+nextauth+%28ID%3A+151633%29)

![HyperFetch 7.0.0]()

**关键词**：-, 产品名称：HyperFetch, 7.0.0, -, 标语：支持任意API集成, -, 简述：全新API管理框架升级，主要功能包括：全新开发工具🪄、SDK生成🔌、强大命令行工具✅、更新文档📚、插件系统🌐、新型网络套接字🚀。极大简化应用维护，保持竞争力，选择HyperFetch。, -, 关键词
**票数**: 🔺92
**是否精选**：是
**发布时间**：2025年07月21日 PM03:01 (北京时间)

---

## [20. Quip](https://www.producthunt.com/products/unite-for-macos?utm_campaign=producthunt-api&utm_medium=api-v2&utm_source=Application%3A+nextauth+%28ID%3A+151633%29)
**标语**：由人工智能驱动的剪贴板历史记录、文本扩展等多项功能
**介绍**：Quip 是一款重新设计的剪贴板管理工具，旨在提升速度、保障隐私和增强生产力。你可以搜索、筛选并同步所有复制的内容。使用超级快捷键（Super Shortcuts）可以在任何地方粘贴。借助设备端的人工智能，轻松整理你的剪贴板。兼容Mac、iPhone和iPad，方便跨设备使用。
**产品网站**: [立即访问](https://www.producthunt.com/r/ETJKPD5GHBUDP2?utm_campaign=producthunt-api&utm_medium=api-v2&utm_source=Application%3A+nextauth+%28ID%3A+151633%29)
**Product Hunt**: [查看 Product Hunt 页面](https://www.producthunt.com/products/unite-for-macos?utm_ca


java
        )

        FilterType.BLEND_LIGHTEN -> createBlendFilter(
            GPUImageLightenBlendFilter::class.java
        )

        FilterType.BLEND_ADD -> createBlendFilter(
            GPUImageAddBlendFilter::class.java
        )

        FilterType.BLEND_DIVIDE -> createBlendFilter(
            GPUImageDivideBlendFilter::class.java
        )

        FilterType.BLEND_MULTIPLY -> createBlendFilter(
            GPUImageMultiplyBlendFilter::class.java
        )

        FilterType.BLEND_OVERLAY -> createBlendFilter(
            GPUImageOverlayBlendFilter::class.java
        )

        FilterType.BLEND_SCREEN -> createBlendFilter(
            GPUImageScreenBlendFilter::class.java
        )

        FilterType.BLEND_ALPHA -> createBlendFilter(
            GPUImageAlphaBlendFilter::class.java
        )

        FilterType.BLEND_COLOR -> createBlendFilter(
            GPUImageColorBlendFilter::class.java
        )

        FilterType.BLEND_HUE -> createBlendFilter(
            GPUImageHueBlendFilter::class.java
        )

        FilterType.BLEND_SATURATION -> createBlendFilter(
            GPUImageSaturationBlendFilter::class.java
        )

        FilterType.BLEND_LUMINOSITY -> createBlendFilter(
            GPUImageLuminosityBlendFilter::class.java
        )

        FilterType.BLEND_LINEAR_BURN -> createBlendFilter(
            GPUImageLinearBurnBlendFilter::class.java
        )

        FilterType.BLEND_SOFT_LIGHT -> createBlendFilter(
            GPUImageSoftLightBlendFilter::class.java
        )

        FilterType.BLEND_SUBTRACT -> createBlendFilter(
            GPUImageSubtractBlendFilter::class.java
        )

        FilterType.BLEND_CHROMA_KEY -> createBlendFilter(
            GPUImageChromaKeyBlendFilter::class.java
        )

        FilterType.BLEND_NORMAL -> createBlendFilter(
            GPUImageNormalBlendFilter::class.java
        )

        else -> null
    }
}

/**
 * 创建内置混合滤镜效果
 * @param filterClass Class extends GPUImageTwoInputFilter
 * @return [GPUImageFilter]
 */
private fun createBlendFilter(filterClass: Class<out GPUImageTwoInputFilter>): GPUImageFilter? {
    try {
        return filterClass.newInstance()
    } catch (e: Exception) {
        GPUFilterItem.TAG.log_eTag(
            message = "createBlendFilter",
            throwable = e
        )
    }
    return null
}package afkt.retrofit.use.simple

import afkt.retrofit.use.base.BaseViewModel
import afkt.retrofit.use.helper.*
import androidx.databinding.ObservableField
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import dev.retrofit.Base
import dev.simple.extensions.hi.hiif.hiIfNotNull
import java.util.*

/**
 * detail: request_coroutines_simple.kt 使用方法 ViewModel
 * @author Ttt
 */
class SimpleViewModel(
    private val repository: SimpleRepository = SimpleRepository()
) : BaseViewModel() {

    // request_coroutines_simple.kt 文案
    val tipsText = ObservableField(
        "DevRetrofit 库 request_coroutines_simple.kt 封装使用示例"
    )

    // 电影详情信息
    val movieDetailOB = ObservableField<MovieDetailBean>()

    // 电影详情信息
    private val _movieDetail = MutableLiveData<MovieDetailBean>()
    val movieDetail: LiveData<MovieDetailBean> = _movieDetail

    // ==============
    // = 电影详情信息 =
    // ==============

    // 获取电影详情信息
    val clickMovieDetail: () -> Unit = {
        requestMovieDetail()
    }


    ["T"] = "Die Multiphasen-Vermessung",
  },
  [11882] = {
    ["D"] = "Möchtet Ihr ein paar heiße neue Fertigkeiten erlernen?$B$BOb Ihr jemals meine beeindruckende Fertigkeit erreichen werdet, sei zwar dahingestellt, aber ein oder zwei Kunststückchen werdet Ihr wahrscheinlich aufschnappen können, wenn Ihr $Gein aufmerksamer Schüler:eine aufmerksame Schülerin; seid. Sprecht mit einem Feuerschluckmeister in einer der Hauptstädte. Sie sollten Euch weiterhelfen können.",
    ["O"] = "Sprecht mit einem Feuerschluckmeister in einer der Hauptstädte.",
    ["T"] = "Spiel mit dem Feuer",
  },
  [11883] = {
    ["D"] = "Ihr wollt die Feuertanzkunst erlernen?$B$BNun, dann sprecht einfach mit einem Feuertanzmeister in einer der Hauptstädte. Sie sollten Euch weiterhelfen können.",
    ["O"] = "Sprecht mit einem Feuertanzmeister in einer der Hauptstädte.",
    ["T"] = "Feuertanzen?",
  },
  [11885] = {
    ["D"] = "Die Nachfahren, die von den Krallenpriestern von Skettis gefangen gehalten werden, sind alle in diesem Buch aufgeführt. Gezzarak die Jägerin, Karogg der Kristallriese, der Ketzer namens Dunkelkreischer Akkarai und Vakkiz der Windzürner. Sie alle müssen getötet werden, bevor Terokk in diese Welt zurückkehrt.$B$BIhr werdet die Schriftrollen benötigen, die die zeitverlorenen Arakkoa bei sich tragen. Benutzt sie bei den Beschwörungskreisen, die es in Skettis gibt. Eure Gegner sind mächtige Wesen; Ihr tätet gut daran, ein paar Freunde mitzunehmen.",
    ["O"] = "Findet die Schädelhaufen innerhalb der Beschwörungskreise in Skettis. Beschwört die Nachfahren, indem Ihr 10 zeitverlorene Schriftrollen am Schädelhaufen benutzt und bezwingt sie. Kehrt mit einem Beweisstück von jedem zu Hakkiz am Schattenwindlager zurück.",
    ["T"] = "Feindesblut",
  },
  [11886] = {
    ["D"] = "Spaß und Frivolität müssen sein, $C, doch einige von uns haben sich ernsteren Angelegenheiten zu widmen.$B$BZu Beginn des Festes erhielten wir Kunde von unseren Anhängern nahe des Zoramstrands über stark erhöhte Aktivitäten des Schattenhammerkults. Die Macht, die diese Wahnsinnigen verehren, ist tief in der Entstehungsgeschichte dieser Festtage verwurzelt. Dies kann kein Zufall sein. Begebt Euch zum Lager in den Ruinen südlich des Eingangs zur Tiefschwarzen Grotte und findet heraus, ob die Kultisten Informationen liefern können - wendet Gewalt an, falls nötig. Platziert dieses Leuchtfeuer auf dem Boden, sobald Ihr etwas gefunden habt, um einen Führer des Irdenen Rings zu beschwören.",
    ["O"] = "Geht zum Lager des Schattenhammers südlich des Eingangs zur Tiefschwarzen Grotte am Zoramstrand im Eschental und sucht nach Briefen des Schattenhammers. Die Kultisten werden sie voraussichtlich bei sich tragen. Benutzt anschließend das totemische Leucht


# Copyright lowRISC contributors (OpenTitan project).
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0

import random
from typing import Optional

from shared.insn_yaml import InsnsFile

from ..config import Config
from ..program import DummyProgInsn, Program
from ..model import Model
from ..snippet import ProgSnippet
from ..snippet_gen import GenCont, GenRet, SnippetGen

class BadInsn(SnippetGen):
    '''A simple snippet generator that generates one invalid instruction'''

    ends_program = True

    def __init__(self, cfg: Config, insns_file: InsnsFile) -> None:
        super().__init__()

        # Take a copy of the instructions file: we'll need it when generating
        # random data in order to make sure we generate junk.
        self.insns_file = insns_file

    def _get_badbits(self) -> int:
        for _ in range(50):
            data = random.getrandbits(32)
            # Is this (by fluke) actually a valid instruction? It's not very
            # likely, but we need to check that it isn't.
            if self.insns_file.mnem_for_word(data) is None:
                return data

        # Since the encoding density isn't all that high (< 25%), the chances
        # of getting here are vanishingly small (should be < 2^100). Just
        # assert that it doesn't happen.
        assert 0

    def gen(self,
            cont: GenCont,
            model: Model,
            program: Program) -> Optional[GenRet]:
        prog_insn = DummyProgInsn(self._get_badbits())
        snippet = ProgSnippet(model.pc, [prog_insn])
        snippet.insert_into_program(program)
        return (snippet, model)

    def pick_weight(self,
                    model: Model,
                    program: Program) -> float:
        # Choose small weights when we've got lots of room and large ones when
        # we haven't.
        room = min(model.fuel, program.space)
        assert 0 < room
        return (1e-10 if room > 5
                else 0.1 if room > 1
                else 1e10)


et().check();
            }
            Collections.sort(dists);
            TimeoutRegister.get().check();
            plane.add(newGroup);
        }

        assert plane.getObjects().size() == 1 : "There should be one object left at the plane after grouping";
        return (BxZoneGroup) plane.getObjects().get(0);
    }

    /**
     * Removes all distance tuples containing obj
     */
    private List<DistElem<BxObject>> removeDistElementsContainingObject(Collection<DistElem<BxObject>> list, BxObject obj) {
        List<DistElem<BxObject>> ret = new ArrayList<DistElem<BxObject>>();
        for (DistElem<BxObject> distElem : list) {
            if (distElem.getObj1() != obj && distElem.getObj2() != obj) {
                ret.add(distElem);
            }
        }
        return ret;
    }

    /**
     * Swaps children of BxZoneGroup if necessary. A group with smaller sort factor is placed to the left (leftChild).
     * An object with greater sort factor is placed on the right (rightChild). This plays an important role when
     * traversing the tree in conversion to a one dimensional list.
     *
     * @param group
     */
    private void sortGroupedZones(BxZoneGroup group) {
        BxObject leftChild = group.getLeftChild();
        BxObject rightChild = group.getRightChild();
        if (shouldBeSwapped(leftChild, rightChild)) {
            // swap
            group.setLeftChild(rightChild);
            group.setRightChild(leftChild);
        }

        if (leftChild instanceof BxZoneGroup) // if the child is a tree node, then recurse
        {
            sortGroupedZones((BxZoneGroup) leftChild);
        }
        if (rightChild instanceof BxZoneGroup) // as above - recurse
        {
            sortGroupedZones((BxZoneGroup) rightChild);
        }
    }

    private boolean shouldBeSwapped(BxObject first, BxObject second) {
        double cx, cy, cw, ch, ox, oy, ow, oh;
        cx = first.getBounds().getX();
        cy = first.getBounds().getY();
        cw = first.getBounds().getWidth();
        ch = first.getBounds().getHeight();

        ox = second.getBounds().getX();
        oy = second.getBounds().getY();
        ow = second.getBounds().getWidth();
        oh = second.getBounds().getHeight();

        // Determine Octant
        //
        // 0 | 1 | 2
        // __|___|__
        // 7 | 9 | 3   First is placed in 9th square
        // __|___|__
        // 6 | 5 | 4

        if (cx + cw <= ox) { //2,3,4
        	return false;
        } else if (ox + ow <= cx) { //0,6,7
        	return true; //6
        } else if (cy + ch <= oy) {
            return false; //5
        } else if (oy + oh <= cy) {
            return true; //1
        } else { //two zones
            double xdiff = ox+ow/2 - cx-cw/2;
            double ydiff = oy+oh/2 - cy-ch/2;
            return xdiff + ydiff < 0;
        }
    }

    /**
     * A distance function between two TextBoxes.
     *
     * Consider the bounding rectangle for obj1 and obj2. Return its area minus the areas of obj1 and obj2, shown as
     * 'www' below. This value may be negative. (x0,y0) +------+..........+ | obj1 |wwwwwwwwww: +------+www+------+
     * :wwwwwwwwww| obj2 | +..........+------+ (x1,y1)
     *
     * @return distance value based on objects' coordinates and physical size on a plane
     *
     */
    private double distance(BxObject obj1, BxObject obj2) {

        double x0 = Math.min(


v_mem_free(ch->cache);
	mutex_lock(&ch->vspace->lock);
	list_del(&ch->vspace_list);
	mutex_unlock(&ch->vspace->lock);
}

void
nv50_chan_takedown(struct drm_device *dev) {
	struct drm_nouveau_private *dev_priv = dev->dev_private;
	struct nv50_chan_engine *che = nv50_ch(dev_priv->chan);
	kfree(che);
}

int
nv50_chan_init(struct drm_device *dev) {
	struct drm_nouveau_private *dev_priv = dev->dev_private;
	struct nv50_chan_engine *che = kzalloc(sizeof *che, GFP_KERNEL);
	if (!che) {
		NV_ERROR(dev, "CH: Couldn't alloc engine\n");
		return -ENOMEM;
	}
	che->base.takedown = nv50_chan_takedown;
	che->base.do_chan_new = nv50_chan_new;
	che->base.do_chan_free = nv50_chan_free;
	dev_priv->chan = &che->base;
	spin_lock_init(&dev_priv->chan->ch_lock);
	dev_priv->chan->ch_min = 1;
	dev_priv->chan->ch_max = 126;
	return 0;
}


ap(|n| n.abs_diff(median) as i64)
        .sum()
}

#[inline(always)]
fn triangular_number(n: i64) -> i64 {
    n * (n + 1) / 2
}

// FIXME: produces wrong result for example, but works for everything else
pub fn run2(input: &[u8]) -> i64 {
    // trim newline
    let len = input.len();
    let input = unsafe { &input[..len - (*input.get_unchecked(len - 1) == b'\n') as usize] };

    let numbers = input
        .split(|&byte| byte == b',')
        .map(|raw_number| {
            raw_number
                .iter()
                .rev()
                .enumerate()
                .map(|(i, byte)| {
                    let mut byte = (byte - b'0') as i64;

                    (0..i).for_each(|_| {
                        byte *= 10;
                    });

                    byte
                })
                .sum()
        })
        .collect::<ArrayVec<i64, NUMBER_COUNT>>();

    let mean: i64 = numbers.iter().sum::<i64>() / NUMBER_COUNT as i64;

    numbers
        .iter()
        .map(|n| triangular_number(n.abs_diff(mean) as i64))
        .sum()
}
<filename>src/float.rs
// (C) 2015 <NAME> <<EMAIL>>
// (C) 2015 <NAME> <<EMAIL>>
// This file is licensed under the same terms as Rust itself.

use super::sort::{sort_by};
use unreachable::unreachable;

/// Minimal trait required for sorting floats.
pub trait Float: Copy + PartialOrd {
    /// Returns `1.0`.
    fn one() -> Self;

    /// Returns `0.0`.
    fn zero() -> Self;

    /// Returns `-0.0`.
    fn neg_zero() -> Self;

    /// Returns `true` if this value is `NaN` and `false` otherwise.
    fn is_nan(self) -> bool;

    /// Returns `true` if this value is positive, including `-0.0` and `-inf`.
    fn is_sign_negative(self) -> bool;
}

impl Float for f32 {
    #[inline]
    fn one() -> f32 { 1.0 }

    #[inline]
    fn zero() -> f32 { 0.0 }

    #[inline]
    fn neg_zero() -> f32 { -0.0 }

    #[inline]
    fn is_nan(self) -> bool {
        self != self
    }

    #[inline]
    fn is_sign_negative(self) -> bool {
        self < 0.0 || (1.0 / self) == ::core::f32::NEG_INFINITY
    }
}

impl Float for f64 {
    #[inline]
    fn one() -> f64 { 1.0 }

    #[inline]
    fn zero() -> f64 { 0.0 }

    #[inline]
    fn neg_zero() -> f64 { -0.0 }

    #[inline]
    fn is_nan(self) -> bool {
        self != self
    }
    #[inline]
    fn is_sign_negative(self) -> bool {
        self < 0.0 || (1.0 / self) == ::core::f64::NEG_INFINITY
    }
}

/// Sorts floating point number.
/// The ordering used is
/// | -inf | < 0 | -0 | +0 | > 0 | +inf | NaN |
pub fn sort_floats<T: Float>(v: &mut [T]) {
    /*
     * We don't have hardware support for a total order on floats. NaN is not
     * smaller or greater than any number. We want NaNs to be last, so we could
     * just use is_nan() in the comparison function. It turns out that hurts
     * performance a lot, and in most cases we probably don't have any NaNs anyway.
     *
     * The solution is to first move all NaNs to the end of the array, and the
     * sort the remainder with efficient comparisons. After sorting, the


_frames_font, C.font.unit_frames_font_size, C.font.unit_frames_font_style)
		self.RaidDebuffs.count:SetPoint("BOTTOMRIGHT", self.RaidDebuffs, "BOTTOMRIGHT", 3, -1)
		self.RaidDebuffs.count:SetTextColor(1, 1, 1)

		if C.aura.show_spiral == true then
			self.RaidDebuffs.cd = CreateFrame("Cooldown", nil, self.RaidDebuffs, "CooldownFrameTemplate")
			self.RaidDebuffs.cd:SetPoint("TOPLEFT", 2, -2)
			self.RaidDebuffs.cd:SetPoint("BOTTOMRIGHT", -2, 2)
			self.RaidDebuffs.cd:SetReverse(true)
			self.RaidDebuffs.cd:SetDrawEdge(false)
			self.RaidDebuffs.cd.noCooldownCount = true
			self.RaidDebuffs.parent = CreateFrame("Frame", nil, self.RaidDebuffs)
			self.RaidDebuffs.parent:SetFrameLevel(self.RaidDebuffs.cd:GetFrameLevel() + 1)
			if C.raidframe.plugins_aura_watch_timer == true then
				self.RaidDebuffs.time:SetParent(self.RaidDebuffs.parent)
			end
			self.RaidDebuffs.count:SetParent(self.RaidDebuffs.parent)
		end

		self.RaidDebuffs.ShowDispellableDebuff = C.raidframe.plugins_debuffhighlight_icon
		self.RaidDebuffs.FilterDispellableDebuff = true
		self.RaidDebuffs.MatchBySpellName = true
	end

	if T.PostCreateHealRaidFrames then
		T.PostCreateHealRaidFrames(self, unit)
	end

	return self
end

----------------------------------------------------------------------------------------
--	Default position of ShestakUI unitframes
----------------------------------------------------------------------------------------
oUF:Factory(function(self)
	if C.raidframe.layout ~= "HEAL" and C.raidframe.layout ~= "AUTO" then return end

	oUF:RegisterStyle("ShestakHeal", Shared)
	oUF:SetActiveStyle("ShestakHeal")
	if C.raidframe.show_party == true then
		local party = self:SpawnHeader("oUF_Party", nil, "custom [@raid6,exists] hide;show",
			"oUF-initialConfigFunction", [[
				local header = self:GetParent()
				self:SetWidth(header:GetAttribute("initial-width"))
				self:SetHeight(header:GetAttribute("initial-height"))
			]],
			"initial-width", party_width,
			"initial-height", T.Scale(party_height),
			"showSolo", C.raidframe.solo_mode,
			"showPlayer", C.raidframe.player_in_party,
			"groupBy", C.raidframe.by_role and "ASSIGNEDROLE",
			"groupingOrder", C.raidframe.by_role and "TANK,HEALER,DAMAGER,NONE",
			"sortMethod", C.raidframe.by_role and "NAME",
			"showParty", true,
			"showRaid", true,
			"xOffset", not C.raidframe.party_vertical and T.Scale(7),
			"yOffset", C.raidframe.party_vertical and T.Scale(-7),
			"point", C.raidframe.party_vertical and "TOP" or "LEFT"
		)
		party:SetPoint("TOPLEFT", _G["PartyAnchor"])
		if C.raidframe.party_vertical then
			_G["PartyAnchor"]:SetSize(party_width, party_height * 5 + T.Scale(7) * 4)
		else
			_G["PartyAnchor"]:SetSize(party_width * 5 + T.Scale(7) * 4, party_height)
		end

		-- Party targets
		if C.raidframe.show_target then
			local partytarget = self:SpawnHea


background-color: yellow;

        display: grid;
        gap: 10px;

        grid-template: repeat(2, 100px) / repeat(3, 100px);

        justify-items: flex-start;
        justify-items: flex-end;
        justify-items: center;
        justify-items: stretch;

      }
      .box {
        background-color: red;
        border: 1px solid black;
        border-radius: 0 1.5rem;
      }

      #box1
      {
        justify-self: center;
        justify-self: flex-start;
        justify-self: flex-end;
        justify-self: stretch;
      }
    </style>

Box1

Box2

Box3

Box4

Box5

<!DOCTYPE html>

    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Blog Website Layout</title>

Header

Main

Content

Blog

Footer

<!DOCTYPE html>

    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Justify items</title>


or Sina Samangooei (ss@ecs.soton.ac.uk)
 *
 */
public interface SplitDetectionMode{
	/**
	 * minimise for y: (y' * (D - W) * y) / ( y' * D * y );
	 * s.t. y = (1 + x) - b * (1 - x);
	 * s.t. b = k / (1 - k);
	 * s.t. k = sum(d(x > 0)) / sum(d);
	 * and
	 * s.t. x is an indicator (-1 for less than t, 1 for greater than or equal to t)
	 * @author Sina Samangooei (ss@ecs.soton.ac.uk)
	 */
	public class OPTIMISED implements SplitDetectionMode {

		private DiagonalMatrix D;
		private SparseMatrix W;
		private MEAN mean;

		/**
		 * @param D
		 * @param W
		 */
		public OPTIMISED(DiagonalMatrix D, SparseMatrix W) {
			this.D = D;
			this.W = W;
			this.mean = new MEAN();
		}
		private ObjectDoublePair<double[]> indicator(double[] vec, double d) {
			double[] ind = new double[vec.length];
			double sumx = 0;
			for (int i = 0; i < ind.length; i++) {
				if(vec[i] > d){
					ind[i] = 1;
					sumx ++;
				}
				else{
					ind[i] = -1;
				}
			}
			return ObjectDoublePair.pair(ind, sumx);
		}
		@Override
		public double detect(final double[] vec) {
			double[] t = {this.mean.detect(vec)};
			MultivariateRealFunction func = new MultivariateRealFunction() {
				@Override
				public double value(double[] x) throws FunctionEvaluationException {
					ObjectDoublePair<double[]> ind = indicator(vec,x[0]);
					double sumd = MatlibMatrixUtils.sum(D);
					double k = ind.second / sumd;
					double b = k / (1-k);
					double[][] y = new double[1][vec.length];
					for (int i = 0; i < vec.length; i++) {
						y[0][i] = ind.first[i] + 1 - b * (1 - ind.first[i]);
					}
					SparseMatrix dmw = MatlibMatrixUtils.minusInplace(D, W);
					Vector yv = Vector.wrap(y[0]);
					double nom = new DenseMatrix(y).mult(dmw.transposeMultiply(yv)).get(0); // y' * ( (D-W) * y)
					double denom = new DenseMatrix(y).mult(D.transposeMultiply(yv)).get(0);
					return nom/denom;
				}

			};

//
			RealPointValuePair ret;
			try {
				NelderMead nelderMead = new NelderMead();
				nelderMead.setConvergenceChecker(new SimpleRealPointChecker(0.0001, -1));
				ret = nelderMead.optimize(func, GoalType.MINIMIZE, t);
				return ret.getPoint()[0];
			} catch (Exception e) {
				e.printStackTrace();
				System.err.println("Reverting to mean");
			}
			return t[0];
		}

	}

	/**
	 * Splits clusters becuase they don't have exactly the same value!
	 */
	public static class MEDIAN implements SplitDetectionMode{
		@Override
		public double detect(double[] col) {
			double mid = ArrayUtils.quickSelect(col, col.length/2);
			if(ArrayUtils.minValue(col) == mid)
				mid += Double.MIN_NORMAL;
			if(ArrayUtils.maxValue(col) == mid)
				mid -= Double.MIN_NORMAL;
			return 0;
		}

	}

	/**
	 * Use the mean to split
	 * @author Sina Samangooei (ss@ecs.soton.ac.uk)
	 *
	 */
	public static class MEAN implements SplitDetectionMode{

		@Override
		public double detect(double[] vec) {
			return new Mean().evaluate(vec);
		}

	}

	/**
	 * Find the median, attempt to find a value which keeps clusters together
	 * @author Sina Samangooei (ss@ecs.soton.ac.uk)
	 *
	 */
	public static class VARIABLE_MEDIAN implements SplitDetectionMode{

		private double tolchange;
		/**
		 * Sets the change tolerance to 0.1 (i


;
      }

      // Find the next (or previous) element in the list
      i = bBack ? i-1 : i+1;
      // Treat the list as circular, wrapping the index if necessary.
      i = i >= t.length ? i-t.length : i;
      i = i < 0 ? i+t.length : i;

      // Move to the selected element
      if(device.touchable) {
        // Set focusing flag to prevent OSK disappearing
        keymanweb.focusing=true;
        var target=t[i]['kmw_ip'];

        // Focus if next element is non-mapped
        if(typeof(target) == 'undefined') {
          t[i].focus();
        } else { // Or reposition the caret on the input DIV if mapped
          keymanweb._ActiveElement=keymanweb._LastActiveElement=target;
          keymanweb.setTextCaret(target,10000);
          keymanweb.scrollInput(target);   // mousedown check
          target.focus();
        }
      } else { // Behaviour for desktop browsers
        t[i].focus();
      }
    }

    /**
     * Move focus to user-specified element
     *
     *  @param  {string|Object}   e   element or element id
     *
     **/
    keymanweb['moveToElement'] = function(e)
    {
      var i;

      if(typeof(e) == 'string') e=document.getElementById(e);

      if(device.touchable && e['kmw_ip'])
        e['kmw_ip'].focus();
      else
        e.focus();
    }

    /**
     * Function    isCJK
     * Scope       Public
     * @param      {Object=}  k0
     * @return     {boolean}
     * Description Tests if active keyboard (or optional argument) uses a pick list (Chinese, Japanese, Korean, etc.)
     *             (This function accepts either keyboard structure.)
     */
    keymanweb['isCJK'] = function(k0) {
      return keymanweb.keyboardManager.isCJK(k0);
    }

    /**
     * Function     isChiral
     * Scope        Public
     * @param       {string|Object=}   k0
     * @return      {boolean}
     * Description  Tests if the active keyboard (or optional argument) uses chiral modifiers.
     */
    keymanweb.isChiral = keymanweb['isChiral'] = function(k0) {
      if(typeof(k0) == "string") {
        k0 = keymanweb.keyboardManager.getKeyboardByID(k0);
      }

      return !!(keymanweb.getKeyboardModifierBitmask(k0) & keymanweb['osk'].modifierBitmasks.IS_CHIRAL);
    }

    /**
     * Function     getKeyboardModifierBitmask
     * Scope        Private
     * @param       {Object=}   k0
     * @return      {number}
     * Description  Obtains the currently-active modifier bitmask for the active keyboard.
     */
    keymanweb.getKeyboardModifierBitmask = function(k0) {
      var k=keymanweb.keyboardManager.activeKeyboard;

      if(arguments.length > 0 && typeof k0 != 'undefined') {
        k = k0;
      }

      if(!k) {
        return 0x0000;
      }

      if(k['KMBM']) {
        return k['KMBM'];
      }

      return osk.modifierBitmasks['NON_CHIRAL'];
    }

    /**
     * Allow to change active keyboard by (internal) keyboard name
     *
     * @param       {string}    PInternalName   Internal name
     * @param       {string}    PLgCode         Language code
     */
    keymanweb['setActiveKeyboard'] = function(PInternalName,PLgCode) {
      keyman


Fhir.Model.Markdown),typeof(Hl7.Fhir.Model.Oid),typeof(Hl7.Fhir.Model.PositiveInt),typeof(Hl7.Fhir.Model.FhirString),typeof(Hl7.Fhir.Model.Time),typeof(Hl7.Fhir.Model.UnsignedInt),typeof(Hl7.Fhir.Model.FhirUri),typeof(Hl7.Fhir.Model.Address),typeof(Hl7.Fhir.Model.Age),typeof(Hl7.Fhir.Model.Annotation),typeof(Hl7.Fhir.Model.Attachment),typeof(Hl7.Fhir.Model.CodeableConcept),typeof(Hl7.Fhir.Model.Coding),typeof(Hl7.Fhir.Model.ContactPoint),typeof(Hl7.Fhir.Model.Count),typeof(Hl7.Fhir.Model.Distance),typeof(Hl7.Fhir.Model.Duration),typeof(Hl7.Fhir.Model.HumanName),typeof(Hl7.Fhir.Model.Identifier),typeof(Hl7.Fhir.Model.Money),typeof(Hl7.Fhir.Model.Period),typeof(Hl7.Fhir.Model.Quantity),typeof(Hl7.Fhir.Model.Range),typeof(Hl7.Fhir.Model.Ratio),typeof(Hl7.Fhir.Model.ResourceReference),typeof(Hl7.Fhir.Model.SampledData),typeof(Hl7.Fhir.Model.Signature),typeof(Hl7.Fhir.Model.Timing),typeof(Hl7.Fhir.Model.Meta))]
    [DataMember]
    public Hl7.Fhir.Model.DataType Pattern
    {
      get { return _Pattern; }
      set { _Pattern = value; OnPropertyChanged("Pattern"); }
    }

    private Hl7.Fhir.Model.DataType _Pattern;

    /// <summary>
    /// Example value (as defined for type)
    /// </summary>
    [FhirElement("example", InSummary=true, Order=240)]
    [Cardinality(Min=0,Max=-1)]
    [DataMember]
    public List<Hl7.Fhir.Model.ElementDefinition.ExampleComponent> Example
    {
      get { if(_Example==null) _Example = new List<Hl7.Fhir.Model.ElementDefinition.ExampleComponent>(); return _Example; }
      set { _Example = value; OnPropertyChanged("Example"); }
    }

    private List<Hl7.Fhir.Model.ElementDefinition.ExampleComponent> _Example;

    /// <summary>
    /// Minimum Allowed Value (for some types)
    /// </summary>
    [FhirElement("minValue", InSummary=true, Order=250, Choice=ChoiceType.DatatypeChoice)]
    [CLSCompliant(false)]
    [AllowedTypes(typeof(Hl7.Fhir.Model.Date),typeof(Hl7.Fhir.Model.FhirDateTime),typeof(Hl7.Fhir.Model.Instant),typeof(Hl7.Fhir.Model.Time),typeof(Hl7.Fhir.Model.FhirDecimal),typeof(Hl7.Fhir.Model.Integer),typeof(Hl7.Fhir.Model.PositiveInt),typeof(Hl7.Fhir.Model.UnsignedInt),typeof(Hl7.Fhir.Model.Quantity))]
    [DataMember]
    public Hl7.Fhir.Model.DataType MinValue
    {
      get { return _MinValue; }
      set { _MinValue = value; OnPropertyChanged("MinValue"); }
    }

    private Hl7.Fhir.Model.DataType _MinValue;

    /// <summary>
    /// Maximum Allowed Value (for some types)
    /// </summary>
    [FhirElement("maxValue", InSummary=true, Order=260, Choice=ChoiceType.DatatypeChoice)]
    [CLSCompliant(false)]
    [AllowedTypes(typeof(Hl7.Fhir.Model.Date),typeof(Hl7.Fhir.Model.FhirDateTime),typeof(Hl7.Fhir.Model.Instant),typeof(Hl7.Fhir.Model.Time),typeof(Hl7.Fhir.Model.FhirDecimal),typeof(Hl7.Fhir.Model.Integer),typeof(Hl7.Fhir.Model.PositiveInt),typeof(Hl7.Fhir.Model.UnsignedInt),typeof(Hl7.Fhir.Model.Quantity))]
    [DataMember]
    public Hl7.Fhir.Model.DataType MaxValue
    {
      get { return _MaxValue; }


dAhVSbVAKHU1pDQ4QrwYoATAtegQIOBAJ">Mobile Experts Hub in Zürich ...

Restaurant Au Premier ...

19. Sep. - 20. Sep.

BRANCHENKONFERENZ ...

Novomatic Forum, Vienna ...

Mobile Device Management - GLOBOS

www.globos.de › Ratgeber

<a class="fl" href="http://webcache.


-- Sample luaj program that presents an animated Applet designed to work
-- with the SampleApplet.java code in the examples/jse directory.
--
-- The Applet.init() method loads and executes this script with the Applet
-- as the first argument.
--
-- Other Applet lifecycle events are forwarded by the SampleApplet
-- by looking for these global variables and invoking them:
--   start()
--   stop()
--   paint(graphics)
--   update(graphics)
--
-- This basic applet handles key, and mouse input, has a basic animation loop,
-- and renders double-buffered graphics including the logo image in a swing frame.
--
local applet = (...)
print('loading', applet)

-- load the logo
local logo = applet:getImage(applet:getDocumentBase(), "logo.gif")
print('logo', logo)

-- implement the applet painting, start, and stop methods.
local animate,render
local prev, interval = 0,1/60
function update(graphics)
	-- avoids clearing background
	applet:paint(graphics)
end
function paint(graphics)
	applet:repaint()
	local curr = os.time()
	local diff = curr - prev
	if diff >= interval then
		prev = curr
		pcall(animate)
		pcall(render, graphics)
	end
end
function start()
	applet:repaint()
end
function stop()
    -- do nothing
end

-- the animation step moves the line endpoints
local x1,y1,x2,y2,xi,yi = 160,240,480,240,0,0
local vx1,vy1,vx2,vy2,vxi,vyi = -5,-6,7,8,3,1
local chars = {}
local advance = function(x,vx,max,rnd)
	x = x + vx
	if x < 0 then
		return 0, math.random(2,10)
	elseif x > max then
		return max, math.random(-10,-2)
	end
	return x, vx
end
animate = function()
	x1,y1,x2,y2 = x1+1,y1+1,x2-1,y2-1
	local w,h = applet:getWidth(), applet:getHeight()
	x1,vx1 = advance(x1,vx1,w)
	y1,vy1 = advance(y1,vy1,h)
	x2,vx2 = advance(x2,vx2,w)
	y2,vy2 = advance(y2,vy2,h)
	xi,vxi = advance(xi,vxi,w-100)
	yi,vyi = advance(yi,vyi,h-100)
	while #chars > 0 and chars[1].n <= 1 do
		table.remove(chars, 1)
	end
	for i,c in pairs(


ifyResponse {
    canPlay: boolean;
}

export const initResponse: IInitResponse = {
    win: false,
    prize: 0,
    symbolsToMatch: [ 4, 7, 10, 15, 1],
    symbols: [5, 7, 10, 9, 1, 6, 10, 15, 14, 12, 11, 1, 4, 5, 9],
    bonusSymbols: [1, 2, 3, 4, 5, 6, 7, 8, 9]
};

export const canPlay: IVerifyResponse = {
    canPlay: true
}import * as fs from "fs-extra";
import { logInfo, logWarning } from "./log";

export const pathExists = (path: string): boolean => fs.pathExistsSync(path);

export const destroy = (path: string): void => {
    if (pathExists(path)) {
        fs.removeSync(path);
        logInfo(`Deleted - ${path}`);
    } else logWarning(`Path does not exist - ${path}`);
};
import { assert } from 'chai';
import { ILinterOptions, IOptions, IRuleMetadata, Linter, LintResult, RuleFailure } from 'tslint/lib';
import { SourceFile } from 'typescript/lib/typescript';
import { escapeRegexp } from '../src/util/escapeRegexp';
import { convertRuleOptions, loadRules } from './utils';

interface Failure {
  readonly char: string;
  readonly msg: string;
}

interface SourcePosition {
  readonly character: number;
  readonly line: number;
}

export interface ExpectedFailure {
  readonly endPosition: SourcePosition;
  readonly message: string;
  readonly startPosition: SourcePosition;
}

export interface AssertConfig extends Pick<IRuleMetadata, 'ruleName'> {
  readonly message?: string;
  readonly options?: any;
  readonly source: string;
}

export interface AssertMultipleConfigs extends Pick<AssertConfig, 'options' | 'ruleName' | 'source'> {
  readonly failures: ReadonlyArray<Failure>;
}

/**
 * A helper function for specs. Lints the given `source` string against the `ruleName` with
 *  `options`.
 *
 *  You're unlikely to use these in actual specs. Usually you'd use some of the following:
 *    - `assertAnnotated` or
 *    - `assertSuccess`.
 *
 * @param ruleName the name of the rule which is being tested
 * @param source the source code, as a string
 * @param options additional options for the lint rule
 * @returns {LintResult} the result of linting
 */
const lint = (ruleName: AssertConfig['ruleName'], source: string | SourceFile, ruleArguments: AssertConfig['options'] = []): LintResult => {
  const rulesMap = new Map<string, Partial<IOptions>>([[ruleName, { ruleName, ruleArguments, disabledIntervals: [] }]]);
  const rulesDirectory = './dist/src';
  const configuration = {
    extends: [],
    jsRules: new Map<string, Partial<IOptions>>(),
    rules: rulesMap,
    rulesDirectory: [],
  };
  const linterOptions: ILinterOptions = {
    fix: false,
    formatter: 'json',
    formattersDirectory: undefined,
    rulesDirectory,
  };
  const linter = new Linter(linterOptions, undefined);

  if (typeof source === 'string') {
    linter.lint('file.ts', source, configuration);

    return linter.getResult();
  }

  const rules = loadRules(convertRuleOptions(rulesMap), rulesDirectory, false);
  const failures = rules.reduce<RuleFailure[]>((previousValue, currentValue) => previousValue.concat(currentValue.apply(source)), []);
  const errorCount = failures.filter((r) => !r.getRuleSeverity || r.getRuleSeverity() === 'error').length;
  const fixes = ([] as RuleFailure[]).concat.apply(failures.map((r) => r.getFix()));
  const warningCount = failures.length - errorCount;

  return {
    errorCount,
    failures,
    fixes,
    format: '',
    output: '',
    warningCount,
  };
};

/**
 * When testing a failure, we also test to see if th


 14.589 0 28.938 6.218 36.831 18.416h.24V168.946h33.96v170.76H435.084zM405.428 238.3c-22.24 0-29.894 19.134-29.894 39.463 0 19.371 8.848 39.7 29.894 39.7 22.482 0 29.178-19.613 29.178-39.94C434.606 257.436 427.432 238.3 405.428 238.3zM592.96 339.706H560.673V322.487h-.718c-8.609 13.87-23.436 20.567-37.786 20.567-36.113 0-45.2-20.328-45.2-50.941V216.061h33.959V285.9c0 20.329 5.979 30.372 21.765 30.372 18.415 0 26.306-10.283 26.306-35.393V216.061H592.96zM602.453 302.876H640v36.83H602.453z"],
    "google-pay": [640, 512, [], "e079", "M105.72,215v41.25h57.1a49.66,49.66,0,0,1-21.14,32.6c-9.54,6.55-21.72,10.28-36,10.28-27.6,0-50.93-18.91-59.3-44.22a65.61,65.61,0,0,1,0-41l0,0c8.37-25.46,31.7-44.37,59.3-44.37a56.43,56.43,0,0,1,40.51,16.08L176.47,155a101.24,101.24,0,0,0-70.75-27.84,105.55,105.55,0,0,0-94.38,59.11,107.64,107.64,0,0,0,0,96.18v.15a105.41,105.41,0,0,0,94.38,59c28.47,0,52.55-9.53,70-25.91,20-18.61,31.41-46.15,31.41-78.91A133.76,133.76,0,0,0,205.38,215Zm389.41-4c-10.13-9.38-23.93-14.14-41.39-14.14-22.46,0-39.34,8.34-50.5,24.86l20.85,13.26q11.45-17,31.26-17a34.05,34.05,0,0,1,22.75,8.79A28.14,28.14,0,0,1,487.79,248v5.51c-9.1-5.07-20.55-7.75-34.64-7.75-16.44,0-29.65,3.88-39.49,11.77s-14.82,18.31-14.82,31.56a39.74,39.74,0,0,0,13.94,31.27c9.25,8.34,21,12.51,34.79,12.51,16.29,0,29.21-7.3,39-21.89h1v17.72h22.61V250C510.25,233.45,505.26,220.34,495.13,211ZM475.9,300.3a37.32,37.32,0,0,1-26.57,11.16A28.61,28.61,0,0,1,431,305.21a19.41,19.41,0,0,1-7.77-15.63c0-7,3.22-12.81,9.54-17.42s14.53-7,24.07-7C470,265,480.3,268,487.64,273.94,487.64,284.07,483.68,292.85,475.9,300.3Zm-93.65-142A55.71,55.71,0,0,0,341.74,142H279.07


    paragraphIndex = int.tryParse(parts[1]) ?? 0;
    }

    List<String> cparts = parts[0].split('#');
    // 处理带锚点的情况
    final anchor = (cparts.length == 2) ? cparts[1] : null;

    final chapterIndex =
        chapters.indexWhere((chapter) => chapter.ContentFileName == cparts[0].substring(1) && chapter.Anchor == anchor);

    return chapterIndex == -1
        ? ChapterIndex(
            // chapter: null,
            chapterIndex: 0,
            paragraphIndex: paragraphIndex,
          )
        : ChapterIndex(
            // chapter: chapters[chapterIndex],
            chapterIndex: chapterIndex,
            paragraphIndex: paragraphIndex,
          );
  }

  int? absParagraphIndex(ChapterIndex? current) {
    //返回章节索引+ 段落索引
    return current != null ? chapterIndexes[current.chapterIndex] + current.paragraphIndex : null;
  }

  double progress(ChapterIndex? current) {
    final pos = absParagraphIndex(current);

    if (pos == null) {
      return 0;
    }
    if (kDebugMode) {
      print('currentParagraphIndex $pos / ${paragraphs.length} ');
    }
    return pos / paragraphs.length;
  }
}
// GENERATED CODE - DO NOT MODIFY BY HAND

part of 'note.entity.dart';

// **************************************************************************
// _IsarCollectionGenerator
// **************************************************************************

// coverage:ignore-file
// ignore_for_file: duplicate_ignore, invalid_use_of_protected_member, lines_longer_than_80_chars, constant_identifier_names, avoid_js_rounded_ints, no_leading_underscores_for_local_identifiers, require_trailing_commas, unnecessary_parenthesis, unnecessary_raw_strings, unnecessary_null_in_if_null_operators, library_private_types_in_public_api, prefer_const_constructors
// ignore_for_file: type=lint

extension GetNoteEntityCollection on Isar {
  IsarCollection<int, NoteEntity> get noteEntitys => this.collection();
}

const NoteEntitySchema = IsarGeneratedSchema(
  schema: IsarSchema(
    name: 'NoteEntity',
    idName: 'id',
    embedded: false,
    properties: [
      IsarPropertySchema(
        name: 'remoteId',
        type: IsarType.string,
      ),
      IsarPropertySchema(
        name: 'title',
        type: IsarType.string,
      ),
      IsarPropertySchema(
        name: 'localPath',
        type: IsarType.string,
      ),
      IsarPropertySchema(
        name: 'parentId',
        type: IsarType.long,
      ),
      IsarPropertySchema(
        name: 'levelPath',
        type: IsarType.string,
      ),
      IsarPropertySchema(
        name: 'priority',
        type: IsarType.long,
      ),
      IsarPropertySchema(
        name: 'shouldRenderChildren',
        type: IsarType.bool,
      ),
      IsarPropertySchema(
        name: 'isHoverEnabled',
        type: IsarType.bool,
      ),
      IsarPropertySchema(
        name: 'ctime',
        type: IsarType.long,
      ),
      IsarPropertySchema(
        name: 'utime',
        type: IsarType.long,
      ),
    ],
    indexes: [
      IsarIndexSchema(
        name: 'remoteId',
        properties: [
          "remoteId",
        ],
        unique: false,
        hash: false,
      ),
    ],
  ),
  converter: IsarObjectConverter<int, NoteEntity>(
    serialize: serializeNoteEntity,
    deserialize: deserializeNoteEntity


12.61-88 90.06 0-5.45 24.25-20.29 52-45 83.18zm138.15 73.23c-42.06 18.31-83.67-10.88-119.3-50.47 103.9-130.07 46.11-200-18.85-200-54.92 0-85.16 46.51-73.28 100.5 6.93 29.19 25.23 62.39 54.43 99.5-32.53 36.05-60.55 52.69-85.15 54.92-50 7.43-89.11-41.06-71.3-91.09 15.1-39.16 111.72-231.18 115.87-241.56 15.75-30.07 25.56-57.4 59.38-57.4 32.34 0 43.4 25.94 60.37 59.87 36 70.62 89.35 177.48 114.84 239.09 13.17 33.07-1.37 71.29-37.01 86.64zm47-136.12C280.27 35.93 273.13 32 224 32c-45.52 0-64.87 31.67-84.66 72.79C33.18 317.1 22.89 347.19 22 349.81-3.22 419.14 48.74 480 111.63 480c21.71 0 60.61-6.06 112.37-62.4 58.68 63.78 101.26 62.4 112.37 62.4 62.89.05 114.85-60.86 89.61-130.19.02-3.89-16.82-38.9-16.82-39.58z"],algolia:[448,512,[],"f36c","M229.3 182.6c-49.3 0-89.2 39.9-89.2 89.2 0 49.3 39.9 89.2 89.2 89.2s89.2-39.9 89.2-89.2c0-49.3-40-89.2-89.2-89.2zm62.7 56.6l-58.9 30.6c-1.8.9-3.8-.4-3.8-2.3V201c0-1.5 1.3-2.7 2.7-2.6 26.2 1 48.9 15.7 61.1 37.1.7 1.3.2 3-1.1 3.7zM389.1 32H58.9C26.4 32 0 58.4 0 90.9V421c0 32.6 26.4 59 58.9 59H389c32.6 0 58.9-26.4 58.9-58.9V90.9C448 58.4 421.6 32 389.1 32zm-202.6 84.7c0-10.8 8.7-19.5 19.5-19.5h45.3c10.8 0 19.5 8.7 19.5 19.5v15.4c0 1.8-1.7 3-3.3 2.5-12.3-3.4-25.1-5.1-38.1-5.1-13.5 0-26.7 1.8-39.4 5.5-1.7.5-3.4-.8-3.4-2.5v-15.8zm-84.4 37l9.2-9.2c7.6-7.6 19.9-7.6 27.5 0l7.7 7.7c1.1 1.1 1 3-.3 4-6.2 4.5-12.1 9.4-17.6 14.9-5.4 5.4-10.4 11.3-14.8 17.4-1 1.3-2.9 1.5-4 .3l-7.7-7.7c-7.6-7.5-7.6-19.8 0-27.4zm127.2 244.8c-70 0-126.6-56.7-126.6-126.6s56


asm(".syntax unified \n\
\n\
.balign 4, 0 \n\
\n\
thumb_func_start update_texture_loader_task \n\
/* 08008758 */ PUSH {R4, R5, LR} \n\
/* 0800875a */ ADDS R5, R0, 0x0 @ Set R5 to R0 + 0x0 \n\
/* 0800875c */ ADDS R0, 0x28 @ Add 0x28 to R0 \n\
/* 0800875e */ LDRB R0, [R0] \n\
/* 08008760 */ CMP R0, 0x0 @ Compare R0 and 0x0 \n\
/* 08008762 */ BNE branch_08008798 \n\
 \n\
branch_08008764: \n\
/* 08008764 */ LDR R0, [R5] \n\
/* 08008766 */ LDMIA R0!, {R4} \n\
/* 08008768 */ STR R0, [R5] \n\
/* 0800876a */ CMP R4, 0x0 @ Compare R4 and 0x0 \n\
/* 0800876c */ BEQ branch_08008794 \n\
/* 0800876e */ ADDS R0, R4, 0x0 @ Set R0 to R4 + 0x0 \n\
/* 08008770 */ BL func_080086c4 \n\
/* 08008774 */ ADDS R1, R0, 0x0 @ Set R1 to R0 + 0x0 \n\
/* 08008776 */ CMP R1, 0x0 @ Compare R1 and 0x0 \n\
/* 08008778 */ BEQ branch_08008764 \n\
/* 0800877a */ LDR R0, [R4] \n\
/* 0800877c */ LDR R1, [R1, 0x4] \n\
/* 0800877e */ MOVS R2, 0x80 @ Set R2 to 0x80 \n\
/* 08008780 */ LSLS R2, R2, 0x5 \n\
/* 08008782 */ ADDS R3, R5, 0x4 @ Set R3 to R5 + 0x4 \n\
/* 08008784 */ BL decompress_gfx_init \n\
/* 08008788


def print_half_triangle(n):
    num=1
    for i in range(1,n + 1):
        for j in range(1,i + 1):
            print(num**2,end=" ")
            num+= 1
        print()
n = int(input("Enter the number of rows: "))
print_half_triangle(n)


assertion only because it
	# is also enforced by EENTER since enclave is created with NSSA=2.
	cmpq $1, %rax
	je 1f
	FAIL_LOOP
1:

	movq %gs:SGX_GPR, %rbx

	movq %rdi, %rsi
	xorq %rdi, %rdi
	movl SGX_GPR_EXITINFO(%rbx), %edi
	testl $0x80000000, %edi
	jnz .Lhandle_exception

	movl %esi, %edi
	# use external event - only the first 8 bits count
	andl $0xff, %edi
	cmpl $0, %edi
	jne .Lhandle_exception

.Lignore_exception:
	# clear the registers
	xorq %rdi, %rdi
	xorq %rsi, %rsi

	# exit address in RDX, mov it to RBX
	movq %rdx, %rbx

	jmp .Lclear_and_eexit

.Lhandle_exception:
	# If this enclave thread has not been initialized yet, we should not
	# try to call an event handler yet.
	cmpq $0, %gs:SGX_READY_FOR_EXCEPTIONS
	jne 1f
	FAIL_LOOP
1:

	# Beware of races between host signal delivery and handling %rsp in
	# this entry code. Consider the following scenario:
	#
	# 1. We are inside the enclave but %rsp isn't restored yet to something
	#    inside the enclave. That's for example the case when returning from
	#    an ocall.
	# 2. The enclave gets interrupted. The not restored %rsp is pushed into
	#    SGX_GPR_RSP by the processor.
	# 3. The host enters the enclave again and indicates that there's a new
	#    signal.
	# 4. SGX_GPR_RSP points to the untrusted stack
	#
	# The below code should be fine since it detects an interrupted ocall
	# and restores %rsp from SGX_PRE_OCALL_STACK before exception handling
	# (see below for full details)

	# The stack swap logic does not need to be atomic because nested
	# exceptions are disallowed by SGX due to TCS.NSSA == 2 (thus,
	# .Lhandle_exception logic cannot be nested)

	# Check if we got interrupted during an ocall case (except OCALL_EXIT),
	# i.e. SGX_PRE_OCALL_STACK is set.
	movq %gs:SGX_PRE_OCALL_STACK, %rsi
	cmpq $0, %rsi
	jne .Lhandle_interrupted_ocall

	# If this is not the case check if OCALL_EXIT has been called. If this
	# is not the case setup the exception handler for the non-ocall case.
	cmpq $0, %gs:SGX_OCALL_EXIT_CALLED
	je .Lsetup_exception_handler

	# We are interrupted during the never-returning OCALL_EXIT. Because the
	# thread is going to exit anyway, we can ignore this exception.
	jmp .Lignore_exception

.Lhandle_interrupted_ocall:
	# At this point, we are in the exception handler and
	# SGX_PRE_OCALL_STACK=<trusted pointer to enclave stack>. I.e. we are
	# interrupted during handling of enclave's sgx_ocall/return_from_ocall
	# assembly code.
	#
	# Triggering the exception handler while SGX_PRE_OCALL_STACK != 0 would
	# be problematic because it could itself issue nested ocalls. This
	# would mean the SGX_PRE_OCALL_STACK logic would need to handle
	# nesting.
	#
	# Instead if we're in such situation, we emulate it as if %rip reached to
	# the safe point, .Lreturn_from_ocall_after_stack_restore.
	#
	# Ocall sequence:
	#  1. call sgx_ocall()
	#  2. SGX_PRE_OCALL_STACK=%rsp: save trusted stack
	#  3. EEXIT
	#  4. untrusted PAL which iss


放すのではなく、この批判の他の部分に取り組みましょう。テールエミッション。確かに目的がありますが、モネロが不足することはなく、法定通貨と同じように機能する証拠として、テールエミッションの単なる存在を見る人もいるかもしれません。これも真実ではありません。フィアットはパーセンテージベースのインフレモデルを持っており、これでさえ決まったものではなく、腐敗しやすい人間の不透明な体の影響を受けます。これは、直線的にインフレするモネロとは対照的であり、時間の経過とともにインフレがゼロに近づくことを意味します。また、法定通貨とは異なり、インフレを簡単に計算して確実に計画できることも意味します。
';

  @override
  String get knowledge250Sbsov250Sbdescription => 'XMR は優れた交換媒体ですが、BTC はより優れた価値の保存手段ですか?私たちは同意しません。 BTC の透明性は、人々が認識している以上に、価値の保存手段としての特性を損なうものです。';

  @override
  String get knowledge250Sbsov250Sbtitle => 'モネロがビットコインより優れた価値の保存手段である理由';

  @override
  String get knowledge250Sbstealth250Sb0250Sbtext => '
Monero は、プライバシーに対する 3 つのアプローチを実装しています。これらのテクノロジーは、 リング署名  であり、実際の出力 (送信者) を隠します。RingCT は金額を隠し、ステルス アドレスは受信者を隠します。今日は、これらの最後の技術であるステルス アドレスについて説明します。
\n\n
個人が送信先を隠したい理由はたくさんあります。これらの例はすべて不快な行動であると私たちに納得させようとする人を決して許してはなりません。人気のない政党への寄付、慈善団体への寄付、または文化が「キャンセルされた」と見なすものへの支援などはすべて、反響を恐れて支出行動を隠したいと思うかもしれないが、本質的には完全に正当である。
\n\n
透過的なブロックチェーンでは、トランザクションを送信するアドレスはすべての人に表示されます。マイナー自身がお金の行き先に同意しない場合、ブロックにマイニングしないことを選択できることを考慮することが重要です。これを可能にする唯一の方法は、


etLaoshiIdNumber() {
			return laoshiIdNumber;
		}
		/**
		* 设置： 老师身份证号
		*/
		public void setLaoshiIdNumber(String laoshiIdNumber) {
			this.laoshiIdNumber = laoshiIdNumber;
		}

		/**
		* 获取： 老师头像
		*/
		public String getLaoshiPhoto() {
			return laoshiPhoto;
		}
		/**
		* 设置： 老师头像
		*/
		public void setLaoshiPhoto(String laoshiPhoto) {
			this.laoshiPhoto = laoshiPhoto;
		}

		/**
		* 获取： 老师邮箱
		*/
		public String getLaoshiEmail() {
			return laoshiEmail;
		}
		/**
		* 设置： 老师邮箱
		*/
		public void setLaoshiEmail(String laoshiEmail) {
			this.laoshiEmail = laoshiEmail;
		}

	@Override
	public String toString() {
		return "JingsaiView{" +
			", jingsaiValue=" + jingsaiValue +
			", shangxiaValue=" + shangxiaValue +
			", laoshiName=" + laoshiName +
			", laoshiPhone=" + laoshiPhone +
			", laoshiIdNumber=" + laoshiIdNumber +
			", laoshiPhoto=" + laoshiPhoto +
			", laoshiEmail=" + laoshiEmail +
			"} " + super.toString();
	}
}
package com.entity.model;

import com.entity.DictionaryEntity;

import com.baomidou.mybatisplus.annotations.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;

/**
 * 字典
 * 接收传参的实体类
 *（实际开发中配合移动端接口开发手动去掉些没用的字段， 后端一般用entity就够用了）
 * 取自ModelAndView 的model名称
 */
public class DictionaryModel implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    private Long id;

    /**
     * 字段
     */
    private String dicCode;

    /**
     * 字段名
     */
    private String dicName;

    /**
     * 编码
     */
    private Integer codeIndex;

    /**
     * 编码名字
     */
    private String indexName;

    /**
     * 父字段id
     */
    private Integer superId;

    /**
     * 备注
     */
    private String beizhu;

    /**
     * 创建时间
     */
    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
	@DateTimeFormat
    private Date createTime;

    /**
	 * 获取：主键
	 */
    public Long getId() {
        return id;
    }

    /**
	 * 设置：主键
	 */
    public void setId(Long id) {
        this.id = id;
    }
    /**
	 * 获取：字段
	 */
    public String getDicCode() {
        return dicCode;
    }

    /**
	 * 设置：字段
	 */
    public void setDicCode(String dicCode) {
        this


engrossed in reading a large book. The child, '
        'dressed in a light blue sleeveless top and pink pants, is surrounded by a cozy and homely environment. '
        'The bed is adorned with a patterned blanket, and a white cloth is casually draped over the side. '
        'In the background, a crib and a television are visible, adding to the domestic setting. '
        'The child is seen flipping through the pages of the book, occasionally pausing to look at the pages, '
        'and then continuing to turn them. The video captures the child\'s focused and curious demeanor as they '
        'explore the contents of the book, creating a heartwarming '
        'scene of a young reader immersed in their world of stories.')[:len(response)]

def test_valley():
    pt_engine = PtEngine('bytedance-research/Valley-Eagle-7B')
    _infer_model(pt_engine)

def test_qwen2_5_vl():
    os.environ['FPS'] = '1'
    pt_engine = PtEngine('Qwen/Qwen2.5-VL-7B-Instruct')
    messages = [{'role': 'user', 'content': '<video>What happened in the video?'}]
    videos = ['https://modelscope-open.oss-cn-hangzhou.aliyuncs.com/images/baby.mp4']
    response = _infer_model(pt_engine, messages=messages, videos=videos)
    pt_engine.default_template.template_backend = 'jinja'
    response2 = _infer_model(pt_engine, messages=messages, videos=videos)
    assert response == response2 == (
        'In the video, a baby is sitting on a bed and appears to be interacting with an open book. '
        'The baby seems curious and is touching the pages of the book, possibly exploring its contents or '
        'simply playing with it. The setting looks like a cozy bedroom, and the baby is wearing sunglasses, '
        'which adds a playful and endearing touch to the scene.')

if __name__ == '__main__':
    from swift.llm import PtEngine, RequestConfig, get_template
    from swift.utils import get_logger, seed_everything
    logger = get_logger()
    # test_qwen2_vl()
    # test_internvl2_5()
    # test_xcomposer2_5()
    # test_internvl2_5_mpo()
    # test_mplug3()
    # test_minicpmv()
    # test_minicpmo()
    # test_valley()
    test_qwen2_5_vl()


FROUND_TO_ZERO        // 截断

_MM_FROUND_CUR_DIRECTION  // 使用 MXCSR.RC； 请参见 _MM_SET_ROUNDING_MODE

_mm_maskz_roundscale_round_ss⚠Experimental<span class="stab portability" title="Available on (x86 or x86-64) and target feature `avx512f` only">(x86 or x86-64) and avx512f

将 b 中的下部单精度 (32-bit) 浮点元素四舍五入为 imm8 指定的分数位数，并使用零掩码 k 将结果存储在 dst 的下部元素中 (当未设置掩码位 0 时该元素清零)，并将上面的 3 个包装的元素从 a 复制到 dst 的上面的元素。

根据 imm8[2: 0] 参数进行舍入，该参数可以是以下之一：

_MM_FROUND_TO_NEAREST_INT // 舍入到最接近的值

_MM_FROUND_TO_NEG_INF     // 向下取整

_MM_FROUND_TO_POS_INF     // 向上舍入

_MM_FROUND_TO_ZERO        // 截断

_MM_FROUND_CUR_DIRECTION  // 使用 MXCSR.RC； 请参见 _MM_SET_ROUNDING_MODE

_mm_maskz_roundscale_sd⚠Experimental<span class="stab portability" title="Available on (x86 or x86-64) and target feature `avx512f` only">(x86 or x86-64) and avx512f

将 b 中的下部双精度 (64-bit) 浮点元素四舍五入到 imm8 指定的分数位数，使用零掩码 k 将结果存储在 dst 的下部元素中 (当未设置掩码位 0 时该元素清零)，并将上一个元素从 a 复制到 dst 的上一个元素。

根据 imm8[2: 0] 参数进行舍入，该参数可以是以下之一：

_MM_FROUND_TO_NEAREST_INT // 舍入到最接近的值

_MM_FROUND_TO_NEG_INF     // 向下取整

_MM_FROUND_TO_POS_INF     // 向上舍入

_MM_FROUND_TO_ZERO        // 截断

_MM_FROUND_CUR_DIRECTION  // 使用 MXCSR.RC； 请参见 _MM_SET_ROUNDING_MODE

<a class="fn" href="fn._mm_maskz_roundscale_ss.


Shell，从而获取服务器权限。

**修复建议**

**目前官方已发布安全版本，受影响用户可下载安装。**

**下载链接：**

https://github.com/star7th/showdoc

**Spring Cloud数据流中的任意文件写入漏洞**

**漏洞类型：**任意文件写入

**漏洞等级：**高危

**漏洞详情：**

Skipper服务器能够接收上传包请求。然而，由于对上传路径的不正确清理，可以访问skipper服务器API的恶意用户可以使用特制的上传请求将任意文件写入文件系统上的任何位置，甚至可能危及服务器。

**修复建议**

**目前官方已发布安全版本，受影响用户可下载安装。**

****
**下载链接：**

https://spring.io/projects/spring-cloud-dataflow

**检测方式**

魔方外部攻击面管理系统EASM（SaaS）、魔方网络资产攻击面管理系统CAASM、魔方漏洞管理系统CVM均已收录以上漏洞影响资产的指纹识别规则，详情请登录系统查看。

**END**

![](https://mmbiz.qpic.cn/sz_mmbiz_gif/ZTu8ibzLzefGgSVia7uKcm8GsQ1O7ibMmTpNnhtibke6ibLicqWLfnqHfYjCfJw0gfEdb9x5czavV05yxCjpfWYvyTdA/640?wx_fmt=gif "")

![](https://mmbiz.qpic.cn/sz_mmbiz_png/ZTu8ibzLzefGgSVia7uKcm8GsQ1O7ibMmTpBG4saEIPzh7ibiagsaSJrXicNpFVlAibVEL4oOzGXWNGW2m1mpaAkn4V2g/640?wx_fmt=png "")

#  500万美元！天价安卓0day漏洞暗网开卖
 网络安全应急技术国家工程中心   2024-06-17 15:49

**名为Sp3ns3r的泄露论坛用户于2024年6月16日（星期日）止午 6：50发帖，声称其掌握安卓操作系统的某个RCE，该漏洞利用为零点击，威力无比，但该泄露者并在漏洞论坛上并没有给出报价。跟帖者表示是不是需要500万美元。短短的贴文只透露了有限的信息，该漏洞可用于安卓11、12、13、14版本，是零点击利用，Paylaod仅仅是MMS，应该指就是一条条多媒体短信，效果是能够实现对安卓手机的完全控制。留下了联系方式 https://t.me/CodeBreachLab/117（这个Telegeam频道上列出的信息与泄露论坛上一致，仅仅多了一项报价，500万美元）和htt


margin-left: calc(-1 * #{v(list-icon-size)});
    margin-top: calc((#{v(paragraph-02-line-height)} - #{$dot-size}) / 2);
    transform: translateX(-50%);

    [dir='rtl'] & {
      margin-right: calc(-1 * #{v(list-icon-size)});
      margin-left: nx-spacer(s);
      transform: translateX(50%);
    }

    @media screen and (forced-colors: active) {
      background-color: CanvasText !important;
    }
  }
}

:host(ul.nx-list--small) ::ng-deep > li:not(.nx-list__icon-wrapper):before {
  margin-top: calc((#{v(paragraph-03-line-height)} - #{$dot-size}) / 2);
}

:host(ul.nx-list--xsmall) ::ng-deep > li:not(.nx-list__icon-wrapper):before {
  margin-top: calc((#{v(paragraph-04-line-height)} - #{$dot-size}) / 2);
}

// ordered lists (ol) have no dot but the counter, always exclude items with icons
:host(ol) ::ng-deep > li:not(.nx-list__icon-wrapper) {
  &:before {
    counter-increment: list;
    content: counter(list);
    position: absolute;
    font-size: inherit;
    font-weight: bold;
    display: inline-block;
    width: v(list-icon-size);
    text-align: center;
    left: 0;

    [dir='rtl'] & {
      right: 0;
      left: auto;
    }
  }
}

:host ::ng-deep li > ::ng-deep ol,
:host ::ng-deep li > ::ng-deep ul {
  margin-bottom: nx-spacer(s);
  margin-top: nx-spacer(s);
}

// ordered lists (ol) with option `ordered-circle` have a counter with a circle around
:host(ol.nx-list--ordered-circle) ::ng-deep > li:not(.nx-list__icon-wrapper) {
  &:before {
    width: v(list-circle-size);
    @include type-style(paragraph-03);
    color: greenyellow;
    color: v(list-circle-text-color);
    left: 0;
    top: calc((#{v(paragraph-02-line-height)} - #{v(paragraph-03-line-height)}) / 2);
    z-index: 2;

    :host-context([dir='rtl']) & {
      right: 0;
      left: auto;
    }

    @media screen and (forced-colors: active) {
      border: nx-border-size(xs) solid CanvasText;
      border-radius: 50%;
    }
  }

  &:after {
    border-radius: $dot-border-radius;
    width: v(list-circle-size);
    height: v(list-circle-size);
    background-color: v(list-icon-color);
    left: 0;
    top: calc((#{v(paragraph-02-line-height)} - #{v(list-circle-size)}) / 2);
    content: '';
    position: absolute;

    [dir='rtl'] & {
      right: 0;
      left: auto;
    }

    @media screen and (forced-colors: active) {
      color: CanvasText;
    }
  }
}

:host(ol.nx-list--ordered-circle.nx-list--small) ::ng-deep > li:not(.nx-list__icon-wrapper) {
  &:before {
    top: calc((#{v(paragraph-03-line-height)} - #{v(paragraph-03-line-height)}) / 2);
  }

  &:after {
    top: calc((#{v(paragraph-03-line-heigh


Wrist
		/// Level: 55
		/// Class: Armor
		/// </summary>
		RubicundArmguards = 11679,
		/// <summary>
		/// Level: 1
		/// Class: Quest
		/// </summary>
		EridansVial = 11682,
		/// <summary>
		/// Weapon
		/// Level: 60
		/// Class: Weapon
		/// </summary>
		Ironfoe = 11684,
		/// <summary>
		/// Shoulder
		/// Level: 55
		/// Class: Armor
		/// </summary>
		SplinthideShoulders = 11685,
		/// <summary>
		/// Waist
		/// Level: 55
		/// Class: Armor
		/// </summary>
		GirdleOfBeastialFury = 11686,
		/// <summary>
		/// Weapon
		/// Level: 55
		/// Class: Weapon
		/// </summary>
		GrizzlesSkinner = 11702,
		/// <summary>
		/// Waist
		/// Level: 55
		/// Class: Armor
		/// </summary>
		StonewallGirdle = 11703,
		/// <summary>
		/// Shoulder
		/// Level: 55
		/// Class: Armor
		/// </summary>
		DregmetalSpaulders = 11722,
		/// <summary>
		/// Level: 1
		/// Class: Quest
		/// </summary>
		GoodsteelsBalancedFlameberge = 11723,
		/// <summary>
		/// Level: 1
		/// Class: Quest
		/// </summary>
		OverduePackage = 11724,
		/// <summary>
		/// Level: 1
		/// Class: Quest
		/// </summary>
		SolidCrystalLegShaft = 11725,
		/// <summary>
		/// Chest
		/// Level: 57
		/// Set: The Gladiator (Id: 1)
		/// Class: Armor
		/// </summary>
		SavageGladiatorChain = 11726,
		/// <summary>
		/// Level: 1
		/// Class: Quest
		/// </summary>
		GoodsteelLedger = 11727,
		/// <summary>
		/// Legs
		/// Level: 57
		/// Set: The Gladiator (Id: 1)
		/// Class: Armor
		/// </summary>
		SavageGladiatorLeggings = 11728,
		/// <summary>
		/// Head
		/// Level: 57
		/// Set: The Gladiator (Id: 1)
		/// Class: Armor
		/// </summary>
		SavageGladiatorHelm = 11729,
		/// <summary>
		/// Hand
		/// Level: 57
		/// Set: The Gladiator (Id: 1)
		/// Class: Armor
		/// </summary>
		SavageGladiatorGrips = 11730,
		/// <summary>
		/// Feet
		/// Level: 57
		/// Set: The Gladiator (Id: 1)
		/// Class: Armor
		/// </summary>
		SavageGladiatorGreaves = 11731,
		/// <summary>
		/// Level: 50
		/// Class: Recipe
		/// </summary>
		LibramOfRumination = 11732,
		/// <summary>
		/// Level: 50
		/// Class: Recipe
		/// </summary>
		LibramOfConstitution = 11733,
		/// <summary>
		/// Level: 50
		/// Class: Recipe
		/// </summary>
		LibramOfTenacity = 11734,
		/// <summary>
		/// Head
		/// Level: 57
		/// Class: Armor
		/// </summary>
		RagefuryEyepatch = 11735,
		/// <summary>
		/// Level: 50
		/// Class: Recipe
		/// </summary>
		LibramOfResilience = 11736,
		/// <summary>
		/// Level: 50
		/// Class: Recipe
		/// </summary>
		LibramOfVoracity = 11737,
		/// <summary>
		/// Bag
		/// Level: 55
		/// Class: Container
		/


com o responsável, Senhor da Guerra Gorchuk. O que você me diz, $c? Você vai ajudar com os preparativos vitais?",
    ["O"] = "Fale com o Senhor da Guerra Gorchuk no Vale dos Espíritos de Orgrimmar.",
    ["T"] = "A Horda precisa da sua ajuda!",
  },
  [8794] = {
    ["D"] = "Olá, estou feliz que você tenha decidido me ouvir. A Horda precisa de toda a ajuda possível para se preparar para a Guerra de Ahn\'Qiraj, e isso significa que precisamos de você! Mesmo agora, enquanto falamos, coletores oficiais estão reunindo o material necessário para a guerra que se aproxima, mas não conseguiremos atingir nossos objetivos sem a sua ajuda, $N!$B$BVocê deveria falar com o responsável, Senhor da Guerra Gorchuk. O que você me diz, $c? Você vai ajudar com os preparativos vitais?",
    ["O"] = "Fale com o Senhor da Guerra Gorchuk no Vale dos Espíritos de Orgrimmar.",
    ["T"] = "A Horda precisa da sua ajuda!",
  },
  [8795] = {
    ["D"] = "Olá, estou feliz que você tenha decidido me ouvir. A Aliança precisa de toda a ajuda possível para se preparar para a Guerra de Ahn\'Qiraj, e isso significa que precisamos de você! Mesmo agora, enquanto falamos, coletores oficiais estão reunindo o material necessário para a guerra que se aproxima, mas não conseguiremos atingir nossos objetivos sem a sua ajuda, $N!$B$BVocê deveria falar com o responsável, Queda de neve do marechal de campo. O que você me diz, $c? Você vai ajudar com os preparativos vitais?",
    ["O"] = "Fale com o Marechal de Campo Neve na Ala Militar de Altaforja.",
    ["T"] = "A Aliança precisa da sua ajuda!",
  },
  [8796] = {
    ["D"] = "Olá, estou feliz que você tenha decidido me ouvir. A Aliança precisa de toda a ajuda possível para se preparar para a Guerra de Ahn\'Qiraj, e isso significa que precisamos de você! Mesmo agora, enquanto falamos, coletores oficiais estão reunindo o material necessário para a guerra que se aproxima, mas não conseguiremos atingir nossos objetivos sem a sua ajuda, $N!$B$BVocê deveria falar com o responsável, Queda de neve do marechal de campo. O que você me diz, $c? Você vai ajudar com os preparativos vitais?",
    ["O"] = "Fale com o Marechal de Campo Neve na Ala Militar de Altaforja.",
    ["T"] = "A Aliança precisa da sua ajuda!",
  },
  [8797] = {
    ["D"] = "Olá, estou feliz que você tenha decidido me ouvir. A Aliança precisa de toda a ajuda possível para se preparar para a Guerra de Ahn\'Qiraj, e isso significa que precisamos de você! Mesmo agora, enquanto falamos, coletores oficiais estão reunindo o material necessário para a guerra que se aproxima, mas não conseguiremos atingir nossos objetivos sem a sua ajuda, $N!$B$BVocê deveria falar com o responsável, Queda de neve do marechal de campo. O que você me diz, $c? Você vai a


ure(!ctx->c.je(noerror_label));

            x86_do_fail(ctx, WO_FAIL_INDEX_FAIL, err, rt_ip);

            wo_assure(!ctx->c.bind(noerror_label));
            return true;
        }
        virtual bool ir_iddict(X64CompileContext* ctx, unsigned int dr, const byte_t*& rt_ip)override
        {
            WO_JIT_ADDRESSING_N1;
            WO_JIT_ADDRESSING_N2;

            auto dict = ctx->c.newIntPtr();
            auto op2 = opnum2.gp_value();
            auto err = ctx->c.newIntPtr();

            wo_assure(!ctx->c.mov(
                dict, asmjit::x86::qword_ptr(opnum1.gp_value(), offsetof(value, m_dictionary))));

            asmjit::InvokeNode* invoke_node;
            wo_assure(!ctx->c.invoke(&invoke_node, (intptr_t)&_vmjitcall_iddict,
                asmjit::FuncSignatureT<const char*, wo::value*, wo::value*, wo::value*>()));

            invoke_node->setArg(0, ctx->_vmcr);
            invoke_node->setArg(1, dict);
            invoke_node->setArg(2, op2);
            invoke_node->setRet(0, err);

            auto noerror_label = ctx->c.newLabel();
            wo_assure(!ctx->c.cmp(err, asmjit::Imm(0)));
            wo_assure(!ctx->c.je(noerror_label));

            x86_do_fail(ctx, WO_FAIL_INDEX_FAIL, err, rt_ip);

            wo_assure(!ctx->c.bind(noerror_label));
            return true;
        }
        virtual bool ir_mkcontain(X64CompileContext* ctx, unsigned int dr, const byte_t*& rt_ip)override
        {
            WO_JIT_ADDRESSING_N1;
            uint16_t size = WO_IPVAL_MOVE_2;

            write_barrier_for_opnum1_if_write_global(ctx, opnum1, dr);

            auto op1 = opnum1.gp_value();

            asmjit::InvokeNode* invoke_node;

            if ((dr & 0b01) == 0)
                // Make array.
                wo_assure(!ctx->c.invoke(&invoke_node, (intptr_t)&vmbase::make_array_impl,
                    asmjit::FuncSignatureT< wo::value*, wo::value*, uint16_t, wo::value*>()));
            else
                // Make dict.
                wo_assure(!ctx->c.invoke(&invoke_node, (intptr_t)&vmbase::make_map_impl,
                    asmjit::FuncSignatureT< wo::value*, wo::value*, uint16_t, wo::value*>()));

            invoke_node->setArg(0, op1);
            invoke_node->setArg(1, asmjit::Imm(size));
            invoke_node->setArg(2, ctx->_vmssp);
            invoke_node->setRet(0, ctx->_vmssp);
            return true;
        }
        virtual bool ir_idstr(X64CompileContext* ctx, unsigned int dr, const byte_t*& rt_ip)override
        {
            WO_JIT_ADDRESSING_N1;
            WO_JIT_ADDRESSING_N2;

            auto str = ctx->c.newIntPtr();
            auto idx = ctx->c.newInt64();

            if (!opnum1.is_constant())
                wo_assure(!ctx->c.mov(
                    str, asmjit::x86::qword_ptr(opnum1.gp_value(), offsetof(value, m_string))));

            if (!opnum2.is_constant())


 是否错误
 * @param onValueChange 输入值改变回调
 */
@Composable
fun StringInput(
    value: String,
    label: String,
    isError: Boolean,
    realOnly: Boolean = false,
    onValueChange: (String) -> Unit
) {
    CurrentTextField(
        modifier = Modifier.fillMaxWidth().padding(start = 24.dp, end = 72.dp, bottom = 3.dp),
        value = value,
        label = label,
        realOnly = realOnly,
        isError = isError,
        onValueChange = onValueChange
    )
}

/**
 * 数字输入框
 * @param value 输入框的值
 * @param label 输入框的标签
 * @param isError 是否错误
 * @param onValueChange 输入值改变回调
 */
@Composable
fun IntInput(value: String, label: String, isError: Boolean, onValueChange: (String) -> Unit) {
    val pattern = remember { Regex("^\\d+$") }
    OutlinedTextField(
        modifier = Modifier.fillMaxWidth().padding(start = 24.dp, end = 72.dp, bottom = 3.dp),
        value = value,
        onValueChange = { validityPeriod ->
            if (validityPeriod.isEmpty() || validityPeriod.matches(pattern)) {
                onValueChange(validityPeriod)
            }
        },
        label = { Text(label, style = MaterialTheme.typography.labelLarge) },
        singleLine = true,
        isError = isError,
        keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number)
    )
}

/**
 * 密码输入框
 * @param value 输入框的值
 * @param label 输入框的标签
 * @param isError 是否错误
 * @param onValueChange 输入值改变回调
 */
@Composable
fun PasswordInput(value: String, label: String, isError: Boolean, onValueChange: (String) -> Unit) {
    OutlinedTextField(
        modifier = Modifier.fillMaxWidth().padding(start = 24.dp, end = 72.dp, bottom = 3.dp),
        value = value,
        onValueChange = onValueChange,
        label = { Text(label, style = MaterialTheme.typography.labelLarge) },
        isError = isError,
        singleLine = true,
        visualTransformation = PasswordVisualTransformation(),
        keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Password)
    )
}

/**
 * 上传动画
 * @param dragging 是否在拖拽中
 * @param scope 协程作用域
 */
@Composable
fun UploadAnimate(dragging: Boolean, scope: CoroutineScope) {
    AnimatedVisibility(
        visible = dragging,
        enter = fadeIn() + slideIn(
            tween(
                durationMillis = 400, easing = LinearOutSlowInEasing
            )
        ) { fullSize -> IntOffset(fullSize.width, fullSize.height) },
        exit = slideOut(
            tween(
                durationMillis = 400, easing = FastOutLinearInEasing
            )
        ) { fullSize -> IntOffset(fullSize.width, fullSize.height) } + fadeOut(),
    ) {
        Card(
            modifier = Modifier.fillMaxSize(), colors = CardDefaults.cardColors(
                containerColor = MaterialTheme.colorScheme.background,
            )
        ) {
            LottieAnimation(scope, "files/upload.json")
        }
    }
}

/**
 * 加载中动画
 * @param visible 是否显示
 * @param scope 协程作用域
 */
@OptIn(ExperimentalFoundationApi::class)
@Composable
fun LoadingAnimate(visible:


partial), 42 - sizeof(lut_22_LUTKW_partial));
  _writeCommand(0x23);
  _writeDataPGM(lut_23_LUTWK_partial, sizeof(lut_23_LUTWK_partial), 42 - sizeof(lut_23_LUTWK_partial));
  _writeCommand(0x24);
  _writeDataPGM(lut_24_LUTKK_partial, sizeof(lut_24_LUTKK_partial), 42 - sizeof(lut_24_LUTKK_partial));
  _writeCommand(0x25);
  _writeDataPGM(lut_25_LUTBD_partial, sizeof(lut_25_LUTBD_partial), 42 - sizeof(lut_25_LUTBD_partial));
  _PowerOn();
  _using_partial_mode = true;
}

void GxEPD2_750_T7::_Update_Full()
{
  _writeCommand(0x12); //display refresh
  _waitWhileBusy("_Update_Full", full_refresh_time);
}

void GxEPD2_750_T7::_Update_Part()
{
  _writeCommand(0x12); //display refresh
  _waitWhileBusy("_Update_Part", partial_refresh_time);
}
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2023, Benoit BLANCHON
// MIT License

#pragma once

#include <ArduinoJson/Json/TextFormatter.hpp>
#include <ArduinoJson/Serialization/measure.hpp>
#include <ArduinoJson/Serialization/serialize.hpp>
#include <ArduinoJson/Variant/Visitor.hpp>

ARDUINOJSON_BEGIN_PRIVATE_NAMESPACE

template <typename TWriter>
class JsonSerializer : public Visitor<size_t> {
 public:
  static const bool producesText = true;

  JsonSerializer(TWriter writer) : _formatter(writer) {}

  FORCE_INLINE size_t visitArray(const CollectionData& array) {
    write('[');

    const VariantSlot* slot = array.head();

    while (slot != 0) {
      slot->data()->accept(*this);

      slot = slot->next();
      if (slot == 0)
        break;

      write(',');
    }

    write(']');
    return bytesWritten();
  }

  size_t visitObject(const CollectionData& object) {
    write('{');

    const VariantSlot* slot = object.head();

    while (slot != 0) {
      _formatter.writeString(slot->key());
      write(':');
      slot->data()->accept(*this);

      slot = slot->next();
      if (slot == 0)
        break;

      write(',');
    }

    write('}');
    return bytesWritten();
  }

  size_t visitFloat(JsonFloat value) {
    _formatter.writeFloat(value);
    return bytesWritten();
  }

  size_t visitString(const char* value) {
    _formatter.writeString(value);
    return bytesWritten();
  }

  size_t visitString(const char* value, size_t n) {
    _formatter.writeString(value, n);
    return bytesWritten();
  }

  size_t visitRawJson(const char* data, size_t n) {
    _formatter.writeRaw(data, n);
    return bytesWritten();
  }

  size_t visitSignedInteger(JsonInteger value) {
    _formatter.writeInteger(value);
    return bytesWritten();
  }

  size_t visitUnsignedInteger(JsonUInt value) {
    _formatter.writeInteger(value);
    return bytesWritten();
  }

  size_t visitBoolean(bool value) {
    _formatter.writeBoolean(value);
    return bytesWritten();
  }

  size_t visitNull() {
    _formatter.writeRaw("null");
    return bytesWritten();
  }

 protected:
  size_t bytesWritten() const {
    return _formatter.bytesWritten();
  }

  void write(char c) {
    _formatter.writeRaw


nUKh133C9utGwG1VnelbeZnft8+S5aPIcPpSOt6/NC03PutnF5WHXLcneMcvreV06pjBaPNb//q/Cvb96TN/61eMV9sRzmyrSUt724zB/bld8gbjefnlAXNZ9qru6mOvihNPq0xH0t5vviuc+W5f4FTcutdMtinSnVk2HIDy2+xTxZrI9pu5RPmr7F/dbiNrR/2v+HzuFD6Ujrfqzt/+s3/atf/2g9Tz3J5NZf4tEV/vCT9W7dts5WB+NrPWnxiW+ZckbUYuPUk1qtGyvNULm1oui0FV+bbjM0PlpL3nQNMTQSLbxxbCTV6bqhYkqez+b9diEjFxtJT0Jl9emJGXS/dNyWzN5I/BtArMyaxvSmoPtKaZ4eT2ZvWKmR6DmmDE+VrNxIeqUCSXkR0p4vZvN0e82XWrzDqrWQ9tToxzF95TSnc0jHaJXySMrnHPP3P72hh7xpmfJ5lffh3/Dd+YXjhjTospRf5UdId1GEetOMlVIbSTifWmndWimva6V6k8VGks431cE09eWcl56nPB+Gyp8aiKZ1lk+xTlbCeep6KU/1+1LlPCqXQ6pnqf5rWZXr4PTYsSx6peezcsmneTmfv2au7rdifvWm+Wqm9ba1sG2ZD+xaN/P35FXzdnALmv61cl1K6c1KHxRo/7T/u9D+l2qt63UX837z46/1FoOk+q/fmXy2W2Rb21I7P72o9PNBJb2p+IamqfUNNJ81yFQn4ss6LX860ARnVa2sYVoukNB4w1yq0NMFbmdNd4xhLIS0+1CALk3NWQGFbcP+tQF+FT9FpfVCGvNpA0iftgZpvVgA6dNXKpBBqQDTMebTm/afTxtQ2s7vM9eGFdarVq7MxNZvpg1w+lpMT9xX+PTtKlpp22m+i8zyPB7XHy+eT3qzmRVKavSzdE+Xlz4NT4PA3PaL01J55TK3TNOZGvStZXG/5TSW80qfV10dGy43ilm+zZ+XHnJYKptyOVWvr8yFy9fVm77VfZT3P82iW8me5ee0kcftynU2HaNcD+bLd37nsVhL5bSQlnK9kVmW6gtaP4YjDYCzdXz5x3o0V+9immqxbmg7Se/NmoZhuV2kdLoXFs8jncv92GZqpeAgcrucaf+0/4+1/bdvbia9yc1kKR9c11ceXqebdj7k303UWRTePghoAAAAAElFTkSuQmCC");
    border-style: solid;
    /* background-image: url('data:image/svg+xml,<svg width="294" height="124" viewBox="0 0 294 124" fill="none" xmlns="http://www.w3.org/2000/svg"><rect x="19.2577" y="121" width="255.485" height="3" rx="1.5" fill="white" fill-opacity="0.05"/><rect x="1.5" y="1.5" width="291" height="121" rx="11.5" stroke="url(%23paint0_linear_51_2)" stroke-opacity="0.09" stroke-width="3"/><defs><linearGradient id="paint0_linear_51_2" x1="147" y1="0" x2="147" y2="124" gradientUnits="userSpaceOnU


     case SelectorMatchResult.AlwaysThisType:
                    case SelectorMatchResult.AlwaysThisInstance:
                        return match;
                    case SelectorMatchResult.NeverThisInstance:
                        neverThisInstance = true;
                        break;
                    case SelectorMatchResult.Sometimes:
                        activators.Add(match.Activator!);
                        break;
                }
            }

            if (activators.Count > 0)
            {
                return new SelectorMatch(activators.Get());
            }
            else if (neverThisInstance)
            {
                return SelectorMatch.NeverThisInstance;
            }
            else
            {
                return SelectorMatch.NeverThisType;
            }
        }

        private protected override Selector? MovePrevious() => null;
        private protected override Selector? MovePreviousOrParent() => null;

        internal override void ValidateNestingSelector(bool inControlTheme)
        {
            var count = _selectors.Count;

            for (var i = 0; i < count; i++)
            {
                _selectors[i].ValidateNestingSelector(inControlTheme);
            }
        }

        private Type? EvaluateTargetType()
        {
            Type? result = null;

            var count = _selectors.Count;

            for (var i = 0; i < count; i++)
            {
                var selector = _selectors[i];
                if (selector.TargetType == null)
                {
                    return null;
                }
                else if (result == null)
                {
                    result = selector.TargetType;
                }
                else
                {
                    while (result is not null && !result.IsAssignableFrom(selector.TargetType))
                    {
                        result = result.BaseType;
                    }
                }
            }

            return result;
        }
    }
}


12, 17]);

  let mut nll_h = MemArray1d::<f32>::zeros(2);
  let mut nll_adj_h = MemArray1d::<f32>::zeros(2);
  let mut z = MemArray2d::<f32>::zeros([32, 2]);
  let mut dz = MemArray2d::<f32>::zeros([32, 2]);
  let mut loss_h: f32 = 0.0;

  let t = txn();
  data.deserialize(t, &mut target);
  loss.eval(t);
  dx.eval(t);
  nll.serialize(t, &mut nll_h);
  nll_adj.serialize(t, &mut nll_adj_h);
  x.serialize(t, &mut z);
  dx.serialize(t, &mut dz);
  loss.serialize(t, &mut loss_h);
  println!("DEBUG: {:?}", &nll_h.as_view().flat_slice().unwrap()[..]);
  println!("DEBUG: {:?}", &nll_adj_h.as_view().flat_slice().unwrap()[..]);
  println!("DEBUG: {:?}", &z.as_view().flat_slice().unwrap()[..]);
  println!("DEBUG: {:?}", &dz.as_view().flat_slice().unwrap()[..]);
  println!("DEBUG: {:?}", loss_h);
}

#[test]
fn test_gpu_op_dequantize() {
  println!();
  let x = ones(Rc::new(|_, conn: GPUDeviceConn| {
    GPUDeviceOuterBatchArray3d::<u8>::zeros([32, 32, 3], 1, conn)
  }));
  let y = x.dequantize(0.0_f32, 1.0_f32);

  let t = txn();
  y.eval(t);

  let mut z = MemArray4d::<f32>::zeros([32, 32, 3, 1]);
  println!("DEBUG: {:?}", &z.as_view().flat_slice().unwrap()[.. 10]);
  println!("DEBUG: {:?}", &z.as_view().flat_slice().unwrap()[32 * 32 * 3 - 10 ..]);
  y.serialize(t, &mut z);
  for k in 0 .. 32 * 32 * 3 {
    assert_eq!(z.as_view().flat_slice().unwrap()[k], 1.0 / 255.0);
  }
  println!("DEBUG: {:?}", &z.as_view().flat_slice().unwrap()[.. 10]);
  println!("DEBUG: {:?}", &z.as_view().flat_slice().unwrap()[32 * 32 * 3 - 10 ..]);
}

#[test]
fn test_gpu_gradient_descent() {
  println!();
  enable_static_graph_logging();
  enable_dynamic_graph_logging();

  let step_size: Val<f32> = src_init(0.0);
  let momentum: Val<f32> = src_init(0.0);

  let x = src(Rc::new(|_, conn: GPUDeviceConn| {
    GPUDeviceScalar::<f32>::zeros((), conn)
  }));
  let y = x.clone() * x.clone();

  let mut y_sink = sink(y.clone());
  let adj_x = x.adjoint(&mut y_sink).unwrap();

  let grad_step = x.clone().gradient_momentum_step(step_size.clone(), momentum.clone(), adj_x.clone());

  let mut x_h: f32 = 1.0;
  //let mut y_h: f32 = 0.0;
  let mut adj_x_h: f32 = 0.0;

  for iter_nr in 0 .. 10 {
    println!("DEBUG: iteration {}...", iter_nr);

    let t = txn();
    if iter_nr == 0 {


g jobs
		back.kubeClientset.(*fake.Clientset).Fake.PrependReactor("delete-collection", "jobs", errorReaction)

		// Call
		err := back.DeleteService(testService)
		if err != nil {
			t.Errorf("unexpected error: %v", err)
		}
	})
}

func TestKubeGetKubeClientset(t *testing.T) {
	clientset := fake.NewSimpleClientset()

	back := MakeKubeBackend(clientset, testConfig)

	if clientset != back.GetKubeClientset() {
		t.Error("the clientset obtained is not the same")
	}
}
package presenter

import (
	"github.com/gsabadini/go-clean-architecture/domain"
	"github.com/gsabadini/go-clean-architecture/usecase"
	"reflect"
	"testing"
	"time"
)

func Test_createAccountPresenter_Output(t *testing.T) {
	type args struct {
		account domain.Account
	}
	tests := []struct {
		name string
		args args
		want usecase.CreateAccountOutput
	}{
		{
			name: "Create account output",
			args: args{
				account: domain.NewAccount(
					"3c096a40-ccba-4b58-93ed-57379ab04680",
					"Testing",
					"07091054965",
					1000,
					time.Time{},
				),
			},
			want: usecase.CreateAccountOutput{
				ID:        "3c096a40-ccba-4b58-93ed-57379ab04680",
				Name:      "Testing",
				CPF:       "07091054965",
				Balance:   10,
				CreatedAt: "0001-01-01T00:00:00Z",
			},
		},
	}
	for _, tt := range tests {
		t.Run(tt.name, func(t *testing.T) {
			pre := NewCreateAccountPresenter()
			if got := pre.Output(tt.args.account); !reflect.DeepEqual(got, tt.want) {
				t.Errorf("[TestCase '%s'] Got: '%+v' | Want: '%+v'", tt.name, got, tt.want)
			}
		})
	}
}
package repository

import (
	"context"
	"time"

	"github.com/gsabadini/go-clean-architecture/domain"

	"github.com/pkg/errors"
	"go.mongodb.org/mongo-driver/bson"
)

type transferBSON struct {
	ID                   string    `bson:"id"`
	AccountOriginID      string    `bson:"account_origin_id"`
	AccountDestinationID string    `bson:"account_destination_id"`
	Amount               int64     `bson:"amount"`
	CreatedAt            time.Time `bson:"created_at"`
}

type TransferNoSQL struct {
	collectionName string
	db             NoSQL
}

func NewTransferNoSQL(db NoSQL) TransferNoSQL {
	return TransferNoSQL{
		db:             db,
		collectionName: "transfers",
	}
}

func (t TransferNoSQL) Create(ctx context.Context, transfer domain.Transfer) (domain.Transfer, error) {
	transferBSON := &transferBSON{
		ID:                   transfer.ID().String(),
		AccountOriginID:      transfer.AccountOriginID().String(),
		AccountDestinationID: transfer.AccountDestinationID().String(),
		Amount:               transfer.Amount().Int64(),
		CreatedAt:            transfer.CreatedAt(),
	}

	if err := t.db.Store(ctx, t.collectionName, transferBSON); err != nil {
		return domain.Transfer{}, errors.Wrap(err, "error creating transfer")
	}

	return transfer, nil
}

func (t TransferNoSQL) FindAll(ctx context.Context) ([]domain.Transfer, error) {
	var transfersBSON = make([]transferBSON, 0)

	if err := t.db.FindAll(ctx, t.collectionName, b


{'n': '2017', 'v': '2017'}, {'n': '2016', 'v': '2016'}, {'n': '2015', 'v': '2015'}, {'n': '2015之前', 'v': 'lt|2015'}]}, {'key': 'a', 'name': '地区', 'value': [{'n': '全部', 'v': ''}, {'n': '中国大陆', 'v': '中国大陆'}, {'n': '美国', 'v': '美国'}, {'n': '日本', 'v': '日本'}, {'n': '中国香港', 'v': '中国香港'}, {'n': '中国台湾', 'v': '中国台湾'}, {'n': '韩国', 'v': '韩国'}, {'n': '欧洲', 'v': '欧洲'}, {'n': '其他', 'v': '泰国'}]}, {'key': 'scat', 'name': '类型', 'value': [{'n': '全部', 'v': ''}, {'n': '剧情', 'v': '剧情'}, {'n': '动作', 'v': '动作'}, {'n': '科幻', 'v': '科幻'}, {'n': '喜剧', 'v': '喜剧'}, {'n': '战争', 'v': '战争'}, {'n': '爱情', 'v': '爱情'}, {'n': '恐怖', 'v': '恐怖'}, {'n': '伦理', 'v': '伦理'}]}], 3: [{'key': 'y', 'name': '年代', 'value': [{'n': '全部', 'v': ''},{'n': '2023', 'v': '2023'}, {'n': '2022', 'v': '2022'}, {'n': '2021', 'v': '2021'}, {'n': '2020', 'v': '2020'}, {'n': '2019', 'v': '2019'}, {'n': '2018', 'v': '2018'}, {'n': '2017', 'v': '2017'}, {'n': '2016', 'v': '2016'}, {'n': '2015', 'v': '2015'}, {'n': '2015之前', 'v': 'lt|2015'}]}, {'key': 'a', 'name': '地区', 'value': [{'n': '全部', 'v': ''}, {'n': '中国大陆', 'v': '中国大陆'}, {'n': '美国', 'v': '美国'}, {'n': '日本', 'v': '日本'}, {'n': '中国香港', 'v': '中国香港'}, {'n': '中国台湾', 'v': '中国台湾'}, {'n': '韩国', 'v': '韩国'}, {'n': '欧洲', 'v': '欧洲'}, {'n': '其他', 'v': '泰国'}]}, {'key': 'scat', 'name': '类型', 'value': [{'n': '全部', 'v': ''}, {'n': '剧情', 'v': '剧情'}, {'n': '动作', 'v': '动作'}, {'n': '科幻', 'v': '科幻'}, {'n': '喜剧', 'v': '喜剧'}, {'n': '战争', 'v': '战争'}, {'n': '爱情', 'v': '爱情'}, {'n': '恐怖', 'v': '恐怖'}, {'n': '伦理', 'v': '伦理'}]}], 4: [{'key': 'y', 'name': '年代', 'value': [{'n': '全部', 'v': ''},{'n': '2023', 'v': '2023'}, {'n': '2022', 'v': '2022'}, {'n': '2021', 'v': '2021'}, {'n': '2020', 'v': '2020'}, {'n': '2019', 'v': '2019'}, {'n': '2018', 'v': '2018'}, {'n': '2017', 'v': '2017'}, {'n': '2016', 'v': '2016'}, {'n': '2015', 'v': '2015'}, {'n': '2015之前', 'v':


tive<F, E> : Selective<ResourcePartialOf<F, E>>, ResourceApplicative<F, E> {
  override fun BR(): Bracket<F, E>
  override fun  ResourceOf<F, E, Either>.select(f: Kind<ResourcePartialOf<F, E>, (A) -> B>): Resource<F, E, B> =
    fix().flatMap { it.fold({ a -> Resource.just(a, BR()).ap(BR(), f.fix()) }, { b -> Resource.just(b, BR()) }) }
}

@Deprecated(IODeprecation)
interface ResourceMonad<F, E> : Monad<ResourcePartialOf<F, E>>, ResourceSelective<F, E> {
  override fun BR(): Bracket<F, E>
  override fun  ResourceOf<F, E, A>.flatMap(f: (A) -> ResourceOf<F, E, B>): Resource<F, E, B> =
    fix().flatMap { f(it).fix() }

  override fun  tailRecM(a: A, f: (A) -> Kind<ResourcePartialOf<F, E>, Either>): Resource<F, E, B> =
    Resource.tailRecM(BR(), a, f)

  override fun  Kind<ResourcePartialOf<F, E>, A>.map(f: (A) -> B): Resource<F, E, B> =
    fix().map(BR(), f)

  override fun  ResourceOf<F, E, A>.ap(ff: Kind<ResourcePartialOf<F, E>, (A) -> B>): Resource<F, E, B> =
    fix().ap(BR(), ff)

  override fun  ResourceOf<F, E, Either>.select(f: Kind<ResourcePartialOf<F, E>, (A) -> B>): Resource<F, E, B> =
    fix().flatMap { it.fold({ a -> Resource.just(a, BR()).ap(BR(), f.fix()) }, { b -> Resource.just(b, BR()) }) }
}

@Deprecated(IODeprecation)
interface ResourceSemigroup<F, E, A> : Semigroup<Resource<F, E, A>> {
  fun SR(): Semigroup
  fun BR(): Bracket<F, E>
  override fun Resource<F, E, A>.combine(b: Resource<F, E, A>): Resource<F, E, A> = combine(b, SR(), BR())
}

@Deprecated(IODeprecation)
interface ResourceMonoid<F, E, A> : Monoid<Resource<F, E, A>>, ResourceSemigroup<F, E, A> {
  fun MR(): Monoid
  override fun BR(): Bracket<F, E>
  override fun SR(): Semigroup = MR()
  override fun empty(): Resource<F, E, A> = Resource.empty(MR(), BR())
}

@Deprecated(IODeprecation)
interface ResourceMonadIO<F, E> : MonadIO<ResourcePartialOf<F, E>>, ResourceMonad<F, E> {
  fun FIO(): MonadIO<F>
  override fun BR(): Bracket<F, E>
  override fun  IO.liftIO(): Kind<ResourcePartialOf<F, E>, A> = FIO().run {
    Resource.run { liftIO().liftF(BR()) }
  }
}
package arrow.fx.internal

import arrow.core.Either
import arrow.fx.IODeprecation
import kotlinx.atomicfu.AtomicRef
import kotlinx.atomicfu.atomic

@Deprecated(IODeprecation)
class UnsafePromise {

  private sealed class State<out A> {
    object Empty : State<Nothing>()
    data class Waiting(val joiners: List<(Either<Throwable, A>) -> Unit>) : State()
    data class Full(val a: Either<Throwable, A>) : State()
  }

  private val state: AtomicRef