AstClass> by lazy {
		if (extending == null) {
			listOf(this)
		} else {
			listOf(this) + program[extending].thisAndAncestors
		}
	}

	fun getAllRelatedTypes() = (thisAndAncestors + allInterfacesInAncestors).toSet()

	fun getAllRelatedTypesIdsWithout0AtEnd() = getAllRelatedTypes().map { it.classId }
	fun getAllRelatedTypesIdsWith0AtEnd() = getAllRelatedTypesIdsWithout0AtEnd() + listOf(0)

	val ancestors: List<AstClass> by lazy { thisAndAncestors.drop(1) }
	val thisAncestorsAndInterfaces: Set<AstClass> by lazy { (thisAndAncestors + allDirectInterfaces).toSet() }

	val isJavaLangObject: Boolean = this.fqname == "java.lang.Object"
}

fun AstClass?.isNativeForTarget(targetName: TargetName): Boolean = (this?.nativeNameForTarget(targetName) != null)

fun List<AstClass>.sortedByExtending(): List<AstClass> {
	val list = this
	return list.dependencySorter(allowCycles = false) {
		listOf(it.parentClass).filterNotNull() + it.directInterfaces
	}
}

fun List<AstClass>.sortedByDependencies(): List<AstClass> {
	val classes = this.associateBy { it.name.fqname }
	fun resolveClassRef(ref: AstType.REF) = classes[ref.fqname]!!
	fun resolveMethodRef(ref: AstMethodRef) = resolveClassRef(ref.classRef)[ref]

	return this.dependencySorter(allowCycles = true) {
		val extending = it.extending?.fqname
		val implementing = it.implementing.map { classes[it.fqname]!! }
		val ext = if (extending != null) classes[extending] else null
		val ext2 = if (ext != null) listOf(ext) else listOf()
		val ext3 = it.staticInitMethod?.bodyDependencies?.allClasses?.map { classes[it.fqname]!! } ?: listOf()

		fun checkMethodsRecursive(method: AstMethod, explored: MutableSet<AstMethod> = hashSetOf()): MutableSet<AstMethod> {
			if (method !in explored) {
				explored.add(method)
				for (m in method.bodyDependencies.methods) {
					checkMethodsRecursive(resolveMethodRef(m), explored)
				}
			}
			return explored
		}

		val ext4 = if (it.staticInitMethod != null) {
			checkMethodsRecursive(it.staticInitMethod!!).toList().flatMap { it.bodyDependencies.allClasses }.map { classes[it.fqname]!! }
		} else {
			listOf()
		}
		//val ext3 = it.methods.flatMap { it.dependencies.allClasses.map { classes[it.fqname]!! } }
		// @TODO: Check fields too!
		ext2 + implementing + ext3 + ext4
	}
}

fun AstType.getRefClasses(): List<AstType.REF> = this.getRefTypesFqName().map { AstType.REF(it) }

data class AstReferences(
	val program: AstProgram?,
	val allSortedRefs: Set<AstRef> = setOf(),
	val allSortedRefsStaticInit: Set<AstRef> = setOf(),
	val classes: Set<AstType.REF> = setOf(),
	val methods: Set<AstMethodRef> = setOf(),
	val fields: Set<AstFieldRef> = setOf()
) {
	val allClasses: Set<AstType.REF> by lazy {
		classes + methods.flatMap { it.allClassRefs } + fields.flatMap { listOf(it.classRef) }
	}

	val fields2 by lazy { fields.map { program!![it] } }
}

interface AstAnnotated {
	val annotations: List<AstAnnotation>
	val annotationsList: AstAnnotationList
}

open class AstMember(
	val containingClass: AstClass,
	val name: String,
	val type: AstType,
	val genericType: AstType,
	val isStatic: Boolean = false,
	val visibility: AstVisibility = AstVisibility.PUBLIC,
	elementRe


, 1>(i, 0) - (1.0 / 3.0) * treps * Matrix<double, 3, 1>::Ones();
        dev_eps.tail<3>() = eps.block<3, 1>(i + 3, 0);

        norm_dev_eps = dev_eps.norm();
        buf1         = bulk_modulus[mat_index] * treps;

        if (norm_dev_eps <= eps_crit[mat_index]) {
            buf2                                 = 2.0 * shear_modulus[mat_index];
            plastic_flag[element_idx](i / n_str) = mat_index;
        } else {
            buf2 = (b * yield_stress[mat_index] + a * E_s[mat_index] * hardening_parameter[mat_index] *
                                                      (norm_dev_eps - eps_crit[mat_index])) /
                   norm_dev_eps;
            plastic_flag[element_idx](i / n_str) = this->n_mat + mat_index;
        }
        sigma.block<3, 1>(i, 0).setConstant(buf1);
        sigma.block<3, 1>(i, 0) += buf2 * dev_eps.head<3>();
        sigma.block<3, 1>(i + 3, 0) = buf2 * dev_eps.tail<3>();
    }

  private:
    vector<double> hardening_parameter;
    vector<double> E_s;
    double         a = 2. / 3;
    double         b = sqrt(a);
};

class PseudoPlasticNonLinearHardening : public PseudoPlastic {
  public:
    PseudoPlasticNonLinearHardening(vector<double> l_e, json materialProperties)
        : PseudoPlastic(l_e, materialProperties)
    {
        try {
            hardening_exponent = materialProperties["hardening_exponent"].get<vector<double>>();
            eps_0              = materialProperties["eps_0"].get<vector<double>>(); // ε0 parameter
        } catch (const std::exception &e) {
            throw std::runtime_error("Missing material properties for the requested material model.");
        }

        eps_crit.resize(n_mat);
        for (int i = 0; i < n_mat; ++i) {
            eps_crit[i] = eps_0[i] * pow(yield_stress[i] / (3.0 * shear_modulus[i] * eps_0[i]), 1.0 / (1.0 - hardening_exponent[i]));
        }
    }

    void get_sigma(int i, int mat_index, ptrdiff_t element_idx) override
    {
        treps             = eps.block<3, 1>(i, 0).sum();
        dev_eps.head<3>() = eps.block<3, 1>(i, 0) - (1.0 / 3.0) * treps * Matrix<double, 3, 1>::Ones();
        dev_eps.tail<3>() = eps.block<3, 1>(i + 3, 0);

        norm_dev_eps = sqrt(2.0 / 3.0) * dev_eps.norm(); // ε_eq

        buf1 = bulk_modulus[mat_index] * treps;
        sigma.block<6, 1>(i, 0).setConstant(0);
        if (norm_dev_eps <= eps_crit[mat_index]) {
            buf2 = 2.0 * shear_modulus[mat_index];
            sigma.block<3, 1>(i, 0).setConstant(buf1);
            sigma.block<3, 1>(i, 0) += buf2 * dev_eps.head<3>();
            sigma.block<3, 1>(i + 3, 0) = buf2 * dev_eps.tail<3>();

            plastic_flag[element_idx](i / n_str) = mat_index;
        } else {
            buf2 = sqrt(2.0 / 3.0) * yield_stress[mat_index] *
                   pow(norm_dev_eps / eps_0[mat_index], hardening_exponent[mat_index]);
            sigma.block<3, 1>(i, 0).setConstant(buf1);
            sigma.block<6, 1>(i, 0) += buf2 * dev_eps / dev_eps.norm();

            plastic_flag[element_idx](i / n_str) = this->n_mat + mat_index;
        }
    }

  private:
    vector<double> hardening_exponent;
    vector<double> eps_0;
};

#endif // PSEUDOPLASTIC_H


ng _metaSrc(String className, AnnotationType annotation) => '  static const ${metaStructName(annotation)} meta = _\$metaFor$className;';

  String _propsGetterSrc(AnnotationType annotation) => isAbstract(annotation) ? '  Map get ${isProps(annotation) ? "props" : "state"};' : '';

  String _propsOrStateSrc(AnnotationType annotation, {String body = '', String annotationArg = ''}) {
    if (isMixin(annotation)) {
      return '';
    }

    final className = isProps(annotation) ? propsClassName : stateClassName;
    final propsOrStateKeyword = isProps(annotation) ? 'Props' : 'State';
    var buffer = StringBuffer();
    if (!isMixinBasedBoilerplate) {
      buffer.writeln('${_annotationSrc(annotation, annotationArg: annotationArg)}\n${_classKeyword(annotation)} _\$$className$typeParamSrc {$body\n}\n');
    } else {
      if (shouldIncludeAnnotations) {
        buffer.writeln('${_annotationSrc(annotation, annotationArg: annotationArg)}');
      }
      if (shouldIncludePropsAlias) {
       buffer.writeln('mixin ${className}Mixin on Ui$propsOrStateKeyword {$body\n}\nclass $className = Ui$propsOrStateKeyword with ${className}Mixin;');
      } else {
        buffer.writeln('mixin $className on Ui$propsOrStateKeyword {$body\n}\n');
      }
    }
    if (backwardsCompatible) {
      buffer
        ..writeln('${_classKeyword(annotation)} $className$typeParamSrc')
        ..writeln('    extends _\$$className$typeParamSrcWithoutBounds with _\$${className}AccessorsMixin$typeParamSrcWithoutBounds {')
        ..writeln(_propsGetterSrc(annotation))
        ..writeln(_metaSrc(className, annotation))
        ..writeln('}\n');
    }
    return buffer.toString();
  }

  String _propsOrStateMixinSrc(AnnotationType annotation, {String body = '', String annotationArg = '', int? index}) {
    if (!isMixin(annotation)) {
      return '';
    }

    final namePrefix = backwardsCompatible ? '' : '_\$';
    final className = '$namePrefix${isProps(annotation) ? propsMixinClassName : stateMixinClassName}';
    var buffer = StringBuffer();
    final indexStr = '${index ?? ''}';
    buffer
      ..writeln('${_annotationSrc(annotation, annotationArg: annotationArg)}\nabstract class $className$indexStr$typeParamSrc {')
      ..writeln(_propsGetterSrc(annotation));
    if (backwardsCompatible) {
      buffer.writeln(_metaSrc('$className$indexStr', annotation));
    }
    return (buffer
      ..writeln(body)
      ..writeln('}')).toString();

  }
}

Iterable<T> expectLengthAndAllOfType<T>(Iterable<Object> items, int count) {
  expect(items, List.generate(count, (i) => isA<T>()));
  return items.cast<T>();
}

Iterable<T> expectAllOfType<T>(Iterable<Object> items) {
  expect(items, everyElement(isA<T>()));
  return items.cast<T>();
}

T expectSingleOfType<T>(Iterable<Object> items) {
  expect(items, [isA<T>()]);
  return items.cast<T>().single;
}
// Copyright 2019 Workiva Inc.
//
// 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.

library memo_test;

import 'package:over_react_test/over_react_test.dart';
import 'package:test/test.dart';
import 'package:over_


# coding: utf-8
# Copyright (c) 2016, 2025, Oracle and/or its affiliates.  All rights reserved.
# This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.

# NOTE: This class is auto generated by OracleSDKGenerator. DO NOT EDIT. API Version: 20181201

from oci.util import formatted_flat_dict, NONE_SENTINEL, value_allowed_none_or_none_sentinel  # noqa: F401
from oci.decorators import init_model_state_from_kwargs

@init_model_state_from_kwargs
class SensitiveDataModelSensitiveTypeSummary(object):
    """
    Summary of sensitive types present in a sensitive data model.
    """

    def __init__(self, **kwargs):
        """
        Initializes a new SensitiveDataModelSensitiveTypeSummary object with values from keyword arguments.
        The following keyword arguments are supported (corresponding to the getters/setters of this class):

        :param sensitive_type_id:
            The value to assign to the sensitive_type_id property of this SensitiveDataModelSensitiveTypeSummary.
        :type sensitive_type_id: str

        :param count:
            The value to assign to the count property of this SensitiveDataModelSensitiveTypeSummary.
        :type count: int

        """
        self.swagger_types = {
            'sensitive_type_id': 'str',
            'count': 'int'
        }
        self.attribute_map = {
            'sensitive_type_id': 'sensitiveTypeId',
            'count': 'count'
        }
        self._sensitive_type_id = None
        self._count = None

    @property
    def sensitive_type_id(self):
        """
        **[Required]** Gets the sensitive_type_id of this SensitiveDataModelSensitiveTypeSummary.
        The OCID of the sensitive type.

        :return: The sensitive_type_id of this SensitiveDataModelSensitiveTypeSummary.
        :rtype: str
        """
        return self._sensitive_type_id

    @sensitive_type_id.setter
    def sensitive_type_id(self, sensitive_type_id):
        """
        Sets the sensitive_type_id of this SensitiveDataModelSensitiveTypeSummary.
        The OCID of the sensitive type.

        :param sensitive_type_id: The sensitive_type_id of this SensitiveDataModelSensitiveTypeSummary.
        :type: str
        """
        self._sensitive_type_id = sensitive_type_id

    @property
    def count(self):
        """
        **[Required]** Gets the count of this SensitiveDataModelSensitiveTypeSummary.
        The total number of sensitive columns linked to this specific sensitive type .

        :return: The count of this SensitiveDataModelSensitiveTypeSummary.
        :rtype: int
        """
        return self._count

    @count.setter
    def count(self, count):
        """
        Sets the count of this SensitiveDataModelSensitiveTypeSummary.
        The total number of sensitive columns linked to this specific sensitive type .

        :param count: The count of this SensitiveDataModelSensitiveTypeSummary.
        :type: int
        """
        self._count = count

    def __repr__(self):
        return formatted_flat_dict(self)

    def __eq__(self, other):
        if other is None:
            return False

        return self.__dict__ == other.__dict__

    def __ne__(self, other):
        return not self == other


mily: xingkai;
	text-align: center;
	z-index: 99;
}
/*第一页武将技能框*/
.character-dialog>div.wjkuang {
	left: 91%;
	top: 13%;
	height: 52%;
	width: 10%;
	background-size: 0;
	z-index: 99;
}
/*第一页玩家名字*/
.character-dialog>div.wanjiaming2 {
	font-size: 20px;
	font-family: yuanli;
	/*font-weight: bolder;*/
	top: 78%;
	left: 3%;
	color: #d4a680;
	text-align: center;
	z-index: 10;
}
/*第一页面武将名*/
.character-dialog>div.wjname {
	font-size: 18px;
	overflow-y: auto;
	/* 改为垂直滚动 */
	overflow-x: hidden;
	/* 隐藏水平滚动 */
	height: 78px;
	/* 新增固定高度 */
	line-height: 18px;
	/* 确保行高匹配字体大小 */
	white-space: normal;
	/* 允许多行显示 */
	top: 65px;
	left: 4.5%;
	right: auto;
	width: 18px;
	font-family: yuanli;
	text-shadow: (to top, rgb(35, 83, 123), rgb(15, 35, 68));
	z-index: 99;
}
/*第一页level等级*/
.character-dialog>div.level {
	left: 2%;
	top: 83.5%;
	height: 8%;
	width: 15%;
	background-size: 100% 100%;
	z-index: 99;
}
.character-dialog.dialog2 {
	--bt: calc(var(--h) * 10 / 280);
	--bl: calc(var(--w) * 12 / 287);
	--bb: calc(var(--h) * 20 / 280);
}
.character-dialog.popped {
	animation: dialog_start2 0.3s;
	-webkit-animation: dialog_start2 0.3s;
}
.character-dialog::before {
	content: "";
	top: calc(0% - var(--bt));
	left: calc(0% - var(--bl));
	width: var(--w);
	height: var(--h);
	position: absolute;
	/* background-image: url("./images/dialog4.png"); */
	background-size: 100% 100%;
}
.character-dialog.dialog2::before {
	background-image: url("./images/dialog3.png");
}
.character-dialog>div {
	top: 0;
	height: 100%;
	position: absolute;
}
/*新增*/
.player.connect>div:not(.avatar):not(.name):not(.nameol):not(.hp):not(.room):not(.gaming):not(.identity).primary-avatar {
	display: block !important;
}
/*第一页面武将原画渐变头像*/
.character-dialog>div.skin1 {
	/* left: 0%;
  top: -20%;
  width: 50%;
  height: 90%;
  background-size: 82% 100%;*/
	left: 5%;
	top: -5%;
	height: 80%;
	width: 28%;
	opacity: 1;
	background-size: cover;
	background-repeat: no-repeat;
	background-position: top;
	/*position: relative;*/
	/*background-repeat: no-repeat;*/
	/*遮罩*/
	/*-webkit-mask: radial-gradient(100px 160px at 120px 160px ,#000 70% , transparent 100% );*/
	-webkit-mask: linear-gradient(to right, transparent 0%, #000 50px,
			/* 左侧起


import discord
from discord import app_commands
from discord.ext import commands

from discord.utils import *

from utils.formating import *

from base import BotBase

class ExampleCog(commands.Cog):
    def __init__(self, bot:BotBase) -> None:
        self.bot = bot

    # region ExampleCog.ping
    @commands.hybrid_command(description="Check latency from the bot to discord.com")
    async def ping(self, ctx:commands.Context) -> None:
        await ctx.reply(f"Pong! {round(self.bot.latency*1000)}ms")

    # region ExampleCog.link
    @commands.hybrid_command(description="Get install link for your server.")
    @commands.is_owner()
    async def link(self, ctx:commands.Context) -> None:
        await ctx.reply(oauth_url(self.bot.application_id))

    # region ExampleCog.uptime
    @commands.hybrid_command(description="Get uptime from bot.")
    @commands.is_owner()
    async def uptime(self, ctx:commands.Context) -> None:
        await ctx.reply(f"**Uptime:** {format_dt(self.bot.start_time, 'R')}")

async def setup(bot:BotBase) -> None:
    await bot.add_cog(ExampleCog(bot))


    (U3, U1), (U4, U1);
    self: &'a Translation3<N>, rhs: UnitDualQuaternion<N>,
    Output = UnitDualQuaternion<N> => U3, U1;
    UnitDualQuaternion::<N>::from_parts(self.clone(), UnitQuaternion::identity()) * rhs;
    'a);

dual_quaternion_op_impl!(
    Mul, mul;
    (U3, U1), (U4, U1);
    self: Translation3<N>, rhs: &'b UnitDualQuaternion<N>,
    Output = UnitDualQuaternion<N> => U3, U1;
    UnitDualQuaternion::<N>::from_parts(self, UnitQuaternion::identity()) * rhs;
    'b);

dual_quaternion_op_impl!(
    Mul, mul;
    (U3, U1), (U4, U1);
    self: Translation3<N>, rhs: UnitDualQuaternion<N>,
    Output = UnitDualQuaternion<N> => U3, U1;
    UnitDualQuaternion::<N>::from_parts(self, UnitQuaternion::identity()) * rhs;);

// Translation3 ÷ UnitDualQuaternion
dual_quaternion_op_impl!(
    Div, div;
    (U3, U1), (U4, U1);
    self: &'b Translation3<N>, rhs: &'a UnitDualQuaternion<N>,
    Output = UnitDualQuaternion<N> => U3, U1;
    UnitDualQuaternion::<N>::from_parts(self.clone(), UnitQuaternion::identity()) / rhs;
    'a, 'b);

dual_quaternion_op_impl!(
    Div, div;
    (U3, U1), (U4, U1);
    self: &'a Translation3<N>, rhs: UnitDualQuaternion<N>,
    Output = UnitDualQuaternion<N> => U3, U1;
    UnitDualQuaternion::<N>::from_parts(self.clone(), UnitQuaternion::identity()) / rhs;
    'a);

dual_quaternion_op_impl!(
    Div, div;
    (U3, U1), (U4, U1);
    self: Translation3<N>, rhs: &'b UnitDualQuaternion<N>,
    Output = UnitDualQuaternion<N> => U3, U1;
    UnitDualQuaternion::<N>::from_parts(self, UnitQuaternion::identity()) / rhs;
    'b);

dual_quaternion_op_impl!(
    Div, div;
    (U3, U1), (U4, U1);
    self: Translation3<N>, rhs: UnitDualQuaternion<N>,
    Output = UnitDualQuaternion<N> => U3, U1;
    UnitDualQuaternion::<N>::from_parts(self, UnitQuaternion::identity()) / rhs;);

// UnitDualQuaternion × Isometry3
dual_quaternion_op_impl!(
    Mul, mul;
    (U4, U1), (U3, U1);
    self: &'a UnitDualQuaternion<N>, rhs: &'b Isometry3<N>,
    Output = UnitDualQuaternion<N> => U3, U1;
    self * UnitDualQuaternion::<N>::from_isometry(rhs);
    'a, 'b);

dual_quaternion_op_impl!(
    Mul, mul;
    (U4, U1), (U3, U3);
    self: &'a UnitDualQuaternion<N>, rhs: Isometry3<N>,
    Output = UnitDualQuaternion<N> => U3, U1;
    self * UnitDualQuaternio


xture(0)
   gl.bind_texture('2d', wood_texture)
   -- floor
   gl.uniform_matrix4f(loc.model, true, mat4())
   gl.bind_vertex_array(plane_vao)
   gl.draw_arrays('triangles', 0, 6)
   -- cubes
   gl.uniform_matrix4f(loc.model, true, translate(0.0, 1.5, 0.0)*scale(0.5))
   cube:draw()
   gl.uniform_matrix4f(loc.model, true, translate(2.0, 0.0, 1.0)*scale(0.5))
   cube:draw()
   local model = translate(-1.0, 0.0, 2.0)*rotate(rad(60.0), vec3(1.0, 0.0, 1.0):normalize())
                  *scale(0.25)
   gl.uniform_matrix4f(loc.model, true, model)
   cube:draw()
   gl.unbind_framebuffer('draw read')

   -- reset viewport
   gl.viewport(0, 0, SCR_WIDTH, SCR_HEIGHT)
   gl.clear('color', 'depth')

   -- render Depth map to quad for visual debugging
   gl.use_program(prog1)
   gl.uniformf(loc1.near_plane, near_plane)
   gl.uniformf(loc1.far_plane, far_plane)
   gl.active_texture(0)
   gl.bind_texture('2d', depth_map)
   quad:draw()

   -- swap buffers and poll IO events
   glfw.swap_buffers(window)
   glfw.poll_events()
end

gl.delete_vertex_arrays(plane_vao)
gl.delete_buffers(plane_vbo)
gl.delete_program(prog)
gl.delete_program(prog1)


orMultiplePackages [this.subTitleLabelForMultiplePackages]));
			w4.Position = 0;
			w4.Expand = false;
			w4.Fill = false;
			w1.Add (this.subTitleHBoxForMultiplePackages);
			global::Gtk.Box.BoxChild w5 = ((global::Gtk.Box.BoxChild)(w1 [this.subTitleHBoxForMultiplePackages]));
			w5.Position = 1;
			w5.Expand = false;
			w5.Fill = false;
			// Container child mainVBox.Gtk.Box+BoxChild
			this.GtkScrolledWindow = new global::Gtk.ScrolledWindow ();
			this.GtkScrolledWindow.Name = "GtkScrolledWindow";
			this.GtkScrolledWindow.ShadowType = ((global::Gtk.ShadowType)(1));
			// Container child GtkScrolledWindow.Gtk.Container+ContainerChild
			global::Gtk.Viewport w6 = new global::Gtk.Viewport ();
			w6.ShadowType = ((global::Gtk.ShadowType)(0));
			// Container child GtkViewport.Gtk.Container+ContainerChild
			this.packagesVBox = new global::Gtk.VBox ();
			this.packagesVBox.Name = "packagesVBox";
			this.packagesVBox.Spacing = 6;
			w6.Add (this.packagesVBox);
			this.GtkScrolledWindow.Add (w6);
			w1.Add (this.GtkScrolledWindow);
			global::Gtk.Box.BoxChild w9 = ((global::Gtk.Box.BoxChild)(w1 [this.GtkScrolledWindow]));
			w9.Position = 2;
			w9.Padding = ((uint)(3));
			// Container child mainVBox.Gtk.Box+BoxChild
			this.bottomMessageHBox = new global::Gtk.HBox ();
			this.bottomMessageHBox.Name = "bottomMessageHBox";
			this.bottomMessageHBox.Spacing = 6;
			// Container child bottomMessageHBox.Gtk.Box+BoxChild
			this.mainMessageLabel = new global::Gtk.Label ();
			this.mainMessageLabel.Name = "mainMessageLabel";
			this.mainMessageLabel.LabelProp = global::Mono.Unix.Catalog.GetString ("By clicking \"OK\" you agree to the license terms for the packages listed above.\nIf" +
				" you do not agree to the license terms click \"Cancel\".");
			this.bottomMessageHBox.Add (this.mainMessageLabel);
			global::Gtk.Box.BoxChild w10 = ((global::Gtk.Box.BoxChild)(this.bottomMessageHBox [this.mainMessageLabel]));
			w10.Position = 0;
			w10.Expand = false;
			w10.Fill = false;
			w1.Add (this.bottomMessageHBox);
			global::Gtk.Box.BoxChild w11 = ((global::Gtk.Box.BoxChild)(w1 [this.bottomMessageHBox]));
			w11.Position = 3;
			w11.Expand = false;
			w11.Fill = false;
			// Internal child MonoDevelop.PackageManagement.LicenseAcceptanceDialog.ActionArea
			global::Gtk.HButtonBox w12 = this.ActionArea;
			w12.Name = "mainButtonArea";
			w12.Spacing = 10;
			w12.BorderWidth = ((uint)(5));
			w12.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4));
			// Container child mainButtonArea.Gtk.ButtonBox+ButtonBoxChild
			this.buttonCancel = new global::Gtk.Button ();
			this.buttonCancel.CanDefault = true;
			this.buttonCancel.CanFocus = true;
			this.buttonCancel.Name = "buttonCancel";
			this.buttonCancel.UseStock = true;
			this.buttonCancel.UseUnderline = true;
			this.buttonCancel.Label = "gtk-cancel";
			this.AddActionWidget (this.buttonCancel, -6);
			global::Gtk.ButtonBox.ButtonBoxChild w13 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w12 [this.buttonCancel]));
			w13.Expand = false;
			w13.Fill = false;
			// Container child mainButtonArea.Gtk.ButtonBox+Button


ted.msmarco-v2.1-doc-segmented-full.20240418.4f9675.tar.gz",
      "https://github.com/castorini/pyserini/blob/master/pyserini/resources/index-metadata/lucene-inverted.msmarco-v2.1-doc-segmented.20240418.4f9675.README.md",
      "MS MARCO V2.1 Segmented Doc",
      "BM25",
      new String[] { "https://rgw.cs.uwaterloo.ca/pyserini/indexes/lucene/lucene-inverted.msmarco-v2.1-doc-segmented-full.20240418.4f9675.tar.gz" },
      "a43d09d31ae4e5dac81f5cfde1a810a7",
      IndexType.SPARSE_INVERTED,
      null,
      BagOfWordsQueryGenerator.class.getSimpleName(),
      "msmarco-v2.1-doc-segmented",
      146130406504L,
      22707699649L,
      113520750,
      29040364L),

  MSMARCO_V21_DOC_SEGMENTED_SHARD00_ARCTIC_EMBED_L_HNSW_INT8("msmarco-v2.1-doc-segmented-shard00.arctic-embed-l.hnsw-int8",
      "Anserini Lucene quantized (int8) HNSW index of the MS MARCO V2.1 segmented document corpus (shard00) encoded by Snowflake's arctic-embed-l model",
      "lucene-hnsw-int8.msmarco-v2.1-doc-segmented-shard00.arctic-embed-l.20250114.4884f5.tar.gz",
      "https://github.com/castorini/pyserini/blob/master/pyserini/resources/index-metadata/faiss-flat.msmarco-v2.1-doc.arctic-embed-l.20240824.README.md",
      "MS MARCO V2.1 Segmented Doc (shard00)",
      "Snowflake's arctic-embed-l w/ HNSW int8",
      new String[] { "https://rgw.cs.uwaterloo.ca/pyserini/indexes/lucene/lucene-hnsw-int8.msmarco-v2.1-doc-segmented-shard00.arctic-embed-l.20250114.4884f5.tar.gz" },
      "aab3f8e9aa0563bd0f875584784a0845",
      IndexType.DENSE_HNSW_INT8,
      ArcticEmbedLEncoder.class.getSimpleName(),
      VectorQueryGenerator.class.getSimpleName(),
      "msmarco-v2.1-doc-segmented"),

  MSMARCO_V21_DOC_SEGMENTED_SHARD01_ARCTIC_EMBED_L_HNSW_INT8("msmarco-v2.1-doc-segmented-shard01.arctic-embed-l.hnsw-int8",
      "Anserini Lucene quantized (int8) HNSW index of the MS MARCO V2.1 segmented document corpus (shard01) encoded by Snowflake's arctic-embed-l model",
      "lucene-hnsw-int8.msmarco-v2.1-doc-segmented-shard01.arctic-embed-l.20250114.4884f5.tar.gz",
      "https://github.com/castorini/pyserini/blob/master/pyserini/resources/index-metadata/faiss-flat.msmarco-v2.1-doc.arctic-embed-l.20240824.README.md",
      "MS MARCO V2.1 Segmented Doc (shard01)",
      "Snowflake's arctic-embed-l w/ HNSW int8",
      new String[] { "https://rgw.cs


6 1.012 1.428-1.292-.914-1.01a.503.503 0 01-.04-.051.74.74 0 01-.95-.12.74.74 0 01.05-1.04l1.49-1.35a.73.73 0 011.04.05c.243.27.251.68.03.955a.492.492 0 01.05.046l.913 1.008 3.298-2.988c.56-.51.99-1.14 1.25-1.85.37-.97.81-2.34.77-3.17ZM17.023 16.37l-1.428 1.293 4.076 4.503 1.428-1.293-4.076-4.503Zm5.627 2.862a3.054 3.054 0 00-.426-3.477v-.001h-.001a3.028 3.028 0 00-2.286-.997 3.045 3.045 0 00-1.128.231l3.841 4.244Zm-4.648 4.445-4.076-4.503-1.433 1.297 4.076 4.503 1.433-1.297Zm-3.226 2.67-3.829-4.23a3.054 3.054 0 00.437 3.457 3.042 3.042 0 003.391.773Z"/></svg>';
  static const String tulip =
      '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="32" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path fill="currentColor" d="M24.588 16.785c.704-1.631 1.072-4.374 1.072-6.242l-.01-6.454c-.001-1.13-.812-2.068-1.825-2.089H23.8c-1.959 0-3.716 1.333-5.149 3.309-.567-.896-1.214-1.746-1.983-2.5a1.23 1.23 0 00-1.741 0l-.01.01c-.745.743-1.374 1.577-1.928 2.453C11.561 3.318 9.812 2 7.86 2c-1.02 0-1.85.938-1.85 2.091V7.89L6 7.879v2.416c0 .415.02.832.053 1.233.036.496.238 3.027.665 4.287 1.272 3.945 4.203 6.33 8.116 6.678v4.855c-.984-1.574-2.709-2.625-4.682-2.625h-2.07a.78.78 0 00-.78.78v.42c0 2.665 2.135 4.86 4.76 4.882h6.965c2.952 0 5.387-2.322 5.542-5.281a.756.756 0 00-.75-.802l-2.884.01c-1.755.015-3.273 1.01-4.098 2.455v-4.71c3.637-.311 6.377-2.296 7.751-5.692Zm-15.97-1.6c-.257-.758-.471-2.456-.57-3.808a13.4 13.4 0 01-.038-.608V4.091c0-.033.004-.06.009-.085 2.592.172 5.05 4.459 6.167 8.696.219.824.881 1.376 1.648 1.376h.001c.758 0 1.412-.546 1.626-1.358 1.126-4.259 3.598-8.56 6.175-8.716a.335.335 0 01.011.086l.01 6.454c0 1.642-.339 4.129-.916 5.468-1.513 3.74-4.592 4.526-6.907 4.526-3.538.001-6.1-1.895-7.217-


Painters[weekLabel.label];
        if (timelineXDiff > 0 && timelineXDiff < maxTimelineDiff && animationValue < 1) {
          var mappedValue = MathUtils.clampedMap(timelineXDiff, 0, maxTimelineDiff, 0, 1);
          var lerpedColor = Color.lerp(Colors.redAccent, Constants.milestoneTimelineColor, mappedValue);
          milestoneLinePaint.strokeWidth = MathUtils.clampedMap(timelineXDiff, 0, maxTimelineDiff, 6, 1);
          milestoneLinePaint.color = lerpedColor;
        } else {
          milestoneLinePaint.strokeWidth = 1;
          milestoneLinePaint.color = Constants.milestoneTimelineColor;
        }

        double lineHeight = size.height / 2;
        double margin = (size.height - lineHeight) / 2;
        canvas.drawLine(new Offset(currX, margin), new Offset(currX, size.height - margin), milestoneLinePaint);

        textPainter.paint(canvas, new Offset(currX, size.height - labelHeightDoubled));
      }
    }
  }

  @override
  bool shouldRepaint(CustomPainter oldDelegate) {
    return true;
  }
}
import 'dart:async';

typedef void SharkErrorFunction(error, String? message);

/// default error report callback function
SharkErrorFunction get onError => (err, message) {
      throw SharkError(message ?? err.toString());
    };

/// error report delegation, use this to report every exception
/// [report] method would transform error type to [SharkError]
///
/// sample:
/// try {
///   xxx
/// } catch (e) {
///   SharkReport.report(e, 'it's an error');
/// }
class SharkReport {
  static List<SharkErrorFunction> _errorReports = [onError];

  static throwSharkError({required String message}) {
    throw SharkError(message);
  }

  static addErrorReport(SharkErrorFunction errorFunction) {
    _errorReports.add(errorFunction);
  }

  static report(err, [message]) {
    Future.microtask(() {
      _errorReports.forEach((e) {
        e(err, message);
      });
    });
  }
}

void throwSharkError({required String message}) {
  SharkReport.throwSharkError(message: message);
}

class SharkError extends Error {
  /// message of the error
  final String message;

  SharkError(this.message);

  @override
  String toString() {
    return 'SharkError: $message';
  }
}
import 'package:dynamic_widget/dynamic_widget.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:shark/src/models/enum.dart';
import 'package:shark/src/views/shark_controller.dart';

import '../../shark.dart';

/// Entry point for user to create shark widget
/// use [SharkController] to interact with UI components
class SharkWidget extends StatefulWidget {
  const SharkWidget(
      {required this.controller,
      this.clickEvent,
      this.initWidget,
      this.loadingWidget,
      this.errorWidget,
      Key? key})
      : super(key: key);

  final SharkController controller;
  final ClickEvent? clickEvent;
  final Widget? initWidget;
  final Widget? loadingWidget;
  final Widget? errorWidget;

  @override
  _SharkWidgetState createState() => _SharkWidgetState();
}

class _SharkWidgetState extends State<SharkWidget> {
  late final SharkController _controller;
  late final _initView;
  late final _loadingView;
  late final _errorView;

  @override
  void initState() {
    _controller = widget.controller;

    _initView = widget.initWidget ?? SizedBox();
    _loadingView


y".Equals(commandValue, StringComparison.OrdinalIgnoreCase))
		{
			return true;
		}
		return string.Compare(writeErrorAsXmlValue, "true", StringComparison.OrdinalIgnoreCase) == 0;
	}
}


pParser.T__0 = 1;
JavapParser.T__1 = 2;
JavapParser.T__2 = 3;
JavapParser.T__3 = 4;
JavapParser.T__4 = 5;
JavapParser.T__5 = 6;
JavapParser.T__6 = 7;
JavapParser.T__7 = 8;
JavapParser.T__8 = 9;
JavapParser.T__9 = 10;
JavapParser.T__10 = 11;
JavapParser.T__11 = 12;
JavapParser.T__12 = 13;
JavapParser.T__13 = 14;
JavapParser.T__14 = 15;
JavapParser.T__15 = 16;
JavapParser.T__16 = 17;
JavapParser.T__17 = 18;
JavapParser.T__18 = 19;
JavapParser.T__19 = 20;
JavapParser.T__20 = 21;
JavapParser.T__21 = 22;
JavapParser.T__22 = 23;
JavapParser.T__23 = 24;
JavapParser.T__24 = 25;
JavapParser.T__25 = 26;
JavapParser.T__26 = 27;
JavapParser.T__27 = 28;
JavapParser.T__28 = 29;
JavapParser.T__29 = 30;
JavapParser.T__30 = 31;
JavapParser.T__31 = 32;
JavapParser.T__32 = 33;
JavapParser.T__33 = 34;
JavapParser.T__34 = 35;
JavapParser.Identifier = 36;
JavapParser.WS = 37;

JavapParser.RULE_compilationUnit = 0;
JavapParser.RULE_sourceDeclaration = 1;
JavapParser.RULE_classOrInterface = 2;
JavapParser.RULE_classDeclaration = 3;
JavapParser.RULE_interfaceDeclaration = 4;
JavapParser.RULE_classModifier = 5;
JavapParser.RULE_interfaceModifier = 6;
JavapParser.RULE_typeList = 7;
JavapParser.RULE_type = 8;
JavapParser.RULE_subType = 9;
JavapParser.RULE_packageName = 10;
JavapParser.RULE_typeArguments = 11;
JavapParser.RULE_typeArgument = 12;
JavapParser.RULE_classBody = 13;
JavapParser.RULE_interfaceBody = 14;
JavapParser.RULE_modifier = 15;
JavapParser.RULE_classMember = 16;
JavapParser.RULE_interfaceMember = 17;
JavapParser.RULE_constructorDeclaration = 18;
JavapParser.RULE_fieldDeclaration = 19;
JavapParser.RULE_methodDeclaration = 20;
JavapParser.RULE_throwsException = 21;
JavapParser.RULE_varargs = 22;
JavapParser.RULE_methodArguments = 23;
JavapParser.RULE_arrayBrackets = 24;

class CompilationUnitContext extends antlr4.ParserRuleContext {

    constructor(parser, parent, invokingState) {
        if(parent===undefined) {
            parent = null;
        }
        if(invokingState===undefined || invokingState===null) {
            invokingState = -1;
        }
        super(parent, invokingState);
        this.parser = parser;
        this.ruleIndex = JavapParser.RULE_compilationUnit;
    }

	sourceDeclaration = function(i) {
	    if(i===undefined) {
	        i = null;
	    }
	    if(i===null) {
	        return this.getTypedRuleContexts(SourceDeclarationContext);
	    } else {
	        return this.getTypedRuleContext(SourceDeclarationContext,i);
	    }
	};

	classOrInterface = function(i) {
	    if(i===undefined) {
	        i = null;
	    }
	    if(i===null) {
	        return this.getTypedRuleContexts(ClassOrInterfaceContext);
	    } else {
	        return this.getTypedRuleContext(ClassOrInterfaceContext,i);
	    }
	};

	EOF() {
	    return this.getToken(JavapParser.EOF, 0);
	};

	enterRule(listener) {
	    if(listener instanceof JavapListener ) {
	        listener.


uos.$B$BSi te atreves a enfrentarte a los males de Maraudon, te compensaré generosamente. Tráeme todas las tallas de cristal terádrico que encuentres.$B$BAsí podré... estudiarlas. Los poderes que contienen llevan demasiado tiempo dormidos.",
    ["O"] = "Recoge 15 tallas de cristal terádrico y llévaselas a Willow a Desolace.",
    ["T"] = "Los males de Maraudon",
  },
  [7029] = {
    ["D"] = "Un sátiro llamado Lenguavil ha corrompido las cavernas de Maraudon y ha detenido el desarrollo de muchas de las plantas.$B$BToma este vial, $N. Llénalo en el estanque de cristal naranja de las cavernas; el relleno del vial contrarrestará las toxinas y las transformará en agentes sanadores.$B$BEsparce el líquido purificado en la hiedra Tallovil de las cavernas naranja. Aunque se eliminará la corrupción de la planta, debes saber que seguirá bajo el control de Lenguavil. Puede que intente atacarte...",
    ["O"] = "Llena el vial cerúleo cubierto en el estanque naranja de Maraudon. $B$BAplica el vial cerúleo lleno a la hiedravil para que emerja el sucesor tóxico. $B$BCura 8 plantas eliminando su sucesor tóxico e informa a Vark Marca de Guerra en la Aldea Cazasombras.",
    ["T"] = "La corrupción de Lenguavil",
  },
  [7041] = {
    ["D"] = "Un sátiro llamado Lenguavil ha corrompido las cavernas de Maraudon y ha detenido el desarrollo de muchas de las plantas.$B$BToma este vial, $N. Llénalo en el estanque de cristal naranja de las cavernas; el relleno del vial contrarrestará las toxinas y las transformará en agentes sanadores.$B$BEsparce el líquido purificado en la hiedravil de las cavernas naranja. Aunque se eliminará la corrupción de la planta, debes saber que seguirá bajo el control de Lenguavil. Puede que intente atacarte...",
    ["O"] = "Llena el vial cerúleo cubierto en el estanque naranja de Maraudon. $B$BAplica el vial cerúleo lleno a la hiedravil para que emerja el sucesor tóxico. $B$BCura 8 plantas eliminando su sucesor tóxico e informa a Talendria en Punta de Nijel.",
    ["T"] = "La corrupción de Lenguavil",
  },
  [7043] = {
    ["D"] = "Una c-c-criatura llamada \"Grinch el Abominable\" es el q-q-que ha robado nuestro envío de d-d-dulces, $N. ¡Y ten c-c-cuidado! ¡Es m-m-malvado y tiene a un p-p-puñado de gnomos verdes a su s-s-servicio!$B$BVas a n-n-necesitar ayuda p-p-para enfrentarte a él. ¡Se rumorea que t-t-tiene nuestros d-d-dulces y a nuestro q-q-querido Metzen el Reno en la Caverna Estrecha, en las Laderas de Trabalomas! Encuentra los d-d-dulces, $N, ¡tráelos de vuelta antes de q-q-que se arruine la fiesta y los n-n-niños de Ventormenta queden decepcionados!",
    ["O"] = "Recupera los dulces robados y libera a Metzen el Reno después de derrotar a Grinch el Abominable, que se esconde cerca de la Caverna Estrecha en las Laderas de Tr


RecipeBits.NOT_REMOVABLE, new Object[]{"SS ", " C ", " B ", 'C', OrePrefixes.circuit.get(Materials.Basic), 'B', OrePrefixes.battery.get(Materials.Basic), 'S', GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.harderrecipes, "electricsteeltools", true) ? OrePrefixes.plate.get(Materials.StainlessSteel) : OrePrefixes.plate.get(Materials.Iron)});
        }
        if (GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("electricTreetap", 1L))) {
            GT_ModHandler.addCraftingRecipe(GT_ModHandler.getIC2Item("electricTreetap", 1L), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{" B ", "SCS", "S  ", 'C', OrePrefixes.circuit.get(Materials.Basic), 'B', OrePrefixes.battery.get(Materials.Basic), 'S', GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.harderrecipes, "electricsteeltools", true) ? OrePrefixes.plate.get(Materials.StainlessSteel) : OrePrefixes.plate.get(Materials.Iron)});
        }
        GT_Log.out.println("GT_Mod: Removing Q-Armor Recipes if configured.");
        if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "QHelmet", false)) {
            GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("quantumHelmet", 1L));
        }
        if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "QPlate", false)) {
            GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("quantumBodyarmor", 1L));
        }
        if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "QLegs", false)) {
            GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("quantumLeggings", 1L));
        }
        if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.disabledrecipes, "QBoots", false)) {
            GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getIC2Item("quantumBoots", 1L));
        }

        if (Loader.isModLoaded("GraviSuite")) {
            GT_ModHandler.removeRecipeByOutput(GT_ModHandler.getModItem("GraviSuite", "advNanoChestPlate", 1, GT_Values.W));
            GT_ModHandler.addCraftingRecipe(GT_ModHandler.getModItem("GraviSuite", "advNanoChestPlate", 1, GT_Values.W), new Object[]{"CJC", "CNC", "WPW", 'C', OrePrefixes.plateAlloy.get(Materials.Carbon), 'J', GT_ModHandler.getModItem("GraviSuite", "advJetpack", 1, GT_Values.W), 'N', GT_ModHandler.getIC2Item("nanoBodyarmor", 1L), 'W', OrePrefixes.wireGt04.get(Materials.Platinum), 'P', OrePrefixes.circuit.get(Materials.Data)});
        }

        long bits = GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE;
        GT_ModHandler.addCraftingRecipe(ItemList.ModularBasicHelmet.getWildcard(1), bits, new Object[]{"AAA", "B B", 'A', new ItemStack(Items.leather, 1, 32767), 'B', OrePrefixes.ring.get(Materials.Iron)});


title="{{.}}">

At parse time they become:

Errors

See the documentation of ErrorCode for details.

A fuller picture

The rest of this package comment may be skipped on first reading; it includes
details necessary to understand escaping contexts and error messages. Most users
will not need to understand these details.

Contexts

Assuming {{.}} is `O'Reilly: How are <i>you</i>?`, the table below shows
how {{.}} appears when used in the context to the left.

  Context                          {{.}} After
  {{.}}                            O'Reilly: How are <i>you</i>?
                  O'Reilly: How are you?
                  O'Reilly: How are %3ci%3eyou%3c/i%3e?
                O'Reilly%3a%20How%20are%3ci%3e...%3f
               O\x27Reilly: How are \x3ci\x3eyou...?
                 "O\x27Reilly: How are \x3ci\x3eyou...?"
       O\x27Reilly: How are \x3ci\x3eyou...\x3f

If used in an unsafe context, then the value might be filtered out:

  Context                          {{.}} After
                   #ZgotmplZ

since "O'Reilly:" is not an allowed protocol like "http:".

If {{.}} is the innocuous word, `left`, then it can appear more widely,

  Context                              {{.}} After
  {{.}}                                left
                      left
                       left
                      left
                  left
          left
               left
         left
    left
     left

Non-string values can be used in JavaScript contexts.
If {{.}} is

  struct{A,B string}{ "foo", "bar" }

in the escaped template

then the template output is

See package json to understand how non-string content is marshaled for
embedding in JavaScript contexts.

Typed Strings

By default, this package assumes that all pipelines produce a plain text string.
It adds escaping pipeline stages necessary to correctly and safely embed that
plain text string in the appropriate context.

When a data value is not plain text, you can make sure it is not over-escaped
by marking it with its type.

Types HTML, JS, URL, and others from content.go can carry safe content that is
exempted from escaping.

The template

  Hello, {{.}}!

can be invoked with

  tmpl.Execute(out, template.HTML(`<b>World</b>`))

to produce

  Hello, World!

instead of the

  Hello, <b>World<b>!

that would have been produced if {{.}} was a regular string.

Security Model

https://rawgit.com/mikesamuel/sanitized-jquery-templates/trunk/safetemplate.html#problem_definition defines "safe" as used by this package.

This package assumes that template authors are trusted, that Execute's data
parameter is not, and seeks to preserve the properties below in the face
of untrusted data:

Structure Preservation Property:
"... when a


 11px/14px bold tahoma, arial, verdana, sans-serif;
  color: #15428b;
  padding: 1px 0;
}

/* line 44, ../../../ext-theme-neutral/sass/src/form/FieldSet.scss */
.x4-fieldset-header-text-collapsible {
  cursor: pointer;
}

/* line 50, ../../../ext-theme-neutral/sass/src/form/FieldSet.scss */
.x4-fieldset-with-title .x4-fieldset-header-checkbox,
.x4-fieldset-with-title .x4-tool {
  margin: 1px 3px 0 0;
}

/* line 66, ../../../ext-theme-neutral/sass/src/form/FieldSet.scss */
.x4-webkit .x4-fieldset-header {
  -webkit-padding-start: 3px;
  -webkit-padding-end: 3px;
}

/* line 76, ../../../ext-theme-neutral/sass/src/form/FieldSet.scss */
.x4-opera .x4-fieldset-with-legend {
  margin-top: -1px;
}
/* line 79, ../../../ext-theme-neutral/sass/src/form/FieldSet.scss */
.x4-opera.x4-mac .x4-fieldset-header-text {
  padding: 2px 0 0;
}

/* line 87, ../../../ext-theme-neutral/sass/src/form/FieldSet.scss */
.x4-strict .x4-ie8 .x4-fieldset-header {
  margin-bottom: -1px;
}
/* line 91, ../../../ext-theme-neutral/sass/src/form/FieldSet.scss */
.x4-strict .x4-ie8 .x4-fieldset-header .x4-tool,
.x4-strict .x4-ie8 .x4-fieldset-header .x4-fieldset-header-text,
.x4-strict .x4-ie8 .x4-fieldset-header .x4-fieldset-header-checkbox {
  position: relative;
  top: -1px;
}

/* line 101, ../../../ext-theme-neutral/sass/src/form/FieldSet.scss */
.x4-quirks .x4-ie .x4-fieldset-header,
.x4-ie8m .x4-fieldset-header {
  padding-left: 1px;
  padding-right: 1px;
}

/* line 109, ../../../ext-theme-neutral/sass/src/form/FieldSet.scss */
.x4-fieldset-collapsed .x4-fieldset-body {
  display: none;
}

/* line 114, ../../../ext-theme-neutral/sass/src/form/FieldSet.scss */
.x4-fieldset-collapsed {
  padding-bottom: 0 !important;
  border-width: 1px 1px 0 1px !important;
  border-left-color: transparent !important;
  border-right-color: transparent !important;
}

/* line 123, ../../../ext-theme-neutral/sass/src/form/FieldSet.scss */
.x4-ie6 .x4-fieldset-collapsed {
  border-width: 1px 0 0 0 !important;
  padding-bottom: 0 !important;
  margin-left: 1px;
  margin-right: 1px;
}

/* line 131, ../../../ext-theme-neutral/sass/src/form/FieldSet.scss */
.x4-ie .x4-fieldset-bwrap {
  zoom: 1;
}

/* line 137, ../../../ext-theme-neutral/sass/src/form/FieldSet.scss */
.x4-fieldset .x4-tool-toggle {
  background-position: 0 -60px;
}
/* line 144, ../../../ext-theme-neutral/sass/src/form/FieldSet.scss */
.x4-fieldset .x4-tool-over .x4-tool-toggle {
  background-position:


mbEvent(data)
	if err != nil {
		geh.parser.setError(err)
		return
	}

	geh.gameState().currentDefuser = nil
	geh.dispatch(events.BombExplode{BombEvent: bombEvent})
}

// ErrBombsiteIndexNotFound indicates that a game-event occurred that contained an unknown bombsite index.
// This error can be disabled by setting ParserConfig.IgnoreErrBombsiteIndexNotFound = true.
// See https://github.com/markus-wa/demoinfocs-golang/issues/314
var ErrBombsiteIndexNotFound = errors.New("bombsite index not found - see https://github.com/markus-wa/demoinfocs-golang/issues/314")

func (geh gameEventHandler) bombEvent(data map[string]*msg.CMsgSource1LegacyGameEventKeyT) (events.BombEvent, error) {
	bombEvent := events.BombEvent{Player: geh.playerByUserID32(data["userid"].GetValShort())}

	const gameEventKeyTypeLong = 3

	var site int
	if data["site"].GetType() == gameEventKeyTypeLong {
		site = int(data["site"].GetValLong())
	} else {
		site = int(data["site"].GetValShort())
	}

	switch site {
	case geh.parser.bombsiteA.index:
		bombEvent.Site = events.BombsiteA
	case geh.parser.bombsiteB.index:
		bombEvent.Site = events.BombsiteB
	default:
		t := geh.parser.triggers[site]

		// when not found, only error if site is not 0, for retake games it may be 0 => unknown
		if t == nil {
			if !geh.ignoreBombsiteIndexNotFound {
				return bombEvent, errors.Wrapf(ErrBombsiteIndexNotFound, "bombsite with index %d not found", site)
			}
		} else {
			if t.contains(geh.parser.bombsiteA.center) {
				bombEvent.Site = events.BombsiteA
				geh.parser.bombsiteA.index = site
			} else if t.contains(geh.parser.bombsiteB.center) {
				bombEvent.Site = events.BombsiteB
				geh.parser.bombsiteB.index = site
			}
		}

		if bombEvent.Site == events.BomsiteUnknown {
			// this may occur on de_grind for bombsite B, really makes you think
			// see https://github.com/markus-wa/demoinfocs-golang/issues/280
			geh.dispatch(events.ParserWarn{
				Message: "bombsite unknown for bomb related event",
				Type:    events.WarnTypeBombsiteUnknown,
			})
		}
	}

	return bombEvent, nil
}

func (geh gameEventHandler) bombBeginDefuse(data map[string]*msg.CMsgSource1LegacyGameEventKeyT) {
	if !geh.parser.disableMimicSource1GameEvents {
		return
	}

	geh.gameState().currentDefuser = geh.playerByUserID32(data["userid"].GetValShort())

	geh.dispatch(events.BombDefuseStart{
		Player: geh.gameState().currentDefuser,
		HasKit: data["haskit"].GetValBool(),
	})
}

func (geh gameEventHandler) itemEquip(data map[string]*msg.CMsgSource1LegacyGameEventKeyT) {
	player, weapon := geh.itemEvent(data)
	geh.dispatch(events.ItemEquip{
		Player: player,
		Weapon: weapon,
	})
}

func (geh gameEventHandler) itemPickup(data map[string]*msg.CMsgSource1LegacyGameEventKeyT) {
	player, weapon := geh.itemEvent(data)
	geh.dispatch(events.ItemPickup{
		Player


 thus more type-safe.
    pub
    struct ContinuationReturn;
}

#[doc(hidden)] /** Not part of the public API **/ pub
mod __ {
    pub
    enum ControlFlow<Eval, Return, Break, Continue> {
        /// Classic block evaluation.
        Eval(Eval),

        /// Must `return` the value early.
        EarlyReturn(Return),

        /// Must `break` with the value.
        Break(Break),

        /// Must `continue`.
        Continue(Continue),
    }

    /// Custom *void type*
    pub
    enum Unreachable {}

    pub
    use ::core::{
        convert::Into,
        ops::{
            FnMut, FnOnce,
        },
        option::Option::{Some as Some_, None as None_},
        result::Result::{Ok as Ok_, Err as Err_},
    };

    pub
    trait Try {
        type Ok;
        type Error;

        fn into_result (self: Self)
          -> Result<Self::Ok, Self::Error>
        ;

        fn from_ok (ok: Self::Ok)
          -> Self
        ;

        fn from_err (err: Self::Error)
          -> Self
        ;
    }

    impl<Ok, Err> Try for Result<Ok, Err> {
        type Ok = Ok;
        type Error = Err;

        #[inline]
        fn into_result (self: Result<Ok, Err>)
          -> Result<Ok, Err>
        {
            self
        }

        #[inline]
        fn from_ok (ok: Ok)
          -> Result<Ok, Err>
        {
            Ok(ok)
        }

        #[inline]
        fn from_err (err: Err)
          -> Result<Ok, Err>
        {
            Err(err)
        }
    }

    mod hidden { pub struct NoneError; }
    use hidden::NoneError;

    impl<T> Try for Option<T> {
        type Ok = T;
        type Error = NoneError;

        #[inline]
        fn into_result (self: Option<T>)
          -> Result<T, NoneError>
        {
            self.ok_or(NoneError)
        }

        #[inline]
        fn from_ok (value: T)
          -> Option<T>
        {
            Some(value)
        }

        #[inline]
        fn from_err (NoneError: NoneError)
          -> Option<T>
        {
            None
        }
    }
}
<filename>dotenv_codegen/src/lib.rs<gh_stars>0
//use proc_macro_hack::proc_macro_hack;

#[proc_macro]
pub use dotenv_codegen_implementation::dotenv;
pub enum Row {
    BigTable<Column>
}
pub enum Column {
    #Container
    container
}

pub enum Layers {
    BigTable <Row>
}

pub enum ContainerFields {
Layers(VarChar),
Layout(Pointer < Contanir> ),
}

pub enum WordFields {
Content,

}

pub enum WordContent {
Text(VarChar),
Container(Pointer < Contanir> ),
}

pub enum WordFields {
Content,

}

pub struct

impl Word {
[]
}

Word
WordContainer
use crate::util;

use anyhow::Result;
use assert_fs::prelude::*;
use indoc::indoc;
use predicates::prelude::*;

#[test]
fn basic_file_resolving() -> Result<()> {
    util::builder()
        .source_file(indoc! {r#"
            #include "a.hpp"
            // hello?
            #include <b/c.hpp>
        "#})?
        .search_dir("-d", [("a.hpp", "// a.hpp\n")])?
        .search_dir("--dir", [("b/


            'gtfs:trip': 'http://irail.be/trips/88____%3A007%3A%3A8841004%3A8884335%3A52%3A1247%3A20170710',
            'gtfs:route': 'http://irail.be/routes/51'
        };
        const c2 = new Connection(dummyjson2);
        const route2 = new Route([]);
        route2.addConnection(c2);
        routeHistory.routes.push(route2);

        // assertion
        expect(routeHistory.getAvgTravelTime().getMinutes()).toEqual(15);

    });
});

/**
 * Check if amount of changes missed chance is calculated correctly
 */
describe('routeHistory.ts getChangeMissedChance() tests', () => {
    const startOnTime = new Connection({
        '@id': 'A',
        '@type': 'Connection',
        'departureStop': 'A',
        'arrivalStop': 'B',
        'departureTime': '2017-07-10T09:30:00.000Z',
        'arrivalTime': '2017-07-10T09:40:00.000Z',
        'http://vocab.gtfs.org/terms#trip': 'A',
        'gtfs:route': 'A',
        'departureDelay': 120,
        'arrivalDelay': 180
    });
    const endOnTime = new Connection({
        '@id': 'B',
        '@type': 'Connection',
        'departureStop': 'B',
        'arrivalStop': 'C',
        'departureTime': '2017-07-10T09:50:00.000Z',
        'arrivalTime': '2017-07-10T09:80:00.000Z',
        'http://vocab.gtfs.org/terms#trip': 'B',
        'gtfs:route': 'A',
        'departureDelay': 60,
        'arrivalDelay': 600
    });
    const startLate = new Connection({
        '@id': 'A',
        '@type': 'Connection',
        'departureStop': 'A',
        'arrivalStop': 'B',
        'departureTime': '2017-07-10T09:30:00.000Z',
        'arrivalTime': '2017-07-10T09:40:00.000Z',
        'http://vocab.gtfs.org/terms#trip': 'A',
        'gtfs:route': 'A',
        'departureDelay': 120,
        'arrivalDelay': 1800
    });
    const endLate = new Connection({
        '@id': 'B',
        '@type': 'Connection',
        'departureStop': 'B',
        'arrivalStop': 'C',
        'departureTime': '2017-07-10T09:50:00.000Z',
        'arrivalTime': '2017-07-10T09:80:00.000Z',
        'http://vocab.gtfs.org/terms#trip': 'B',
        'gtfs:route': 'A',
        'departureDelay': 1800,
        'arrivalDelay': 600
    });
    const r1 = new Route([startOnTime, endOnTime]);
    const r2 = new Route([startLate, endOnTime]);
    const r3 = new Route([startLate, endLate]);
    const rh1 = new RouteHistory([r1, r2, r3]);
    const rh2 = new RouteHistory([r1, r1, r1]);
    const rh3 = new RouteHistory([r2, r2, r2]);

    it('should return 0', () => {
        expect(rh2.getChangeMissedChance()).toBe(0);
    });
    it('should be 1', () => {
        expect(rh3.getChangeMissedChance()).toBe(1);
    });
    it('should return 1/3', () => {
        expect(rh1.getChangeMissedChance()).toBe(1 / 3);
    });
});

/**
 * Check if delay consistency is working properly
 */
describe('routeHistory.ts getDelayConsistency()', (


xfI1pLnpCyiPFD4lPKEtY0WW0wcR+/uY5ZdrCKRf5/96JOiyzmsOZ9iWPZIRc3GmTVktwjWqXapx5xUyo20stIvN9hm+d7Ro2kB0Pm7TEG9woP9cstM5LZeNxhj864YmpDNPTdh28aSty32BVsWb+Z6EVKTjdVHcpSRkyFK2AeXU7aIvPfZL7/4/Pvdz6gpCHzmfUlmxJXcU/et0cro7O9hDeMXqG+ylUZzP3Kb/pJnoYAeNptz0dM03EUwPHvg9JC2XuLe4///1/KcNJK6957iwJtFQGLVXEbcIPRmHjTuC5qnLiiUQ9q3CuOqAfP7nhQr1r8/7z5Lp+8l7xFBH/jdxsO/hcfQCIkkkgsRGHFRjQx2IkljngSSCSJZFJIJY10Msgki2xyyCWPfDpQQEc60ZkudKUb3elBT3rRmz70pR/9GYCGjhHeXoiTIoopoZSBDGIwQxjKMMpw4WY45XjwMoKRjGI0YxjLOMYzgYlMYjJTmMo0pjODmcxiNnOYyzzms4CFVIiFozSzhevsD3+0ld3s4gDHOSZR7OQdTewTq9holWi2c4v3EsNBTvCTH/ziCKe4z11Os4jF7KGSh1Rxjwc85RGPecJHqnnBM55zBh/f2ctrXvIKP5/5yg6WEGApy6ihlkPUsZx6gjQQYgUrWcUnVrOGRtaynnVc4TAb2cAmNvOFb1zlLOe4xhveil1iJU7iJUESJUmSJUVSJU3SJUMyOU8bl7jMbS5wkTts46RkcYObki05tEiu5Em+1VfTWO/XbaHagKZp5aYuTalyt6F0KJ3K0naNcKNSVxpKh7JQ6VQWKYuVJcp/81ymupqr6/bqgC8UrKqsaPCbJcNr6vRaPKFgXXviUXd43eYdYY0/1BOaI3jaRc09EoIwEIZhQhABkd+AFjqDdWpvIDY0agUzXkNrG0utPcZi5Xg5/XTi2uXZfWfzEK8ziYvVkLdpeyGuXb92dbugpGtI7fA4dXNy9b61SFY1Sb0ip6rvMrT1FwPA+cEFBgeDIeAuDTxgmBn4gBcZBIB/MxgBgdkICs2HY0zDra17uT6CETgeMWMwKplJVT+t2K4snqQIkoKZfYLUnv2DHEGmmArMM2YBqphZgkXEnHyulaL8X5simHDQkdJvRERf2QAAAVHfQlQAAA==) format('woff'),
         url('noticiatext-bold-webfont.ttf') format('truetype'),
         url('noticiatext-bold-webfont.svg#noticia_textbold') format('svg');
    font-weight: normal;
    font-style: normal;
}

body{
	background:#fff;
	color:#333;
	font: 16px / 1.5 'Liberation Serif','Droid Serif','Georgia','Times New Roman';
	margin:0;
	padding:0

}
a:hover{
	color:#c00;
}
#wrapper{
	width:80%;
	margin:0 auto;
	border-top:3px solid #333;
}
#wrapper > header{
	border-bottom: 3px double #333;
	text-align:center;
	line-height: 1;
}
header h1{
	font-size:4em;
	margin:1rem 0 0 0;
	font-family:'noticia_textbold';
}
#wrapper > header i{
	font-family:'noticia_textbold_italic';
}
header h2{
	font-size:1.5em;
	margin:1rem;
	padding-botto


/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you 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.
 */
using System.Collections.Generic;
using Newtonsoft.Json;
using Aliyun.Acs.Core;

namespace Aliyun.Acs.VoiceNavigator.Model.V20180612
{
	public class ListDownloadTasksResponse : AcsResponse
	{

		private int? httpStatusCode;

		private string code;

		private string message;

		private string requestId;

		private bool? success;

		private ListDownloadTasks_DownloadTasks downloadTasks;

		public int? HttpStatusCode
		{
			get
			{
				return httpStatusCode;
			}
			set
			{
				httpStatusCode = value;
			}
		}

		public string Code
		{
			get
			{
				return code;
			}
			set
			{
				code = value;
			}
		}

		public string Message
		{
			get
			{
				return message;
			}
			set
			{
				message = value;
			}
		}

		public string RequestId
		{
			get
			{
				return requestId;
			}
			set
			{
				requestId = value;
			}
		}

		public bool? Success
		{
			get
			{
				return success;
			}
			set
			{
				success = value;
			}
		}

		public ListDownloadTasks_DownloadTasks DownloadTasks
		{
			get
			{
				return downloadTasks;
			}
			set
			{
				downloadTasks = value;
			}
		}

		public class ListDownloadTasks_DownloadTasks
		{

			private int? pageNumber;

			private int? pageSize;

			private int? totalCount;

			private List<ListDownloadTasks_DownloadTask> list;

			public int? PageNumber
			{
				get
				{
					return pag


"""
 * EJERCICIO:
 * - Crea ejemplos utilizando todos los tipos de operadores de tu lenguaje:
 *   Aritméticos, lógicos, de comparación, asignación, identidad, pertenencia, bits...
 *   (Ten en cuenta que cada lenguaje puede poseer unos diferentes)
 * - Utilizando las operaciones con operadores que tú quieras, crea ejemplos
 *   que representen todos los tipos de estructuras de control que existan
 *   en tu lenguaje:
 *   Condicionales, iterativas, excepciones...
 * - Debes hacer print por consola del resultado de todos los ejemplos.
 *
 * DIFICULTAD EXTRA (opcional):
 * Crea un programa que imprima por consola todos los números comprendidos
 * entre 10 y 55 (incluidos), pares, y que no son ni el 16 ni múltiplos de 3.
 *
 * Seguro que al revisar detenidamente las posibilidades has descubierto algo nuevo.
 """

# Suma
a = 5
b = 3
suma = a + b
print("Suma:", suma)  # Resultado: 8

# Resta
resta = a - b
print("Resta:", resta)  # Resultado: 2

# Multiplicación
multiplicacion = a * b
print("Multiplicación:", multiplicacion)  # Resultado: 15

# División
division = a / b
print("División:", division)  # Resultado: 1.6666666666666667

# División entera
division_entera = a // b
print("División entera:", division_entera)  # Resultado: 1

# Módulo (resto de la división)
modulo = a % b
print("Módulo:", modulo)  # Resultado: 2

# Exponenciación
exponenciacion = a ** b
print("Exponenciación:", exponenciacion)  # Resultado: 125

# AND lógico
x = True
y = False
and_logico = x and y
print("AND lógico:", and_logico)  # Resultado: False

# OR lógico
or_logico = x or y
print("OR lógico:", or_logico)  # Resultado: True

# NOT lógico
not_logico = not x
print("NOT lógico:", not_logico)  # Resultado: False

# Igualdad
a = 5
b = 3
igualdad = a == b
print("Igualdad:", igualdad)  # Resultado: False

# Desigualdad
desigualdad = a != b
print("Desigualdad:", desigualdad)  # Resultado: True

# Mayor que
mayor_que = a > b
print("Mayor que:", mayor_que)  # Resultado: True

# Menor que
menor_que = a < b
print("Menor que:", menor_que)  # Resultado: False

# Mayor o igual que
mayor_igual_que = a >= b
print("Mayor o igual que:", mayor_igual_que)  # Resultado: True

# Menor o igual que
menor_igual_que = a <= b
print("Menor o igual que:", menor_igual_que)  # Resultado: False

x = 5
# Asignación
x += 2  # Equivalente a: x = x + 2
print("Asignación:", x)  # Resultado: 7

x = [1, 2, 3]
y = [1, 2, 3]
z = x

# Identidad (comparando referencias de objetos)
identidad1 = x is y
print("Identidad 1:", identidad1)  # Resultado: False

identidad2 = x is z
print("Identidad 2:", identidad2)  # Resultado: True

# No Identidad
no_identidad = x is not y
print("No Identidad:", no_identidad)  # Resultado: True

# Pertenencia (comprobando si un valor está presente en una secuencia)
lista = [1, 2, 3, 4, 5]
pertenencia = 3 in lista
print("Pertenencia:", pertenencia)  # Resultado: True

# No Pertenencia
no_pertenencia = 6 not in lista
print("No Pertenencia:", no_pertenencia)  # Resultado: True

a = 10  # Representación binaria: 1010
b = 4   # Representación binaria: 0100

# AND a nivel de bits
and_bits = a & b
print("AND a nivel de bits:", and_bits)  # Resultado: 0 (binario: 0000)

# OR a nivel de bits
or_bits = a | b
print("OR a nivel de bits:", or_bits)    # Resultado: 14 (binario: 1110)

# XOR a nivel de bits
xor_bits = a ^ b
print("XOR a nivel de bits:", xor_bits)  # Resultado: 14 (binario: 1110)

# Desplazamiento a la izquierda
despl_izquierda = a << 2
print("Desplazamiento a la izquierda:", despl_izquierda)  # Resultado: 40 (binario: 101000)

# Desplazamiento a la derecha
despl_derecha = a >> 1
print("Desplazamiento a la derecha:", despl_derecha)  # Resultado: 5 (binario: 101)


PLY,
	AB9540_REGUCTRL1VAMIC,
	AB9540_VSMPS1REGU,
	AB9540_VSMPS2REGU,
	AB9540_VSMPS3REGU, /* NOTE! PRCMU register */
	AB9540_VPLLVANAREGU,
	AB9540_EXTSUPPLYREGU,
	AB9540_VAUX12REGU,
	AB9540_VRF1VAUX3REGU,
	AB9540_VSMPS1SEL1,
	AB9540_VSMPS1SEL2,
	AB9540_VSMPS1SEL3,
	AB9540_VSMPS2SEL1,
	AB9540_VSMPS2SEL2,
	AB9540_VSMPS2SEL3,
	AB9540_VSMPS3SEL1, /* NOTE! PRCMU register */
	AB9540_VSMPS3SEL2, /* NOTE! PRCMU register */
	AB9540_VAUX1SEL,
	AB9540_VAUX2SEL,
	AB9540_VRF1VAUX3SEL,
	AB9540_REGUCTRL2SPARE,
	AB9540_VAUX4REQCTRL,
	AB9540_VAUX4REGU,
	AB9540_VAUX4SEL,
	AB9540_REGUCTRLDISCH,
	AB9540_REGUCTRLDISCH2,
	AB9540_REGUCTRLDISCH3,
	AB9540_NUM_REGULATOR_REGISTERS,
};

/* AB8540 registers */
enum ab8540_regulator_reg {
	AB8540_REGUREQUESTCTRL1,
	AB8540_REGUREQUESTCTRL2,
	AB8540_REGUREQUESTCTRL3,
	AB8540_REGUREQUESTCTRL4,
	AB8540_REGUSYSCLKREQ1HPVALID1,
	AB8540_REGUSYSCLKREQ1HPVALID2,
	AB8540_REGUHWHPREQ1VALID1,
	AB8540_REGUHWHPREQ1VALID2,
	AB8540_REGUHWHPREQ2VALID1,
	AB8540_REGUHWHPREQ2VALID2,
	AB8540_REGUSWHPREQVALID1,
	AB8540_REGUSWHPREQVALID2,
	AB8540_REGUSYSCLKREQVALID1,
	AB8540_REGUSYSCLKREQVALID2,
	AB8540_REGUVAUX4REQVALID,
	AB8540_REGUVAUX5REQVALID,
	AB8540_REGUVAUX6REQVALID,
	AB8540_REGUVCLKBREQVALID,
	AB8540_REGUVRF1REQVALID,
	AB8540_REGUMISC1,
	AB8540_VAUDIOSUPPLY,
	AB8540_REGUCTRL1VAMIC,
	AB8540_VHSIC,
	AB8540_VSDIO,
	AB8540_VSMPS1REGU,
	AB8540_VSMPS2REGU,
	AB8540_VSMPS3REGU,
	AB8540_VPLLVANAREGU,
	AB8540_EXTSUPPLYREGU,
	AB8540_VAUX12REGU,
	AB8540_VRF1VAUX3REGU,
	AB8540_VSMPS1SEL1,
	AB8540_VSMPS1SEL2,
	AB8540_VSMPS1SEL3,
	AB8540_VSMPS2SEL1,
	AB8540_VSMPS2SEL2,
	AB8540_VSMPS2SEL3,
	AB8540_VSMPS3SEL1,
	AB8540_VSMPS3SEL2,
	AB8540_VAUX1SEL,
	AB8540_VAUX2SEL,
	AB8540_VRF1VAUX3SEL,
	AB8540_REGUCTRL2SPARE,
	AB8540_VAUX4REQCTRL,
	AB8540_VAUX4REGU,
	AB8540_VAUX4SEL,
	AB8540_VAUX5REQCTRL,
	AB8540_VAUX5REGU,
	AB8540_VAUX5SEL,
	AB8540_VAUX6REQCTRL,
	AB8540_VAUX6REGU,
	AB8540_VAUX6SEL,
	AB8540_VCLKBREQCTRL,
	AB8540_VCLKBREGU,
	AB8540_VCLKBSEL,
	AB8540_VRF1REQCTRL,
	AB8540_REGUCTRLDISCH,
	AB8540_REGUCTRLDISCH2,
	AB8540_REGUCTRLDISCH3,
	AB8540_REGUCTRLDISCH4,
	AB8540_VSIMSYSCLKCTRL,
	AB8540_VANAVPLLSEL,
	AB8540_NUM_REGULATOR_REGISTERS,
};

/* AB8500 external regulators */
struct ab8500_ext_regulator_cfg {
	bool hwreq; /* requires hw mode or high power mode */
};

enum ab8500_ext_regulator_id {
	AB8500_EXT_SUPPLY1,
	AB8500_EXT_SUPPLY2,
	AB8500_EXT_SUPPLY3,
	AB8500_NUM_EXT_REGULATORS,
};

/* AB8500 regulator platform data */
struct ab8500_regulator_platform_data {
	int num_reg_init;
	struct ab8500_regulator_reg_init *reg_init;
	int num_regulator;
	struct regulator_init_data *regulator;
	int num_ext_regulator;
	struct regulator_init_data *ext_regulator;
};

#endif


y1>
                            <ceb:price>0.01</ceb:price>
                            <ceb:totalPrice>0.01</ceb:totalPrice>
                        </ceb:InventoryList>
                    </ceb:Inventory>
                    <ceb:BaseTransfer>
                        <ceb:copCode>46121601BC</ceb:copCode>
                        <ceb:copName>海南星创互联网医药有限公司</ceb:copName>
                        <ceb:dxpMode>DXP</ceb:dxpMode>
                        <ceb:dxpId>DXPENT0000458763</ceb:dxpId>
                    </ceb:BaseTransfer>
                </ceb:CEB621Message>
                """;

        CEB621Message ceb621Message = JAXBUtil.toBean(sourceXml, CEB621Message.class);
        assert ceb621Message != null;
        String guid = GUIDUtil.getGuid();
        ceb621Message.setGuid(guid);
        ceb621Message.getInventory().getInventoryHead().setGuid(guid);
        ceb621Message.setVersion("1.0");
        chinaEportReportClient.buildBaseTransfer(ceb621Message.getBaseTransfer());
        System.out.println(JacksonUtil.toJson(ceb621Message));
        String xml = JAXBUtil.toXml(ceb621Message);
        ThirdAbstractResponse<MessageRequest, String, String> report = chinaEportReportClient.report(ceb621Message, MessageType.CEB621Message);
        System.err.println(JacksonUtil.toPrettyJson(report));
    }

    /**
     * 普通http上报，方便参考
     */
    public static class Upload621XmlTests2 {

        public static void main(String[] args) {
            String xml = """
                    <ceb:CEB621Message guid="CEB621_HNZB_FXJK_20220209104827_0054" version="v1.0" xmlns:ceb="http://www.chinaport.gov.cn/ceb">
                        <ceb:Inventory>
                            <ceb:InventoryHead>
                                <ceb:guid>CEB621_HNZB_FXJK_20220209104827_0055</ceb:guid>
                                <ceb:appType>1</ceb:appType>
                                <ceb:appTime>20220209104827</ceb:appTime>
                                <ceb:appStatus>2</ceb:appStatus>
                                <ceb:orderNo>48037605991776256</ceb:orderNo>
                                <ceb:ebpCode>46121601BC</ceb:ebpCode>
                                <ceb:ebpName>xxxx互联网医药有限公司</ceb:ebpName>
                                <ceb:ebcCode>46121601BC</ceb:ebcCode>
                                <ceb:ebcName>xxxx互联网医药有限公司</ceb:ebcName>
                                <ceb:logisticsNo>2222222</ceb:logisticsNo>
                                <ceb:logisticsCode>4101986180</ceb:logisticsCode>
                                <ceb:logisticsName>圆通</ceb:logisticsName>
                                <ceb:copNo>4101W68006</ceb:copNo>
                                <ceb:assureCode>4101960AGP</ceb:assureCode>
                                <ceb:ieFlag>I</ceb:ieFlag>
                                <ceb:declTime>20220209</ceb:declTime>
                                <


e.now().subtract(const Duration(days: 1)),
      items: [
        ListItem(
            name: 'Spinach',
            imageUrl:
                'https://purcotton-omni.oss-cn-shenzhen.aliyuncs.com/omni/purcotton/lbh5/assets/flutter/foods/04.png'),
        ListItem(
            name: 'Almond Milk',
            imageUrl:
                'https://purcotton-omni.oss-cn-shenzhen.aliyuncs.com/omni/purcotton/lbh5/assets/flutter/foods/05.png'),
      ],
      isOpen: true,
    ),
    ShoppingList(
        id: '3',
        title: 'Dinner Party Essentials',
        description: 'Ready for fresh croissants and OJ!',
        createdDate: DateTime.now().subtract(const Duration(days: 4)),
        items: [
          ListItem(
              name: 'Spinach',
              imageUrl:
                  'https://purcotton-omni.oss-cn-shenzhen.aliyuncs.com/omni/purcotton/lbh5/assets/flutter/foods/06.png'),
          ListItem(
              name: 'Almond Milk',
              imageUrl:
                  'https://purcotton-omni.oss-cn-shenzhen.aliyuncs.com/omni/purcotton/lbh5/assets/flutter/foods/07.png'),
        ],
        isOpen: false,
        sharedWith: ['user1']),
  ];

  // 获取所有列表
  Future<List<ShoppingList>> getAllLists() async {
    // 模拟网络延迟
    await Future.delayed(const Duration(milliseconds: 500));
    return _allLists;
  }

  // 获取置顶列表
  Future<List<ShoppingList>> getPinnedLists() async {
    await Future.delayed(const Duration(milliseconds: 200));
    return _allLists.where((list) => list.isPinned).toList();
  }

  Future<List<ShoppingList>> getRecentLists() async {
    await Future.delayed(const Duration(milliseconds: 200));
    //按时间排序
    List<ShoppingList> sortedLists = List.from(_allLists);
    sortedLists
        .sort((a, b) => b.createdDate.compareTo(a.createdDate)); // 最新的在前面
    return sortedLists;
  }

  Future<List<ShoppingList>> getSharedLists() async {
    await Future.delayed(const Duration(milliseconds: 200)); // 模拟延迟
    return _allLists
        .where((list) => list.sharedWith != null && list.sharedWith!.isNotEmpty)
        .toList();
  }

  //切换开关状态
  Future<void> toggleListOpenStatus(String listId) async {
    await Future.delayed(const Duration(milliseconds: 100));
    ShoppingList? listToUpdate =
        _allLists.firstWhere((list) => list.id == listId);

    int index = _allLists.indexOf(listToUpdate);
    if (index != -1) {
      _allLists[index] = ShoppingList(
        id: listToUpdate.id,
        title: listToUpdate.title,
        description: listToUpdate.description,
        createdDate: listToUpdate.createdDate,
        items: listToUpdate.items,
        isPinned: listToUpdate.isPinned,
        sharedWith: listToUpdate.sharedWith,
        isOpen: !listToUpdate.isOpen, //切换状态
      );
    }
  }
}
// Dart imports:
import 'dart:io' show Platform;

// Flutter imports:
import 'package:flutter/material.dart';

// Package imports:
import 'package:flutter_pdfview/flutter_pdfview.dart';
import 'package:flutter


.x[8]), "\n")
	print("r9   ", hex(r.x[9]), "\n")
	print("r10  ", hex(r.x[10]), "\n")
	print("r11  ", hex(r.x[11]), "\n")
	print("r12  ", hex(r.x[12]), "\n")
	print("r13  ", hex(r.x[13]), "\n")
	print("r14  ", hex(r.x[14]), "\n")
	print("r15  ", hex(r.x[15]), "\n")
	print("r16  ", hex(r.x[16]), "\n")
	print("r17  ", hex(r.x[17]), "\n")
	print("r18  ", hex(r.x[18]), "\n")
	print("r19  ", hex(r.x[19]), "\n")
	print("r20  ", hex(r.x[20]), "\n")
	print("r21  ", hex(r.x[21]), "\n")
	print("r22  ", hex(r.x[22]), "\n")
	print("r23  ", hex(r.x[23]), "\n")
	print("r24  ", hex(r.x[24]), "\n")
	print("r25  ", hex(r.x[25]), "\n")
	print("r26  ", hex(r.x[26]), "\n")
	print("r27  ", hex(r.x[27]), "\n")
	print("r28  ", hex(r.x[28]), "\n")
	print("r29  ", hex(r.x[29]), "\n")
	print("lr   ", hex(r.x[30]), "\n")
	print("sp   ", hex(r.xsp), "\n")
	print("pc   ", hex(r.pc), "\n")
	print("cpsr ", hex(r.cpsr), "\n")
}

func stackcheck() {
	// TODO: not implemented on ARM
}
// Copyright 2014 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

// Go execution tracer.
// The tracer captures a wide range of execution events like goroutine
// creation/blocking/unblocking, syscall enter/exit/block, GC-related events,
// changes of heap size, processor start/stop, etc and writes them to a buffer
// in a compact form. A precise nanosecond-precision timestamp and a stack
// trace is captured for most events.
// See https://golang.org/s/go15trace for more info.

package runtime

import (
	"internal/abi"
	"internal/goarch"
	"internal/goos"
	"runtime/internal/atomic"
	"runtime/internal/sys"
	"unsafe"
)

// Event types in the trace, args are given in square brackets.
const (
	traceEvNone              = 0  // unused
	traceEvBatch             = 1  // start of per-P batch of events [pid, timestamp]
	traceEvFrequency         = 2  // contains tracer timer frequency [frequency (ticks per second)]
	traceEvStack             = 3  // stack [stack id, number of PCs, array of {PC, func string ID, file string ID, line}]
	traceEvGomaxprocs        = 4  // current value of GOMAXPROCS [timestamp, GOMAXPROCS, stack id]
	traceEvProcStart         = 5  // start of P [timestamp, thread id]
	traceEvProcStop          = 6  // stop of P [timestamp]
	traceEvGCStart           = 7  // GC start [timestamp, seq, stack id]
	traceEvGCDone            = 8  // GC done [timestamp]
	traceEvSTWStart          = 9  // STW start [timestamp, kind]
	traceEvSTWDone           = 10 // STW done [timestamp]
	traceEvGCSweepStart      = 11 // GC sweep start [timestamp, stack id]
	traceEvGCSweepDone       = 12 // GC sweep done [timestamp, swept, reclaimed]
	traceEvGoCreate          = 13 // goroutine creation [timestamp, new goroutine id, new stack id, stack id]
	traceEvGoStart           = 14 // goroutine starts running [timestamp, goroutine id, seq]
	traceEvGoEnd             = 15 // goroutine ends [timestamp]
	traceEvGoStop            = 16 // goroutine stops (like in select{}) [timestamp, stack]
	traceEvGoSched           = 17 // goroutine calls Gosched [timestamp, stack]
	traceEvGoPreempt         =


allel()
	testCases := []struct {
		desc string
		data WrappedTimestamp
	}{
		{"Reference", WrappedTimestamp{0, Timestamp{referenceTime}}},
		{"Empty", WrappedTimestamp{0, Timestamp{}}},
	}
	for _, tc := range testCases {
		bytes, err := json.Marshal(tc.data)
		if err != nil {
			t.Errorf("%v: Marshal err=%v", tc.desc, err)
		}
		var got WrappedTimestamp
		err = json.Unmarshal(bytes, &got)
		if err != nil {
			t.Errorf("%v: Unmarshal err=%v", tc.desc, err)
		}
		if !got.Time.Equal(tc.data.Time) {
			t.Errorf("%v: %+v != %+v", tc.desc, got, tc.data)
		}
	}
}
// Copyright 2023 The go-github AUTHORS. All rights reserved.
//
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

package github

import (
	"fmt"
	"net/http"
	"testing"
	"time"

	"github.com/google/go-cmp/cmp"
)

func TestActionsService_ListRepoVariables(t *testing.T) {
	t.Parallel()
	client, mux, _ := setup(t)

	mux.HandleFunc("/repos/o/r/actions/variables", func(w http.ResponseWriter, r *http.Request) {
		testMethod(t, r, "GET")
		testFormValues(t, r, values{"per_page": "2", "page": "2"})
		fmt.Fprint(w, `{"total_count":4,"variables":[{"name":"A","value":"AA","created_at":"2019-01-02T15:04:05Z","updated_at":"2020-01-02T15:04:05Z"},{"name":"B","value":"BB","created_at":"2019-01-02T15:04:05Z","updated_at":"2020-01-02T15:04:05Z"}]}`)
	})

	opts := &ListOptions{Page: 2, PerPage: 2}
	ctx := t.Context()
	variables, _, err := client.Actions.ListRepoVariables(ctx, "o", "r", opts)
	if err != nil {
		t.Errorf("Actions.ListRepoVariables returned error: %v", err)
	}

	want := &ActionsVariables{
		TotalCount: 4,
		Variables: []*ActionsVariable{
			{Name: "A", Value: "AA", CreatedAt: &Timestamp{time.Date(2019, time.January, 2, 15, 4, 5, 0, time.UTC)}, UpdatedAt: &Timestamp{time.Date(2020, time.January, 2, 15, 4, 5, 0, time.UTC)}},
			{Name: "B", Value: "BB", CreatedAt: &Timestamp{time.Date(2019, time.January, 2, 15, 4, 5, 0, time.UTC)}, UpdatedAt: &Timestamp{time.Date(2020, time.January, 2, 15, 4, 5, 0, time.UTC)}},
		},
	}
	if !cmp.Equal(variables, want) {
		t.Errorf("Actions.ListRepoVariables returned %+v, want %+v", variables, want)
	}

	const methodName = "ListRepoVariables"
	testBadOptions(t, methodName, func() (err error) {
		_, _, err = client.Actions.ListRepoVariables(ctx, "\n", "\n", opts)
		return err
	})

	testNewRequestAndDoFailure(t, methodName, client, func() (*Response, error) {
		got, resp, err := client.Actions.ListRepoVariables(ctx, "o", "r", opts)
		if got != nil {
			t.Errorf("testNewRequestAndDoFailure %v = %#v, want nil", methodName, got)
		}
		return resp, err
	})
}

func TestActio


]
	mov r1, #1
	bl Sprite_SetPriority
	add r6, r6, #1
	add r4, r4, #4
	add r5, r5, #4
	cmp r6, #0x1e
	blt _0223D10A
	ldr r4, _0223D1EC ; =ov70_02245784
	mov r6, #0
	add r5, r7, #0
_0223D14E:
	ldrh r0, [r4]
	add r0, #8
	lsl r0, r0, #0xc
	str r0, [sp, #8]
	ldrh r0, [r4, #2]
	add r0, r0, #6
	lsl r0, r0, #0xc
	str r0, [sp, #0xc]
	mov r0, #0xa
	str r0, [sp, #0x24]
	add r0, sp, #0
	bl Sprite_CreateAffine
	ldr r1, _0223D1FC ; =0x00000EC8
	str r0, [r5, r1]
	add r0, r1, #0
	ldr r0, [r5, r0]
	mov r1, #0x2a
	bl Sprite_SetAnimCtrlSeq
	ldr r0, _0223D1FC ; =0x00000EC8
	mov r1, #1
	ldr r0, [r5, r0]
	bl Sprite_SetPriority
	add r6, r6, #1
	add r4, r4, #4
	add r5, r5, #4
	cmp r6, #6
	blt _0223D14E
	ldr r4, _0223D200 ; =ov70_022456E8
	mov r6, #0
	add r5, r7, #0
_0223D190:
	ldrh r0, [r4]
	lsl r0, r0, #0xc
	str r0, [sp, #8]
	ldrh r0, [r4, #2]
	lsl r0, r0, #0xc
	str r0, [sp, #0xc]
	add r0, sp, #0
	bl Sprite_CreateAffine
	ldr r1, _0223D204 ; =0x00000F04
	str r0, [r5, r1]
	add r0, r1, #0
	add r1, r6, #0
	ldr r0, [r5, r0]
	add r1, #0x26
	bl Sprite_SetAnimCtrlSeq
	ldr r0, _0223D204 ; =0x00000F04
	mov r1, #1
	ldr r0, [r5, r0]
	bl Sprite_SetPriority
	add r6, r6, #1
	add r4, r4, #4
	add r5, r5, #4
	cmp r6, #2
	blt _0223D190
	mov r0, #0xf1
	lsl r0, r0, #4
	ldr r0, [r7, r0]
	mov r1, #1
	bl Sprite_SetDrawFlag
	mov r0, #0xf1
	lsl r0, r0, #4
	mov r2, #0x6a
	ldr r0, [r7, r0]
	mov r1, #0x37
	lsl r2, r2, #2
	bl ov70_02238F9C
	add sp, #0x30
	pop {r3, r4, r5, r6, r7, pc}
	nop
_0223D1E8: .word 0x00000122
_0223D1EC: .word ov70_02245784
_0223D1F0: .word ov70_02245786
_0223D1F4: .word 0x00000DCC
_0223D1F8: .word 0x00000DD8
_0223D1FC: .word 0x00


null);

  FIELD.setHtml(false, content, false, true);
  FIELD.setHtml(false, '', false, false);
  FIELD.setModalMode(true);
  FIELD.execCommand(goog.editor.Command.UPDATE_LOREM);
  assertFalse(
      'Must not turn on lorem ipsum while a dialog is open.',
      FIELD.queryCommandValue(goog.editor.Command.USING_LOREM));
  FIELD.setModalMode(true);

  FIELD.dispose();
}

function testLoremIpsumAndGetCleanContents() {
  goog.dom.setTextContent(goog.dom.getElement('field'), 'This is a field');
  FIELD.makeEditable();

  // test direct getCleanContents
  assertEquals(
      'field reported wrong contents', 'This is a field',
      FIELD.getCleanContents());

  // test indirect getCleanContents
  var contents = FIELD.getCleanContents();
  assertEquals('field reported wrong contents', 'This is a field', contents);

  // set field html, but explicitly forbid converting to lorem ipsum text
  FIELD.setHtml(false, ' ', true, false /* no lorem */);
  assertEquals(
      'field contains unexpected contents', getNbsp(),
      FIELD.getElement().innerHTML);
  assertEquals(
      'field reported wrong contents', getNbsp(), FIELD.getCleanContents());

  // now set field html allowing lorem
  FIELD.setHtml(false, ' ', true, true /* lorem */);
  assertEquals(
      'field reported wrong contents', goog.string.Unicode.NBSP,
      FIELD.getCleanContents());
  assertEquals(
      'field contains unexpected contents', UPPERCASE_CONTENTS,
      FIELD.getElement().innerHTML.toUpperCase());
}

function testLoremIpsumAndGetCleanContents2() {
  // make a field blank before we make it editable, and then check
  // that making it editable activates lorem.
  assert('field is editable', FIELD.isUneditable());
  goog.dom.setTextContent(goog.dom.getElement('field'), '   ');

  FIELD.makeEditable();
  assertEquals(
      'field contains unexpected contents', UPPERCASE_CONTENTS,
      FIELD.getElement().innerHTML.toUpperCase());

  FIELD.makeUneditable();
  assertEquals(
      'field contains unexpected contents', UPPERCASE_CONTENTS,
      goog.dom.getElement('field').innerHTML.toUpperCase());
}

function testLoremIpsumInClickToEditMode() {
  // in click-to-edit mode, trogedit manages the editable state of the editor,
  // so we must manage lorem ipsum in uneditable mode too.
  FIELD.makeEditable();

  assertEquals(
      'field contains unexpected contents', UPPERCASE_CONTENTS,
      FIELD.getElement().innerHTML.toUpperCase());

  FIELD.makeUneditable();
  assertEquals(
      'field contains unexpected contents', UPPERCASE_CONTENTS,
      goog.dom.getElement('field').innerHTML.toUpperCase());
}

function getNbsp() {
  // On WebKit (pre-528) and Opera,   shows up as its unicode character in
  // innerHTML under some circumstances.
  return (goog.userAgent.WEBKIT && !goog.userAgent.isVersionOrHigher('528')) ||
          goog.userAgent.OPERA ?
      '\u00a0' :
      ' ';
}
// Copyright 2008 The Closure Library Authors. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      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 specif


erbose: bool,

    /// Subcommand.
    #[structopt(subcommand)]
    pub command: Option<Command>,
}

impl Options {
    /// Resolve the Newt configuration for these options.
    pub fn config(&self) -> Result<Config> {
        if let Some(path) = &self.config {
            config::read_config_file(path)
        } else {
            config::resolve()
        }
        .map(|config| {
            config
                .with_notes_dir(self.notes_dir.clone())
                .with_editor(self.editor.clone())
        })
    }
}

fn new(config: &Config, name: Option<String>) -> Result<()> {
    let name = name
        .map(|n| Ok(PathBuf::from(n)))
        .unwrap_or_else(|| notes_dir::new_file_name(&config))?;
    let status = edit::edit_note(&config, &name)?;
    if !status.success() {
        eprintln!("Warning: editor process returned with status {}", status);
    }
    Ok(())
}

fn list(config: &Config) -> Result<()> {
    let files = notes_dir::list(config)?;
    let digits_space = util::digits(files.len()) + 1;

    let first_lines = files
        .iter()
        .map(|name| {
            let name_space = name.display().to_string().chars().count() + 3;
            notes_dir::first_line(config, name, 80 - name_space - digits_space)
        })
        .collect::<Result<Vec<_>>>()?;

    for (i, (name, line)) in files.iter().zip(first_lines.iter()).enumerate() {
        println!(
            "{} {} - {}",
            i,
            name.display(),
            line.as_deref().unwrap_or("<empty>")
        );
    }

    Ok(())
}

fn view(config: &Config, index: usize) -> Result<()> {
    let file = notes_dir::file_at_index(config, index)?;
    let status = edit::view_note(config, &file)?;
    if !status.success() {
        eprintln!("Warning: pager process returned with status {}", status);
    }
    Ok(())
}

fn cat(config: &Config, index: usize) -> Result<()> {
    let file = notes_dir::file_at_index(config, index)?;
    notes_dir::cat_file(config, file, &mut std::io::stdout())
}

fn edit(config: &Config, index: usize) -> Result<()> {
    let file = notes_dir::file_at_index(config, index)?;
    let status = edit::edit_note(config, &file)?;
    if !status.success() {
        eprintln!("Warning: editor process returned with status {}", status);
    }
    Ok(())
}

fn rm(config: &Config, index: usize) -> Result<()> {
    let file = notes_dir::file_at_index(config, index)?;
    let file_name = file.display();
    let first_line = notes_dir::first_line(config, &file, 77)?;

    let prompt = if let Some(line) = first_line {
        format!("Remove file {} with first line:\n\"{}\"?", file_name, line)
    } else {
        format!("Remove empty file {}?", file_name)
    };
    let yes_response = Some("Removing file");
    let no_response = Some("Cancelling");

    if util::prompt(&prompt, Some(false), yes_response, no_response)? {
        notes_dir::rm_file(config, &file)?;
    }

    Ok(())
}

fn notes_dir(config: &Config) -> Result<()> {
    let path = config.notes_dir()?;
    println!("{}", path.canonicalize()?.display());
    Ok(())
}

/// Execute the given command with the given configuration.
pub fn execute(command: Command, config: Config) -> Result<()> {
    match command {
        Command::New


orts"), ValueLayout.JAVA_INT.withName("dwInErrors"),
            ValueLayout.JAVA_INT.withName("dwOutDatagrams"), ValueLayout.JAVA_INT.withName("dwNumAddrs"));

    public static int GetUdpStatisticsEx(MemorySegment stats, int family) throws Throwable {
        return (int) GetUdpStatisticsEx.invokeExact(stats, family);
    }
}
/*
 * Copyright 2025 The OSHI Project Contributors
 * SPDX-License-Identifier: MIT
 */
package oshi.ffm.mac;

import static java.lang.foreign.MemoryLayout.paddingLayout;
import static java.lang.foreign.MemoryLayout.sequenceLayout;
import static java.lang.foreign.MemoryLayout.structLayout;
import static java.lang.foreign.MemoryLayout.PathElement.groupElement;
import static java.lang.foreign.ValueLayout.ADDRESS;
import static java.lang.foreign.ValueLayout.JAVA_BYTE;
import static java.lang.foreign.ValueLayout.JAVA_INT;
import static java.lang.foreign.ValueLayout.JAVA_LONG;
import static java.lang.foreign.ValueLayout.JAVA_SHORT;

import java.lang.foreign.MemoryLayout;
import java.lang.foreign.MemoryLayout.PathElement;
import java.lang.foreign.StructLayout;

/**
 * Constants and structures defined in MacOS header files
 */
public interface MacSystem {

    // host_statistics()
    int HOST_LOAD_INFO = 1; // System loading stats
    int HOST_VM_INFO = 2; // Virtual memory stats
    int HOST_CPU_LOAD_INFO = 3; // CPU load stats

    // host_statistics64()
    int HOST_VM_INFO64 = 4; // 64-bit virtual memory stats

    // host_cpu_load_info()
    int CPU_STATE_MAX = 4;
    int CPU_STATE_USER = 0;
    int CPU_STATE_SYSTEM = 1;
    int CPU_STATE_IDLE = 2;
    int CPU_STATE_NICE = 3;

    // host_processor_info() flavor
    int PROCESSOR_BASIC_INFO = 1;
    int PROCESSOR_CPU_LOAD_INFO = 2;

    // Data size
    int UINT64_SIZE = (int) JAVA_LONG.byteSize();
    int INT_SIZE = (int) JAVA_INT.byteSize();

    // params.h
    int MAXCOMLEN = 16;
    int MAXPATHLEN = 1024;
    int PROC_PIDPATHINFO_MAXSIZE = MAXPATHLEN * 4;

    // proc_info.h
    int PROC_ALL_PIDS = 1;
    int PROC_PIDTASKALLINFO = 2;
    int PROC_PIDTBSDINFO = 3;
    int PROC_PIDTASKINFO = 4;
    int PROC_PIDVNODEPATHINFO = 9;

    // length of fs type name including null
    int MFSTYPENAMELEN = 16;
    // length of buffer for returned name
    int MNAMELEN = MAXPATHLEN;

    // fsstat paths
    int MNT_WAIT = 0x0001;
    int MNT_NOWAIT = 0x0010;
    int MNT_DWAIT = 0x0100;

    // resource.h
    int RUSAGE_INFO_V2 = 2;

    int PROC_PIDLISTFDS = 1;
    int PROX_FDTYPE_SOCKET = 2;
    int PROC_PIDFDSOCKETINFO = 3;
    int TSI_T_NTIMERS = 4;
    int SOCKINFO_IN = 1;
    int SOCKINFO_TCP = 2;

    int UTX_USERSIZE = 256;
    int UTX_LINESIZE = 32;
    int UTX_IDSIZE = 4;
    int UTX_HOSTSIZE = 256;

    int AF_INET = 2; // The Internet Protocol version 4 (IPv4) address family.
    int AF_INET6 = 30; // The Internet Protocol version 6 (IPv6) address family.

    StructLayout PROC_BSD_INFO = structLayout(//
            JAVA_INT.withName("pbi_flags"), //
            JAVA_INT.withName("pbi_status"), //
            JAVA


293 2.286-9.5 3.04-14.31 3.083-4.803.043-9.902-.542-14.3-2.575-1.906-.88-3.9-2.02-4.988-3.887-.66-1.135-.626-2.21-.626-3.486v-4.38c1.232 2.64 3.94 4.422 6.757 5.51z'/%3e%3cpath d='m6.76 35.374c3.702 1.428 7.65 1.973 11.6 2.09 4.058.12 8.107-.423 12.023-1.522 4.227-1.186 7.227-3.624 8.463-6.145v5.965c-.076.524-.197 1.028-.384 1.5-.718 1.81-2.594 2.974-4.235 3.848-4.293 2.286-9.5 3.04-14.31 3.083-4.803.043-9.902-.542-14.3-2.575-1.906-.88-3.9-2.02-4.988-3.887-.66-1.134-.626-2.21-.626-3.485v-4.38c1.232 2.64 3.94 4.422 6.757 5.51z'/%3e%3c/g%3e%3c/svg%3e");mask-image:url("data:image/svg+xml,%3csvg height='44.262' viewBox='0 0 38.847 44.262' width='38.847' xmlns='http://www.w3.org/2000/svg'%3e%3cg fill='%23fff'%3e%3cpath d='m19.745 0c5.74.123 12.272.953 16.9 4.668 1.865 1.498 2.786 3.91 1.597 6.126-1.255 2.34-4.13 3.733-6.518 4.6-5.63 2.04-12.113 2.38-18.014 1.573-2.92-.4-5.91-1.103-8.58-2.374-2.19-1.04-4.74-2.805-5.093-5.403-.532-3.925 4.23-6.23 7.264-7.3 3.986-1.408 8.239-1.853 12.444-1.89 4.302.092-3.334.03 0 0z'/%3e%3cpath d='m6.76 17.5c3.702 1.427 7.65 1.972 11.6 2.09 4.058.12 8.107-.424 12.023-1.523 4.227-1.186 7.227-3.624 8.463-6.145v5.965c-.076.524-.197 1.028-.384 1.5-.718 1.81-2.594 2.974-4.235 3.848-4.293 2.286-9.5 3.04-14.31 3.083-4.803.043-9.902-.542-14.3-2.575-1.906-.88-3.9-2.02-4.988-3.887-.66-1.135-.626-2.21-.626-3.486v-4.38c1.232 2.64 3.94 4.422 6.757 5.51z'/%3e%3cpath d='m6.76 26.436c3.702 1.428 7.65 1.973 11.6 2.09 4.058.12 8.107-.423 12.023-1.522 4.227-1.186 7.227-3.624 8.463-6.145v5.964c-.076.524-.197 1.028-.384 1.5-.718 1.81-2.594 2.974-4.235 3.848-4.293 2.286-9.5 3.04-14.31 3.083-4.803.043-9.902-.542-14.3-2.575-1.906-.88-3.9-2.02-4.988-3.887-.66-1.135-.626-2.21-.626-3.486v-4.38c1.232 2.64 3.94 4.422 6.757 5.51z'/%3e%3cpath d='m6.76 35.374c3.702 1.428 7.65 1.973 11.6 2.09 4.058.12 8.107-.423 12.023-1.522 4.227-1.186 7.227-3.624 8.463-6.145v5.965c-.076.524-.197 1.028-.384 1.5-.718 1.81-2.594 2.974-4.235 3.848-4.293 2.286-9.5 3.04-14.31 3.083-4.803.043-9.902-.542-14.3-2.575-1.906-.88-3.9-2.02-4.988-3.887-.66-1.134-.626-2.21-.626-3.485v-4.38c1.232 2.64


Line::DepthPriority' has a wrong offset!");
//static_assert(offsetof(X2DebugUtil_X2DrawDebugLine, Thickness) == 0x000050, "Member 'X2DebugUtil_X2DrawDebugLine::Thickness' has a wrong offset!");

// Function b1.X2DebugUtil.X2DrawDebugMesh
// 0x0040 (0x0040 - 0x0000)
struct X2DebugUtil_X2DrawDebugMesh final
{
public:
	bool                                          DebugTag;                                          // 0x0000(0x0001)(ConstParm, Parm, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_1[0x7];                                        // 0x0001(0x0007)(Fixing Size After Last Property [ Dumper-7 ])
	const class UWorld*                           InWorld;                                           // 0x0008(0x0008)(ConstParm, Parm, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	TArray<struct FVector>                        Verts;                                             // 0x0010(0x0010)(ConstParm, Parm, OutParm, ZeroConstructor, ReferenceParm, NativeAccessSpecifierPublic)
	TArray<int32>                                 Indices;                                           // 0x0020(0x0010)(ConstParm, Parm, OutParm, ZeroConstructor, ReferenceParm, NativeAccessSpecifierPublic)
	struct FColor                                 Color;                                             // 0x0030(0x0004)(ConstParm, Parm, OutParm, ZeroConstructor, ReferenceParm, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          bPersistent;                                       // 0x0034(0x0001)(Parm, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_35[0x3];                                       // 0x0035(0x0003)(Fixing Size After Last Property [ Dumper-7 ])
	float                                         LifeTime;                                          // 0x0038(0x0004)(Parm, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         DepthPriority;                                     // 0x003C(0x0001)(Parm, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_3D[0x3];                                       // 0x003D(0x0003)(Fixing Struct Size After Last Property [ Dumper-7 ])
};
//static_assert(alignof(X2DebugUtil_X2DrawDebugMesh) == 0x000008, "Wrong alignment on X2DebugUtil_X2DrawDebugMesh");
//static_assert(sizeof(X2DebugUtil_X2DrawDebugMesh) == 0x000040, "Wrong size on X2DebugUtil_X2DrawDebugMesh");
//static_assert(offsetof(X2DebugUtil_X2DrawDebugMesh, DebugTag) == 0x000000, "Member 'X2DebugUtil_X2DrawDebugMesh::DebugTag' has a wrong offset!");
//static_assert(offsetof(X2DebugUtil_X2DrawDebugMesh, InWorld) == 0x000008, "Member 'X2DebugUtil_X2DrawDebugMesh::InWorld' has a wrong offset!");
//static_assert(offsetof(X2DebugUtil_X2DrawDebugMesh, Verts) == 0x000010, "Member 'X2DebugUtil_X2DrawDebugMesh::Verts' has a wrong offset!");
//static_assert(offsetof(X2DebugUtil_X2DrawDebugMesh, Indices) == 0x000020, "Member 'X2DebugUtil_X2DrawDebugMesh::Indices' has a wrong offset!");
//static_assert(offsetof(X2DebugUtil_X2DrawDebugMesh, Color) == 0x000030, "Member 'X2DebugUtil_X2DrawDebugMesh::Color' has a wrong offset!");
//static_assert(offsetof(X2DebugUtil_X2DrawDebugMesh, bPersistent) == 0x000034, "Member 'X2DebugUtil_X2


=x`
	ref, _, _, ok = DetectSyntax([]byte(dt))
	require.True(t, ok)
	require.Equal(t, "x", ref)

	dt = `{"syntax": "foo", "bar": ["abc"]}`
	ref, _, _, ok = DetectSyntax([]byte(dt))
	require.True(t, ok)
	require.Equal(t, "foo", ref)

	dt = `{"syntax": "foo"`
	_, _, _, ok = DetectSyntax([]byte(dt))
	require.False(t, ok)

	dt = `{"syntax": "foo"}
# syntax=bar`
	_, _, _, ok = DetectSyntax([]byte(dt))
	require.False(t, ok)
}

func TestDetectSyntaxBOM(t *testing.T) {
	t.Parallel()

	dt := append([]byte{0xEF, 0xBB, 0xBF}, []byte(`# syntax = myfrontend
FROM busybox
`)...)
	ref, cmdline, loc, ok := DetectSyntax(dt)
	require.True(t, ok)
	require.Equal(t, "myfrontend", ref)
	require.Equal(t, "myfrontend", cmdline)
	require.Equal(t, 1, loc[0].Start.Line)
	require.Equal(t, 1, loc[0].End.Line)
}

func TestParseDirective(t *testing.T) {
	t.Parallel()

	dt := `#check = skip=all // opts
FROM busybox
`
	ref, cmdline, loc, ok := ParseDirective("check", []byte(dt))
	require.True(t, ok)
	require.Equal(t, "skip=all", ref)
	require.Equal(t, "skip=all // opts", cmdline)
	require.Equal(t, 1, loc[0].Start.Line)
	require.Equal(t, 1, loc[0].End.Line)

	dt = `#!/bin/sh
# check = skip=all
FROM busybox
`
	ref, _, loc, ok = ParseDirective("check", []byte(dt))
	require.True(t, ok)
	require.Equal(t, "skip=all", ref)
	require.Equal(t, 2, loc[0].Start.Line)
	require.Equal(t, 2, loc[0].End.Line)

	dt = `#!/bin/sh

# check = skip=all
`
	_, _, _, ok = ParseDirective("check", []byte(dt))
	require.False(t, ok)

	dt = `FROM busybox
RUN ls
`
	ref, cmdline, _, ok = ParseDirective("check", []byte(dt))
	require.False(t, ok)
	require.Equal(t, "", ref)
	require.Equal(t, "", cmdline)

	dt = `//check=skip=all
//key=value`
	_, _, _, ok = ParseDirective("check", []byte(dt))
	require.False(t, ok)
}
package parser

import (
	"bytes"
	"testing"

	"github.com/stretchr/testify/require"
)

func TestParseExtractsHeredoc(t *testing.T) {
	dockerfile := bytes.NewBufferString(`
FROM alpine:3.6

ENV NAME=me

RUN ls

USER <<INVALID
INVALID

RUN <<EMPTY
EMPTY

RUN 3<<EMPTY2
EMPTY2

RUN "<<NOHEREDOC"

RUN <<INDENT
	foo
	bar
INDENT

RUN <<-UNINDENT
	baz
	quux
UNINDENT

RUN <<-UNINDENT2
	baz
	quux
	UNINDENT2

RUN <<-EXPAND
	expand $NAME
EXPAND

RUN <<-'NOEXPAND'
	don't expand $NAME
NOEXPAND

RUN <<COPY
echo hello world
echo foo bar
COPY

RUN <<COMMENT
# internal comment
echo hello world
echo foo bar # trailing comment
COMMENT

RUN --mount=type=cache,target=/foo <<MOUNT
echo hello
MOUNT

COPY <<FILE1 <<FILE2 /dest
content 1
FILE1
content 2
FILE2

COPY <<


td class="diffspec" colspan="2">Statistics

Package android.view.accessibility

  Added Classes and Interfaces

  <nobr>AccessibilityManager.
AccessibilityStateChangeListener</nobr>

  <nobr>AccessibilityNodeInfo</nobr>

  <nobr>AccessibilityRecord</nobr>

  Changed Classes

  <nobr>AccessibilityEvent</nobr>

  <nobr>AccessibilityManager</nobr>

        Except as noted, this content is licensed under
         Creative Commons Attribution 2.5.
        For details and restrictions, see the Content License.

        Site Terms of Service -
        Privacy Policy -
        Brand Guidelines


-muted-foreground">{formatFileSize(file.size)}

                  <Button
                    variant="ghost"
                    size="sm"
                    onClick={() => removeFile(index)}
                    className="h-6 w-6 p-0 hover:bg-destructive/10 hover:text-destructive"
                  >
                    <X className="h-3 w-3" />
                  </Button>

              ))}

            <Button
              onClick={handleSend}
              disabled={uploading || disabled}
              className="w-full"
            >
              {uploading ? (
                <>

                  处理中...
                </>
              ) : (
                <>
                  <Upload className="h-4 w-4 mr-2" />
                  发送 {selectedFiles.length} 个文件
                </>
              )}
            </Button>

        )}
      </CardContent>
    </Card>
  );
};
```

#### 传输进度组件
```typescript
// src/components/TransferProgress.tsx
import React, { useEffect, useState } from 'react';
import { p2pService, TransferProgress as TransferProgressType } from '../utils/tauri';
import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card';
import { Progress } from '@/components/ui/progress';
import { Button } from '@/components/ui/button';
import { Badge } from '@/components/ui/badge';
import { Separator } from '@/components/ui/separator';
import {
  Download,
  Upload,
  Pause,
  Play,
  X,
  CheckCircle,
  AlertCircle,
  Clock,
  Zap
} from 'lucide-react';

interface TransferItem extends TransferProgressType {
  id: string;
  direction: 'send' | 'receive';
  status: 'active' | 'paused' | 'completed' | 'failed';
}

interface TransferProgressProps {
  transfers: TransferItem[];
  onPauseTransfer: (id: string) => void;
  onResumeTransfer: (id: string) => void;
  onCancelTransfer: (id: string) => void;
}

export const TransferProgress: React.FC<TransferProgressProps> = ({
  transfers,
  onPauseTransfer,
  onResumeTransfer,
  onCancelTransfer
}) => {
  const formatSpeed = (bytesPerSecond: number) => {
    if (bytesPerSecond === 0) return '0 B/s';
    const k = 1024;
    const sizes = ['B/s', 'KB/s', 'MB/s', 'GB/s'];
    const i = Math.floor(Math.log(bytesPerSecond) / Math.log(k));
    return parseFloat((bytesPerSecond / Math.pow(k, i)).toFixed(1)) + ' ' + sizes[i];
  };

  const formatTime = (seconds: number) => {
    if (seconds === Infinity || isNaN(seconds)) return '未知';
    const hours = Math.floor(seconds / 3600);
    const minutes = Math.floor((seconds % 3600) / 60);
    const secs = Math.floor(seconds % 60);

    if (hours > 0) return `${hours}h ${minutes}m`;
    if (minutes > 0) return `${minutes}m ${secs}s`;
    return `${secs}s`;
  };

  const getStatusIcon = (status: TransferItem['status'], direction: TransferItem['direction']) => {
    if (status === 'completed') return <CheckCircle className="h-4 w-4 text-green-500" />;
    if (status === 'failed') return <AlertCircle className="h-4 w-4 text-red-500" />;
    if (status === 'paused') return <Pause className="h-4 w-4 text-yellow-500" />;
    return direction === 'send' ?
      <Upload className="h-4 w-4 text-