077v-7.943z"></path>
<path d="M24.039 63.285c0 0 0 0-0 0-0.731 0-1.325-0.59-1.33-1.321v-0.001l-0.093-13.352c0-0.003-0-0.006-0-0.009 0-0.735 0.596-1.33 1.33-1.33 0 0 0 0 0 0l22.76 0.013c0.735 0 1.33 0.596 1.33 1.33v0 13.235c0 0.735-0.596 1.33-1.33 1.33v0l-22.661 0.104zM46.706 61.851v0zM25.288 49.933l0.073 10.692 20.015-0.098v-10.58z"></path>
<path d="M50.431 15.527c0 1.029-0.834 1.862-1.862 1.862s-1.862-0.834-1.862-1.862c0-1.029 0.834-1.862 1.862-1.862v0c0.013-0 0.029-0.001 0.044-0.001 1.004 0 1.819 0.814 1.819 1.819 0 0.016-0 0.031-0.001 0.047l0-0.002z"></path>
<path d="M40.054 56.633h-9.312c-0.735 0-1.33-0.596-1.33-1.33s0.596-1.33 1.33-1.33v0h9.312c0.735 0 1.33 0.596 1.33 1.33s-0.596 1.33-1.33 1.33v0z"></path>
</symbol><symbol id="content-modules" viewbox="0 0 64 64">
<path d="M25.427 29.091h-20.308c-2.424-0.002-4.389-1.967-4.391-4.391v-20.309c0.002-2.424 1.967-4.389 4.391-4.391h20.309c2.424 0.002 4.389 1.967 4.391 4.391v20.309c-0.002 2.424-1.967 4.389-4.391 4.391h-0zM5.119 2.909c-0.818 0.001-1.481 0.664-1.482 1.482v20.308c0.001 0.818 0.664 1.481 1.482 1.482h20.308c0.818-0.001 1.481-0.664 1.482-1.482v-20.308c-0.001-0.818-0.664-1.481-1.482-1.482h-0z"></path>
<path d="M2.182 26.182c-0.803-0-1.454-0.651-1.454-1.454 0-0.402 0.163-0.765 0.426-1.028l9.756-9.756 4.364 4.364 8.727-8.727 5.392 5.392c0.253 0.261 0.408 0.618 0.408 1.011 0 0.803-0.651 1.454-1.454 1.454-0.393 0-0.749-0.156-1.011-0.409l-3.335-3.335-8.727 8.727-4.364-4.364-7.699 7.699c-0.263 0.263-0.627 0.426-1.028 0.426v0z"></path>
<path d="M13.818 8c0 1.205-0.977 2.182-2.182 2.182s-2.182-0.977-2.182-2.182c0-1.205 0.977-2.182 2.182-2.182s2.182 0.977 2.182 2.182z"></path>
<path d


t call animateJoints(), or the mesh will not animate. */
	virtual void setTransitionTime(f32 Time) = 0;

	//! animates the joints in the mesh based on the current frame.
	/** Also takes in to account transitions. */
	virtual void animateJoints() = 0;

	//! render mesh ignoring its transformation.
	/** Culling is unaffected. */
	virtual void setRenderFromIdentity(bool On) = 0;

	//! Creates a clone of this scene node and its children.
	/** \param newParent An optional new parent.
	\param newManager An optional new scene manager.
	\return The newly created clone of this node. */
	virtual ISceneNode *clone(ISceneNode *newParent = 0, ISceneManager *newManager = 0) = 0;
};

} // end namespace scene


/* exclusive or, ie. gf(2^8) add */
	eor	z_dest1.d, z_gft1_lo.d, z_dest1.d
	eor	z_dest1.d, z_dest1.d, z_gft1_hi.d

	ldp	q_gft3_lo, q_gft3_hi, [x_tbl3], #32
	prfb	pldl2keep, p0, [x_tbl3]

	/* dest 2 */
	tbl	z_gft2_lo.b, {z_gft2_lo.b}, z_src_lo.b
	tbl	z_gft2_hi.b, {z_gft2_hi.b}, z_src_hi.b
	eor	z_dest2.d, z_gft2_lo.d, z_dest2.d
	eor	z_dest2.d, z_dest2.d, z_gft2_hi.d

	/* dest 3 */
	tbl	z_gft3_lo.b, {z_gft3_lo.b}, z_src_lo.b
	tbl	z_gft3_hi.b, {z_gft3_hi.b}, z


lass PlayNotifier extends _$PlayNotifier {
  @override
  FutureOr<Flash> build(Account account, String playId) {
    return _misskey.flash.show(FlashShowRequest(flashId: playId));
  }

  Misskey get _misskey => ref.read(misskeyProvider(account));

  Future<void> updatePlay({
    required String title,
    required String summary,
    required String script,
    FlashVisibility? visibility,
  }) async {
    await _misskey.flash.update(
      FlashUpdateRequest(
        flashId: playId,
        title: title,
        summary: summary,
        script: script,
        permissions: [],
        visibility: visibility,
      ),
    );
    final play = await future;
    state = AsyncValue.data(
      play.copyWith(title: title, summary: summary, script: script),
    );
  }

  Future<void> like() async {
    await _misskey.flash.like(FlashLikeRequest(flashId: playId));
    final play = await future;
    state = AsyncValue.data(
      play.copyWith(isLiked: true, likedCount: (play.likedCount ?? 0) + 1),
    );
  }

  Future<void> unlike() async {
    await _misskey.flash.unlike(FlashUnlikeRequest(flashId: playId));
    final play = await future;
    state = AsyncValue.data(
      play.copyWith(isLiked: false, likedCount: (play.likedCount ?? 1) - 1),
    );
  }
}
// GENERATED CODE - DO NOT MODIFY BY HAND

part of 'chat_room_invitations_notifier_provider.dart';

// **************************************************************************
// RiverpodGenerator
// **************************************************************************

String _$chatRoomInvitationsNotifierHash() =>
    r'ba24d298c29b4db0d588b417e2b3e937e53a4b1b';

/// Copied from Dart SDK
class _SystemHash {
  _SystemHash._();

  static int combine(int hash, int value) {
    // ignore: parameter_assignments
    hash = 0x1fffffff & (hash + value);
    // ignore: parameter_assignments
    hash = 0x1fffffff & (hash + ((0x0007ffff & hash) << 10));
    return hash ^ (hash >> 6);
  }

  static int finish(int hash) {
    // ignore: parameter_assignments
    hash = 0x1fffffff & (hash + ((0x03ffffff & hash) << 3));
    // ignore: parameter_assignments
    hash = hash ^ (hash >> 11);
    return 0x1fffffff & (hash + ((0x00003fff & hash) << 15));
  }
}

abstract class _$ChatRoomInvitationsNotifier
    extends BuildlessAutoDisposeStreamNotifier<PaginationState<ChatJoining>> {
  late final Account account;
  late final String roomId;

  Stream<PaginationState<ChatJoining>> build(Account account, String roomId);
}

/// See also [ChatRoomInvitationsNotifier].
@ProviderFor(ChatRoomInvitationsNotifier)
const chatRoomInvitationsNotifierProvider = ChatRoomInvitationsNotifierFamily();

/// See also [ChatRoomInvitationsNotifier].
class ChatRoomInvitationsNotifierFamily
    extends Family<AsyncValue<PaginationState<ChatJoining>>> {
  /// See also [ChatRoomInvitationsNotifier].
  const ChatRoomInvitationsNotifierFamily();

  /// See also [ChatRoomInvitationsNotifier].
  ChatRoomInvitationsNotifierProvider call(Account account, String roomId) {
    return ChatRoomInvitationsNotifierProvider(account, roomId);
  }

  @override
  ChatRoomInvitationsNotifierProvider getProviderOverride(
    covariant ChatRoomInvitationsNotifierProvider provider,
  ) {
    return call(provider.account, provider.roomId);
  }

  static const Iterable<ProviderOrFamily>? _dependencies = null;

  @override
  Iterable<ProviderOrFamily>? get dependencies => _dependencies;

  static const Iterable<ProviderOrFamily>? _allTransitiveDependencies = null;

  @override
  Iterable<Provider


- **co_24h_24_month_avg**: DOUBLE, 24个月平均CO 24小时浓度
- **no2_24_month_avg**: DOUBLE, 24个月平均NO2
- **no2_24h_24_month_avg**: DOUBLE, 24个月平均NO2 24小时浓度
- **o3_24_month_avg**: DOUBLE, 24个月平均O3
- **o3_24h_24_month_avg**: DOUBLE, 24个月平均O3 24小时浓度
- **o3_8h_24_month_avg**: DOUBLE, 24个月平均O3 8小时浓度
- **o3_8h_24h_24_month_avg**: DOUBLE, 24个月平均O3 8小时24小时浓度
- **pm10_24_month_avg**: DOUBLE, 24个月平均PM10
- **pm10_24h_24_month_avg**: DOUBLE, 24个月平均PM10 24小时浓度
- **pm2_5_24_month_avg**: DOUBLE, 24个月平均PM2.5
- **pm2_5_24h_24_month_avg**: DOUBLE, 24个月平均PM2.5 24小时浓度
- **so2_24_month_avg**: DOUBLE, 24个月平均SO2
- **so2_24h_24_month_avg**: DOUBLE, 24个月平均SO2 24小时浓度
- **aqi_36_month_avg**: DOUBLE, 36个月平均AQI
- **co_36_month_avg**: DOUBLE, 36个月平均CO
- **co_24h_36_month_avg**: DOUBLE, 36个月平均CO 24小时浓度
- **no2_36_month_avg**: DOUBLE, 36个月平均NO2
- **no2_24h_36_month_avg**: DOUBLE, 36个月平均NO2 24小时浓度
- **o3_36_month_avg**: DOUBLE, 36个月平均O3
- **o3_24h_36_month_avg**: DOUBLE, 36个月平均O3 24小时浓度
- **o3_8h_36_month_avg**: DOUBLE, 36个月平均O3 8小时浓度
- **o3_8h_24h_36_month_avg**: DOUBLE, 36个月平均O3 8小时24小时浓度
- **pm10_36_month_avg**: DOUBLE, 36个月平均PM10
- **pm10_24h_36_month_avg**: DOUBLE, 36个月平均PM10 24小时浓度
- **pm2_5_36_month_avg**: DOUBLE, 36个月平均PM2.5
- **pm2_5_24h_36_month_avg**: DOUBLE, 36个月平均PM2.5 24小时浓度
- **so2_36_month_avg**: DOUBLE, 36个月平均SO2
- **so2_24h_36_month_avg**: DOUBLE, 36个月平均SO2 24小时浓度
- **aqi_3_month_avg**: DOUBLE, 3个月平均AQI
- **co_3_month_avg**: DOUBLE, 3个月平均CO
- **co_24h_3_month_avg**: DOUBLE, 3个月平均CO 24小时浓度
- **no2_3_month_avg**: DOUBLE, 3个月平均NO2
- **no2_24h_3_month_avg**: DOUBLE, 3个月平均NO2 24小时浓度
- **o3_3_month_avg**: DOUBLE, 3个月平均O3
- **o3_24h_3


кюлоты",
[7063] = "Багровое шелковое одеяние",
[7064] = "Багровые шелковые перчатки",
[7065] = "Зеленые шелковые доспехи",
[7067] = "Первородная земля",
[7068] = "Первородный огонь",
[7069] = "Первородный воздух",
[7070] = "Первородная вода",
[7071] = "Железная скоба",
[7072] = "Чешуя наги",
[7073] = "Сломанный клык",
[7074] = "Надколотый коготь",
[7075] = "Ядро земли",
[7076] = "Субстанция Земли",
[7077] = "Сердце огня",
[7078] = "Субстанция Огня",
[7079] = "Магическая сфера воды",
[7080] = "Субстанция Воды",
[7081] = "Дыхание ветра",
[7082] = "Субстанция Воздуха",
[7083] = "Очищенный самоцвет Кора",
[7084] = "Выкройка: багровые шелковые наплечники",
[7085] = "Выкройка: лазурные наплечники",
[7086] = "Выкройка: шелковый пояс земли",
[7087] = "Выкройка: багровый шелковый плащ",
[7088] = "Выкройка: багровое шелковое одеяние",
[7089] = "Выкройка: лазурный шелковый плащ",
[7090] = "Выкройка: зеленые шелковые доспехи",
[7091] = "Выкройка: перчатки истинной веры",
[7092] = "Выкройка: краги тьмы",
[7094] = "Плавниковая ветвь",
[7095] = "Болотные сапоги",
[7096] = "Выдернутое перо",
[7097] = "Окорочок",
[7098] = "Расщепленный бивень",
[7099] = "Отрубленная клешня",
[7100] = "Липкая лимфа",
[7101] = "Крохотный глаз",
[7106] = "Зодиакальные Перчатки",
[7107] = "Пояс Звезд",
[7108] = "Щит пехотинца",
[7109] = "Кулачный щит первопроходца",
[7110] = "Сребротканевая броня",
[7111] = "Броня ночного неба",
[7112] = "Броня зари",
[7113] = "Туманная броня",
[7114] = "Выкройка: лазурные шелковые перчатки",
[7115] = "Фамильный топор",
[7116] = "Кинжал-наследие",
[7117] = "Молот-наследие",
[7118] = "Меч-наследие",
[7119] = "Дергающийся усик",
[7120] = "Оплот Руги"


,
    0x1D6A3: { c: 'z', f: 'T' },
    0x1D6A8: { c: 'A', f: 'B' },
    0x1D6A9: { c: 'B', f: 'B' },
    0x1D6AA: { c: '\\393', f: 'B' },
    0x1D6AB: { c: '\\394', f: 'B' },
    0x1D6AC: { c: 'E', f: 'B' },
    0x1D6AD: { c: 'Z', f: 'B' },
    0x1D6AE: { c: 'H', f: 'B' },
    0x1D6AF: { c: '\\398', f: 'B' },
    0x1D6B0: { c: 'I', f: 'B' },
    0x1D6B1: { c: 'K', f: 'B' },
    0x1D6B2: { c: '\\39B', f: 'B' },
    0x1D6B3: { c: 'M', f: 'B' },
    0x1D6B4: { c: 'N', f: 'B' },
    0x1D6B5: { c: '\\39E', f: 'B' },
    0x1D6B6: { c: 'O', f: 'B' },
    0x1D6B7: { c: '\\3A0', f: 'B' },
    0x1D6B8: { c: 'P', f: 'B' },
    0x1D6BA: { c: '\\3A3', f: 'B' },
    0x1D6BB: { c: 'T', f: 'B' },
    0x1D6BC: { c: '\\3A5', f: 'B' },
    0x1D6BD: { c: '\\3A6', f: 'B' },
    0x1D6BE: { c: 'X', f: 'B' },
    0x1D6BF: { c: '\\3A8', f: 'B' },
    0x1D6C0: { c: '\\3A9', f: 'B' },
    0x1D6C1: { c: '\\2207', f: 'B' },
    0x1D6E2: { c: 'A', f: 'I' },
    0x1D6E3: { c: 'B', f: 'I' },
    0x1D6E4: { c: '\\393', f: 'I' },
    0x1D6E5: { c: '\\394', f: 'I' },
    0x1D6E6: { c: 'E', f: 'I' },
    0x1D6E7: { c: 'Z', f: 'I' },
    0x1D6E8: { c: 'H', f: 'I' },
    0x1D6E9: { c: '\\398', f: 'I' },
    0x1D6EA: { c: 'I', f: 'I' },
    0x1D6EB: { c: 'K', f: 'I' },
    0x1D6EC: { c: '\\39B', f: 'I' },
    0x1D6ED: { c: 'M', f: 'I' },
    0x1D6EE: { c: 'N', f: 'I' },
    0x1D6EF: { c: '\\39E', f: 'I' },
    0x1D6F0: { c: 'O', f: 'I' },
    0x1D6F1: { c: '\\3A0', f: 'I' },
    0x1D6F2: { c: 'P', f: 'I' },
    0x1D6F4: { c: '\\3A3', f: 'I' },
    0x1D6F5: { c: 'T', f: 'I' },
    0x1D6F6


 0xc6dccb23, 0xfc68b6ed, 0xf163b8e4, 0xdccad731, 0x85104263, 0x22401397, 0x112084c6,
	0x247d854a, 0x3df8d2bb, 0x3211aef9, 0xa16dc729, 0x2f4b1d9e, 0x30f3dcb2, 0x52ec0d86, 0xe3d077c1,
	0x166c2bb3, 0xb999a970, 0x48fa1194, 0x642247e9, 0x8cc4a8fc, 0x3f1aa0f0, 0x2cd8567d, 0x90ef2233,
	0x4ec78749, 0xd1c1d938, 0xa2fe8cca, 0x0b3698d4, 0x81cfa6f5, 0xde28a57a, 0x8e26dab7, 0xbfa43fad,
	0x9de42c3a, 0x920d5078, 0xcc9b6a5f, 0x4662547e, 0x13c2f68d, 0xb8e890d8, 0xf75e2e39, 0xaff582c3,
	0x80be9f5d, 0x937c69d0, 0x2da96fd5, 0x12b3cf25, 0x993bc8ac, 0x7da71018, 0x636ee89c, 0xbb7bdb3b,
	0x7809cd26, 0x18f46e59, 0xb701ec9a, 0x9aa8834f, 0x6e65e695, 0xe67eaaff, 0xcf0821bc, 0xe8e6ef15,
	0x9bd9bae7, 0x36ce4a6f, 0x09d4ea9f, 0x7cd629b0, 0xb2af31a4, 0x23312a3f, 0x9430c6a5, 0x66c035a2,
	0xbc37744e, 0xcaa6fc82, 0xd0b0e090, 0xd81533a7, 0x984af104, 0xdaf741ec, 0x500e7fcd, 0xf62f1791,
	0xd68d764d, 0xb04d43ef, 0x4d54ccaa, 0x04dfe496, 0xb5e39ed1, 0x881b4c6a, 0x1fb8c12c, 0x517f4665,
	0xea049d5e, 0x355d018c, 0x7473fa87, 0x412efb0b, 0x1d5ab367, 0xd25292db, 0x5633e910, 0x47136dd6,
	0x618c9ad7, 0x0c7a37a1, 0x148e59f8, 0x3c89eb13, 0x27eecea9, 0xc935b761, 0xe5ede11c, 0xb13c7a47,
	0xdf599cd2, 0x733f55f2, 0xce791814, 0x37bf73c7, 0xcdea53f7, 0xaa5b5ffd, 0x6f14df3d, 0xdb867844,
	0xf381caaf, 0xc43eb968, 0x342c3824, 0x405fc2a3, 0xc372161d, 0x250cbce2, 0x498b283c, 0x9541ff0d,
	0x017139a8, 0xb3de080c, 0xe49cd8b4, 0xc1906456, 0x84617bcb, 0xb670d532, 0x5c74486c, 0x5742d0b8,
}
var td3 = [256]uint32{
	0xf4a75051, 0x4165537e, 0x17a4c31a, 0x275


.has_default_value = false
slot2.CS_18104_ID_FIELD.default_value = 0
slot2.CS_18104_ID_FIELD.type = 13
slot2.CS_18104_ID_FIELD.cpp_type = 3
CS_18104.name = "cs_18104"
CS_18104.full_name = "p18.cs_18104"
CS_18104.nested_types = {}
CS_18104.enum_types = {}
CS_18104.fields = {
	slot2.CS_18104_ID_FIELD
}
CS_18104.is_extendable = false
CS_18104.extensions = {}
slot2.SC_18105_INFO_FIELD.name = "info"
slot2.SC_18105_INFO_FIELD.full_name = "p18.sc_18105.info"
slot2.SC_18105_INFO_FIELD.number = 1
slot2.SC_18105_INFO_FIELD.index = 0
slot2.SC_18105_INFO_FIELD.label = 2
slot2.SC_18105_INFO_FIELD.has_default_value = false
slot2.SC_18105_INFO_FIELD.default_value = nil
slot2.SC_18105_INFO_FIELD.message_type = TARGETINFO
slot2.SC_18105_INFO_FIELD.type = 11
slot2.SC_18105_INFO_FIELD.cpp_type = 10
SC_18105.name = "sc_18105"
SC_18105.full_name = "p18.sc_18105"
SC_18105.nested_types = {}
SC_18105.enum_types = {}
SC_18105.fields = {
	slot2.SC_18105_INFO_FIELD
}
SC_18105.is_extendable = false
SC_18105.extensions = {}
slot2.CS_18201_PAGE_FIELD.name = "page"
slot2.CS_18201_PAGE_FIELD.full_name = "p18.cs_18201.page"
slot2.CS_18201_PAGE_FIELD.number = 1
slot2.CS_18201_PAGE_FIELD.index = 0
slot2.CS_18201_PAGE_FIELD.label = 2
slot2.CS_18201_PAGE_FIELD.has_default_value = false
slot2.CS_18201_PAGE_FIELD.default_value = 0
slot2.CS_18201_PAGE_FIELD.type = 13
slot2.CS_18201_PAGE_FIELD.cpp_type = 3
slot2.CS_18201_TYPE_FIELD.name = "type"
slot2.CS_18201_TYPE_FIELD.full_name = "p18.cs_18201.type"
slot2.CS_18201_TYPE_FIELD.number = 2
slot2.CS_18201_TYPE_FIELD.index = 1
slot2.CS_18201_TYPE_FIELD.label = 2
slot2.CS_18201_TYPE_FIELD.has_default_value = false
slot2.CS_18201_TYPE_FIELD.default_value = 0
slot2.CS_18201_TYPE_FIELD.type = 13
slot2.CS_18201_TYPE_FIELD.cpp_type = 3
slot2.CS_18201_ACT_ID_FIELD.name = "act_id"
slot2.CS_18201_ACT_ID_FIELD.full_name = "p18.cs_18201.act_id"
slot2.CS_18201_ACT_ID_FIELD.number = 3
slot2.CS_18201_ACT_ID_FIELD.index = 2
slot2.CS_18201_ACT_ID_FIELD.label = 1
slot2.CS_18201_ACT_ID_FIELD.has_default_value = false
slot2.CS_18201_ACT_ID_FIELD.default_value = 0
slot2.CS_18201_ACT_ID_FIELD.type = 13
slot2.CS_18201_ACT_ID_FIELD.cpp_type = 3
CS_18201.name = "cs_18201"
CS_18201.full_name = "p18.cs_18201


_CANT_USE_DTM_FOR_OUTPUT = 96;

    { ER_CANT_USE_DTM_FOR_OUTPUT,
      "Nem\u00f4\u017ee pou\u017ei\u0165 DTMLiaison pre v\u00fdstupn\u00fd uzol DOM... namiesto neho odo\u0161lite org.apache.xpath.DOM2Helper!"},

  /** ER_CANT_USE_DTM_FOR_INPUT          */
//  public static final int ER_CANT_USE_DTM_FOR_INPUT = 97;

    { ER_CANT_USE_DTM_FOR_INPUT,
      "Nem\u00f4\u017ee pou\u017ei\u0165 DTMLiaison pre vstupn\u00fd uzol DOM... namiesto neho odo\u0161lite org.apache.xpath.DOM2Helper!"},

  /** ER_CALL_TO_EXT_FAILED          */
//  public static final int ER_CALL_TO_EXT_FAILED = 98;

    { ER_CALL_TO_EXT_FAILED,
      "Volanie elementu roz\u0161\u00edrenia zlyhalo: {0}"},

  /** ER_PREFIX_MUST_RESOLVE          */
//  public static final int ER_PREFIX_MUST_RESOLVE = 99;

    { ER_PREFIX_MUST_RESOLVE,
      "Predpona sa mus\u00ed rozl\u00ed\u0161i\u0165 do n\u00e1zvov\u00e9ho priestoru: {0}"},

  /** ER_INVALID_UTF16_SURROGATE          */
//  public static final int ER_INVALID_UTF16_SURROGATE = 100;

    { ER_INVALID_UTF16_SURROGATE,
      "Bolo zisten\u00e9 neplatn\u00e9 nahradenie UTF-16: {0} ?"},

  /** ER_XSLATTRSET_USED_ITSELF          */
 // public static final int ER_XSLATTRSET_USED_ITSELF = 101;

    { ER_XSLATTRSET_USED_ITSELF,
      "xsl:attribute-set {0} pou\u017eil s\u00e1m seba, \u010do sp\u00f4sob\u00ed nekone\u010dn\u00fd cyklus."},

  /** ER_CANNOT_MIX_XERCESDOM          */
//  public static final int ER_CANNOT_MIX_XERCESDOM = 102;

    { ER_CANNOT_MIX_XERCESDOM,
      "Nie je mo\u017en\u00e9 mie\u0161a\u0165 vstup in\u00fd, ne\u017e Xerces-DOM s v\u00fdstupom Xerces-DOM!"},

  /** ER_TOO_MANY_LISTENERS          */
//  public static final int ER_TOO_MANY_LISTENERS = 103;

    { ER_TOO_MANY_LISTENERS,
      "addTraceListenersToStylesheet - TooManyListenersException"},

  /** ER_IN_ELEMTEMPLATEELEM_READOBJECT          */
//  public static final int ER_IN_ELEMTEMPLATEELEM_READOBJECT = 104;

    { ER_IN_ELEMTEMPLATEELEM_READOBJECT,
      "V ElemTemplateElement.readObject: {0}"},

  /** ER_DUPLICATE_NAMED_TEMPLATE          */
//  public static final int ER_DUPLICATE_NAMED_TEMPLATE = 105;

    { ER_DUPLICATE_NAMED_TEMPLATE,
      "Na\u0161iel sa viac ne\u017e jeden vzor s n\u00e1zvom: {0}"},

  /** ER_INVALID_KEY_CALL          */
//  public static final int ER_INVALID_KEY_CALL = 106;

    { ER_INVALID_KEY_CALL,
      "Neplatn\u00e9 volanie funkcie: rekurz\u00edvne volanie k\u013e\u00fa\u010da() nie je povolen\u00e9"},

  /** Variable is referencing itself          */
//  public static final int ER_REFERENCI


summaryS <- function(formula, fun=NULL,
                     data=NULL, subset=NULL, na.action=na.retain,
                     continuous=10,
                     ...) {

  formula <- Formula::Formula(formula)

  Y <- if(length(subset))
    model.frame(formula, data=data, subset=subset, na.action=na.action)
  else
    model.frame(formula, data=data, na.action=na.action)
  X <- Formula::model.part(formula, data=Y, rhs=1)
  Y <- Formula::model.part(formula, data=Y, lhs=1)

  nY <- NCOL(Y)
  nX <- NCOL(X)
  namY <- names(Y)
  namX <- names(X)
  if(nX == 0) X <- data.frame(x=rep(1, NROW(Y)))
  ux <- unique(X)
  Z <- NULL
  n <- nrow(X)

  g <- function(y) {
    y <- y[! is.na(y)]
    if(is.character(y)) c(NA, NA)
    else if(is.factor(y)) c(1, length(levels(y)))
    else if(length(unique(y)) < continuous) range(y)
    else if(! is.matrix(y)) quantile(y, c(0.01, 0.99))
  }
  ylim <- lapply(Y, g)

  w <- reshape(cbind(X, Y), direction='long', v.names='y',
               varying=namY, times=namY, timevar='yvar')

  if(inherits(Y[[1]], 'Surv')) {
    at <- attributes(Y[[1]])
    at <- at[setdiff(names(at), c('dim', 'dimnames'))]
    attributes(w$y) <- c(attributes(w$y), at)
  }
  w$yvar <- factor(w$yvar, namY)
  funlabel <- NULL
  if(length(fun)) {
    by <- c('yvar', if(length(namX)) namX else 'x')
    y <- w$y
    w <- summarize(y, w[by], fun, type='matrix', keepcolnames=TRUE)
    funlabel <- if(is.matrix(w$y)) colnames(w$y)[1]
  }
  gg <- function(x) if(is.character(x) || is.factor(x))
                      'categorical' else 'numeric'
  ## For some reason sapply is doubling names e.g. sbp.sbp
  sapply2 <- function(data, ...) {
    s <- sapply(data, ...)
    names(s) <- names(data)
    s
    }
  xlabels <- sapply2(X, label)
  xlabels <- ifelse(xlabels == '', names(xlabels), xlabels)
  ylabels <- sapply2(Y, label)
  ylabels <- ifelse(ylabels == '', names(ylabels), ylabels)

  for(n in names(w))  # takes care of R change stringsAsFactors=FALSE
    if(is.character(w[[n]])) w[[n]] <- factor(w[[n]])

  structure(w, class=c('summaryS', 'data.frame'),
            formula=formula, fun=fun,
            xnames=names(X), xlabels=xlabels, xunits=sapply2(X, units),
            xtype=sapply(X, gg),
            ynames=namY, ylabels=ylabels, yunits=sapply2(Y, units),
            ylim=ylim, funlabel=funlabel)
}

plot.summaryS <-
  function(x, formula=NULL, groups=NULL, panel=NULL,
           paneldoesgroups=FALSE, datadensity=NULL, ylab='',
           funlabel=NULL, textonly='n', textplot=NULL, digits=3, custom=NULL,
           xlim=NULL, ylim=NULL, cex.strip=1, cex.values=0.5, pch.stats=NULL,
           key=list(columns=length(groupsleve


shutdown_host_->Call();
  }

  ASSERT_EQ(this->shutdown_host_->GetState(), husarion_ugv_manager::ShutdownHostState::FAILURE);
  EXPECT_TRUE(this->ContainsExpression(this->shutdown_host_->GetError(), "Command return code:"));
  EXPECT_TRUE(this->ContainsExpression(this->shutdown_host_->GetOutput(), "000"));
}

TEST_F(TestShutdownHost, GoodShutdownExecute)
{
  ASSERT_NO_THROW(this->http_server_->CreateServer(kDefaultServerIP, kDefaultServerPort));
  ASSERT_NO_THROW(this->CreateShutdownHost(kDefaultServerIP, kDefaultServerPort, "husarion", 0.1));

  ASSERT_TRUE(this->shutdown_host_->IsAvailable());
  ASSERT_EQ(this->shutdown_host_->GetState(), husarion_ugv_manager::ShutdownHostState::IDLE);

  this->shutdown_host_->Call();
  ASSERT_EQ(
    this->shutdown_host_->GetState(), husarion_ugv_manager::ShutdownHostState::COMMAND_EXECUTED);

  // Wait for response
  while (this->shutdown_host_->GetState() ==
         husarion_ugv_manager::ShutdownHostState::COMMAND_EXECUTED) {
    this->shutdown_host_->Call();
  }
  ASSERT_EQ(
    this->shutdown_host_->GetState(), husarion_ugv_manager::ShutdownHostState::RESPONSE_RECEIVED);

  this->shutdown_host_->Call();
  ASSERT_EQ(this->shutdown_host_->GetState(), husarion_ugv_manager::ShutdownHostState::PINGING);

  this->shutdown_host_->Call();
  EXPECT_EQ(this->shutdown_host_->GetState(), husarion_ugv_manager::ShutdownHostState::SUCCESS);

  EXPECT_TRUE(this->ContainsExpression(this->shutdown_host_->GetOutput(), "200"));
}

TEST_F(TestShutdownHost, HTTPServerReturnSuccessWithMessage)
{
  ASSERT_NO_THROW(this->http_server_->CreateServer(
    kDefaultServerIP, kDefaultServerPort,
    "200 OK\\r\\nContent-Type: text/plain\\r\\n\\r\\nSuccess"));
  ASSERT_NO_THROW(this->CreateShutdownHost(kDefaultServerIP, kDefaultServerPort, "husarion", 0.1));

  this->CallUntilFinished();
  EXPECT_EQ(this->shutdown_host_->GetState(), husarion_ugv_manager::ShutdownHostState::SUCCESS);
  EXPECT_TRUE(this->ContainsExpression(this->shutdown_host_->GetOutput(), "Success"));
  EXPECT_TRUE(this->ContainsExpression(this->shutdown_host_->GetOutput(), "200"));
}

TEST_F(TestShutdownHost, HTTPServerReturnFailure)
{
  ASSERT_NO_THROW(this->http_server_->CreateServer(
    kDefaultServerIP, kDefaultServerPort,
    "401 Unauthorized\\r\\nContent-Type: text/plain\\r\\n\\r\\nUnauthorized"));
  ASSERT_NO_THROW(this->CreateShutdownHost(kDefaultServerIP, kDefaultServerPort, "husarion", 0.1));

  this->CallUntilFinished();
  EXPECT_EQ(this->shutdown_host_->GetState(), husarion_ugv_manager::ShutdownHostState::FAILURE);
  EXPECT_TRUE(this->ContainsExpression(this->shutdown_host_->GetOutput(), "401"));
  EXPECT_TRUE(this->ContainsExpression(
    this->shutdown_host_->GetError(), "Failed to shutdown remote host. Server return code:"));
}

TEST_F(TestShutdownHost, PingHostTimeout)
{
  ASSERT_NO_THROW(
    this->http_server_->CreateServer(kDefaultServerIP, kDefaultServerPort, "200 OK", 1.0, false));
  ASSERT_NO_THROW(this->CreateShutdownHost(kDefaultServerIP, kDefaultServerPort, "husarion", 0.1));

  this->CallUntilFinished();
  EXPECT_EQ(this->shutdown_host_->GetState(), husarion_ugv_manager::ShutdownHostState::FAILURE);
  EXPECT_TRUE(this->ContainsExpression(this->shutdown_host_->Get


ill get all search results if you consume all
  /// events on the returned stream. To limit results, set the
  /// [pages] and [perPage] parameters.
  ///
  /// You can include any github qualifiers in the query directly
  /// or you can set some of the optional params to set the qualifiers
  /// For example, these do the same thing:
  /// code('awesome language:dart') and
  /// code('awesome', language: 'dart')
  ///
  /// https://developer.github.com/v3/search/#search-code
  Stream<CodeSearchResults> code(
    String query, {
    int? pages,
    int? perPage,
    String? language,
    String? filename,
    String? extension,
    String? user,
    String? org,
    String? repo,
    String? fork,
    String? path,
    String? size,
    bool inFile = true,
    bool inPath = false,
  }) {
    // Add qualifiers to the query
    // Known Issue: If a query already has a qualifier and the same
    // qualifier parameter is passed in, it will be duplicated.
    // Example: code('example repo:ex', repo: 'ex') will result in
    // a query of 'example repo:ex repo:ex'
    query += _searchQualifier('language', language);
    query += _searchQualifier('filename', filename);
    query += _searchQualifier('extension', extension);
    query += _searchQualifier('user', user);
    query += _searchQualifier('org', org);
    query += _searchQualifier('repo', repo);
    query += _searchQualifier('fork', fork);
    query += _searchQualifier('path', path);
    query += _searchQualifier('size', size);

    // build up the in: qualifier based on the 2 booleans
    var inValue = '';
    if (inFile) {
      inValue = 'file';
    }
    if (inPath) {
      if (inValue.isEmpty) {
        inValue = 'path';
      } else {
        inValue = 'file,path';
      }
    }
    if (inValue.isNotEmpty) {
      query += ' in:$inValue';
    }

    final params = <String, dynamic>{};
    params['q'] = query;
    if (perPage != null) {
      params['per_page'] = perPage.toString();
    }

    return PaginationHelper(github)
        .fetchStreamed('GET', '/search/code', params: params, pages: pages)
        .map((r) => CodeSearchResults.fromJson(json.decode(r.body)));
  }

  String _searchQualifier(String key, String? value) {
    if (value != null && value.isNotEmpty) {
      return ' $key:$value';
    }
    return '';
  }

  /// Search for issues and pull-requests using [query].
  /// Since the Search Rate Limit is small, this is a best effort implementation.
  /// API docs: https://developer.github.com/v3/search/#search-issues
  Stream<Issue> issues(String query, {String? sort, int pages = 2}) {
    final params = <String, dynamic>{'q': query};
    if (sort != null) {
      params['sort'] = sort;
    }

    final controller = StreamController<Issue>();

    var isFirst = true;

    PaginationHelper(github)
        .fetchStreamed('GET', '/search/issues', params: params, pages: pages)
        .listen((response) {
      if (response.statusCode == 403 &&
          response.body.contains('rate limit') &&
          isFirst) {
        throw RateLimitHit(github);
      }

      isFirst = false;

      final input = jsonDecode(response.body);

      if (input['items'] == null) {
        return;
      }

      final items = input['items'] as List;

      items
          .cast<Map<String, dynamic>>()
          .map(Issue.fromJson)
          .forEach(controller.add);
    }).onDone(controller.close);


;
					mPefFile.Seek(mOffset, System.IO.SeekOrigin.Begin);

					mValue = new byte[mValueCount];
					for (int i = 0; i < mValueCount; i++)
					{
						mValue[i] = mPefFile.ReadUI1();
					}
					mPefFile.Seek(currentOffset, System.IO.SeekOrigin.Begin);
				}
			}
		}

		public class SByteExifEntry : ExifEntry
		{
			protected sbyte[] mValue;

			public SByteExifEntry(FileReader aPefFile, ushort aTagID)
				: base(aPefFile, aTagID)
			{
				if (mFieldType.SizeInBytes * mValueCount <= 4)
				{
					unsafe
					{
						fixed (uint* ptr = &mOffset)
						{
							sbyte* ptrUS = (sbyte*)ptr;
							mValue = new sbyte[mValueCount];
							for (int i = 0; i < mValueCount; i++)
							{
								if (aPefFile.EndianSwap)
									mValue[i] = ptrUS[4 / mFieldType.SizeInBytes - i - 1];
								else
									mValue[i] = ptrUS[i];
							}
						}
					}
				}
				else
				{
					uint currentOffset = mPefFile.Position();
					mPefFile.Seek(mOffset, System.IO.SeekOrigin.Begin);

					mValue = new sbyte[mValueCount];
					for (int i = 0; i < mValueCount; i++)
					{
						mValue[i] = mPefFile.ReadI1();
					}
					mPefFile.Seek(currentOffset, System.IO.SeekOrigin.Begin);
				}
			}
		}

		public class UShortExifEntry : ExifEntry
		{
			protected ushort[] mValue;

			public UShortExifEntry(FileReader aPefFile, ushort aTagID)
				: base(aPefFile, aTagID)
			{
				if (mFieldType.SizeInBytes * mValueCount <= 4)
				{
					unsafe
					{
						fixed (uint* ptr = &mOffset)
						{
							ushort* ptrUS = (ushort*)ptr;
							mValue = new ushort[mValueCount];
							for (int i = 0; i < mValueCount; i++)
							{
								if (aPefFile.EndianSwap)
									mValue[i] = ptrUS[4 / mFieldType.SizeInBytes - i - 1];
								else
									mValue[i] = ptrUS[i];
							}
						}
					}
				}
				else
				{
					uint currentOffset = mPefFile.Position();
					mPefFile.Seek(mOffset, System.IO.SeekOrigin.Begin);

					mValue = new ushort[mValueCount];
					for (int i = 0; i < mValueCount; i++)
					{
						mValue[i] = mPefFile.ReadUI2();
					}
					mPefFile.Seek(currentOffset, System.IO.SeekOrigin.Begin);
				}
			}
		}

		public class ShortExifEntry : ExifEntry
		{
			protected short[] mValue;

			public ShortExifEntry(FileReader aPefFile, ushort aTagID)
				: base(aPefFile, aTagID)
			{
				if (mFieldType.SizeInBytes * mValueCount <= 4)
				{
					unsafe
					{
						fixed (uint* ptr = &mOffset)
						{
							short* ptrUS = (short*)ptr;
							mValue = new short[mValueCount];
							for (int i = 0; i < mValueCount; i++)
							{
								if (aPefFile.EndianSwap)
									mValue[i] = ptrUS[4 / mFieldType.SizeInBytes - i - 1];
								else
									mValue[i] = ptrUS[i];
							}
						}
					}
				}
				else
				{
					uint currentOffset =


.to_string(),
                    span,
                };

                let args: Vec<Value> = function
                    .args
                    .iter()
                    .map(|arg| Value::String {
                        val: arg.to_string(),
                        span,
                    })
                    .collect();
                let args = Value::List { vals: args, span };

                let over = Value::String {
                    val: format!("{:?}", function.over),
                    span,
                };

                let distinct = Value::Bool {
                    val: function.distinct,
                    span,
                };

                let vals = vec![name, args, over, distinct];
                Value::Record { cols, vals, span }
            }
            Expr::Nested(expr) => ExprDb::expr_to_value(expr, span),
            Expr::CompoundIdentifier(_) => todo!(),
            Expr::IsNull(_) => todo!(),
            Expr::IsNotNull(_) => todo!(),
            Expr::IsDistinctFrom(_, _) => todo!(),
            Expr::IsNotDistinctFrom(_, _) => todo!(),
            Expr::InList { .. } => todo!(),
            Expr::InSubquery { .. } => todo!(),
            Expr::InUnnest { .. } => todo!(),
            Expr::Between { .. } => todo!(),
            Expr::UnaryOp { .. } => todo!(),
            Expr::Cast { .. } => todo!(),
            Expr::TryCast { .. } => todo!(),
            Expr::Extract { .. } => todo!(),
            Expr::Substring { .. } => todo!(),
            Expr::Trim { .. } => todo!(),
            Expr::Collate { .. } => todo!(),
            Expr::TypedString { .. } => todo!(),
            Expr::MapAccess { .. } => todo!(),
            Expr::Case { .. } => todo!(),
            Expr::Exists(_) => todo!(),
            Expr::Subquery(_) => todo!(),
            Expr::ListAgg(_) => todo!(),
            Expr::GroupingSets(_) => todo!(),
            Expr::Cube(_) => todo!(),
            Expr::Rollup(_) => todo!(),
            Expr::Tuple(_) => todo!(),
            Expr::ArrayIndex { .. } => todo!(),
            Expr::Array(_) => todo!(),
        }
    }
}
// SPDX-License-Identifier: Apache-2.0
/*
 * File: src/shared/ntdef.rs
 *
 * Type definitions for the basic sized types.
 *
 * Author: HTG-YT
 * Copyright (c) 2021 HTG-YT
 */// SPDX-FileCopyrightText: 2021 Open Energy Solutions Inc
//
// SPDX-License-Identifier: Apache-2.0

// This file is generated by rust-protobuf 2.17.0. Do not edit
// @generated

// https://github.com/rust-lang/rust-clippy/issues/702
#![allow(unknown_lints)]
#![allow(clippy::all)]

#![allow(unused_attributes)]
#![rustfmt::skip]

#![allow(box_pointers)]
#![allow(dead_code)]
#![allow(missing_docs)]
#![allow(non_camel_case_types)]
#![allow(non_snake_case)]
#![allow(non_upper_case_globals)]
#![allow(trivial_casts)]
#![allow(unused_imports)]
#![allow(unused_results)]
//! Generated file from `resourcemodule/resourcemodule.proto`

/// Generated files are compatible only with the same version
/// of protobuf runtime.
// const _PROTOBUF_VERSION_CHECK: () = ::protobuf::VERSION_2_17_0;

#[derive(PartialEq,Clone,Default)]
#[cfg_attr(feature = "with-serde", derive(Serialize, Deserialize))]
pub struct ResourceReading {
    // message fields
    conductingEquipmentTerminalReading: ::protobuf::SingularPtrField<super::commonmodule::ConductingEquipmentTerminalReading>,
    phaseMMTN: ::proto


ba(0, 0, 0, 0.4);\n    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4);\n  }\n\n  .modal-sm {\n    width: 300px;\n  }\n}\n\n@media (min-width: 992px) {\n  .modal-lg {\n    width: 900px;\n  }\n\n  .side-panel .modal-dialog {\n    width: 60%;\n  }\n}\n\n.section-header {\n  padding: 0;\n  line-height: 1.42857;\n  clear: both;\n  position: relative;\n}\n\n.section-header hr {\n  margin-top: 24px;\n  margin-bottom: -8px;\n}\n\n.section-header:not(.section-header-main) .section-header-text {\n  display: inline-block;\n  background: #FFFFFF;\n  margin: 0 auto;\n  position: relative;\n  padding: 8px;\n  font-size: 11px;\n  font-weight: 500;\n  line-height: 1.1;\n  letter-spacing: 2.5px;\n  text-transform: uppercase;\n  color: #fffc00;\n}\n\n.section-header:not(.section-header-main).section-header-bordered {\n  text-align: center;\n}\n\n.section-header:not(.section-header-main).section-header-bordered .section-header-text {\n  top: -6px;\n}\n\n.section-header.section-header-main h3.section-header-text {\n  display: inline-block;\n  margin: 0 0 8px;\n  padding: 0 0 8px;\n  color: #16191C;\n  font-size: 18px;\n}\n\n.section-header.section-header-main.section-header-bordered h3.section-header-text {\n  border-bottom: 1px solid #DFE3E7;\n}\n\n/* Toggle Styles */\n\n.side-navigation-wrapper {\n  padding-left: 0;\n}\n\n.side-navigation-wrapper-open .side-navigation-content {\n  z-index: 1;\n}\n\n.side-navigation-wrapper-open .page-with-side-navigation {\n  margin-left: 200px;\n  z-index: 0;\n  -webkit-transition: margin 0.15s;\n  -o-transition: margin 0.15s;\n  transition: margin 0.15s;\n  -webkit-transition-timing-function: cubic-bezier(0.25, 0.1, 0.25, 1);\n  transition-timing-function: cubic-bezier(0.25, 0.1, 0.25, 1);\n}\n\n.side-navigation-wrapper-with-icon-drawer.side-navigation-wrapper-open .page-with-side-navigation {\n  margin-left: 200px;\n}\n\n.side-navigation-wrapper-with-icon-drawer.side-navigation-wrapper-open .side-navigation-content li * :not(img) {\n  opacity: 1;\n}\n\n.side-navigation-wrapper-with-icon-drawer .page-with-side-navigation {\n  margin-left: 64px;\n  width: calc(100vw - 64px);\n}\n\n.side-navigation-wrapper-with-icon-drawer .side-navigation-content {\n  opacity: 1 !important;\n}\n\n.side-navigation-wrapper-with-icon-drawer .side-navigation-content li img {\n  margin-top: -7px;\n  margin-right: 24px;\n}\n\n.side-navigation-wrapper-with-icon-drawer .side-navigation-content li * :not(img) {\n  opacity: 0;\n  transition: all 0.15s cubic-bezier(0.25, 0.1, 0.25, 1);\n}\n\n.side-


 SatResultType.SAT
                    SatResult.UNSAT -> SatResultType.UNSAT
                    else -> SatResultType.UNKNOWN
                }
            }
            when {
                SatResultType.SAT in grouped -> {}
                SatResultType.UNKNOWN in grouped -> {
                    logger.debug { "recursive solving has unknown, use initial check result" }
                    send(initialDeferred.await())
                }

                SatResultType.UNSAT in grouped -> {
                    logger.debug { "recursive solving shows unsat" }
                    send(grouped[SatResultType.UNSAT]!!.first())
                }
            }
        } catch (_: CancellationException) {
            logger.debug { "recursive solving was cancelled" }
        }
    }.map { pr ->
        logger.debug { "Got result from parallel splitter" }
        val rsr = postprocessResult(pr.vc, pr.checkerResult, pr.config.postprocessingConfig)
        val checkerResults = rsr.diversifiedResults.toList().toNonEmptyList()
            ?: error("multi [SmtFormulaCheckerResult] should have at least one result")
        if (checkerResults.size > 1) {
            check(checkerResults.all { it is SmtFormulaCheckerResult.Single && it.satResult == SatResult.SAT })
            { "when multi [SmtFormulaCheckerResult] are produced, all of them are expected to be SAT" }
        }
        val processedDiffculties = ProcessDifficulties.processSmtFormulaCheckerResult(checkerResults.first())
        if (processedDiffculties != null) {
            Logger.regression { "Got difficulties from solver." }
        }
        verifierResultFromCheckerResult(
            scene,
            tacProgram,
            rootTACProgramMetadata,
            pr.postprocessor,
            checkerResults,
            pr.elapsed,
            processedDiffculties,
            tacProgram.analysisCache.graph
        )
    }
}
/*
 *     The Certora Prover
 *     Copyright (C) 2025  Certora Ltd.
 *
 *     This program is free software: you can redistribute it and/or modify
 *     it under the terms of the GNU General Public License as published by
 *     the Free Software Foundation, version 3 of the License.
 *
 *     This program is distributed in the hope that it will be useful,
 *     but WITHOUT ANY WARRANTY; without even the implied warranty of
 *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 *     GNU General Public License for more details.
 *
 *     You should have received a copy of the GNU General Public License
 *     along with this program.  If not, see <https://www.gnu.org/licenses/>.
 */

package verifier.equivalence

/**
 * A lighter weight map, that is a partial function from a domain
 * of keys [K] to the domain of (non-null) values [V].
 *
 * Unlike the full [Map] interface, there no iteration, enumeration,
 * or more complex operations. Get and contains, that's your lot.
 */
interface PartialFn<K, V: Any> {
    operator fun get(k: K): V?
    operator fun contains(k: K): Boolean = get(k) != null
    companion object {
        fun <K, V: Any> Map<K, V>.inject() = object : PartialFn<K, V> {
            override fun get(k: K): V? {
                return this@inject[k]
            }

        }
    }
}
/*
 *     The Certora Prover
 *     Copyright (C) 2025  Certora Ltd.
 *
 *     This program is free software: you can redistribute it and/or modify
 *     it under the terms of the GNU General Public License as published by
 *     the Free Software Foundation, version 3 of the License.
 *
 *     This program is distributed in the hope that it will be useful,
 *     but WITHOUT ANY WARRANTY; without even the implied warranty of
 *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 *     GNU General Public Licen


ath)
    # lst=data.files
    # for item in lst:
    #     print(item)
    node_feat=data['node_features'] # unnormalized
    labels=data['node_labels']
    edges=data['edges'] #(E, 2)
    edge_index=edges.T

    if not no_feat_norm:
        node_feat=normalize_feat(node_feat)

    dataset = NCDataset(name)

    edge_index=torch.as_tensor(edge_index)
    node_feat=torch.as_tensor(node_feat)
    labels=torch.as_tensor(labels)

    dataset.graph = {'edge_index': edge_index,
                     'node_feat': node_feat,
                     'edge_feat': None,
                     'num_nodes': node_feat.shape[0]}
    dataset.label = labels

    return dataset

if __name__ == '__main__':
    # load_airport()
    # load_wikipedia('squirrel')
    # load_wiki_new('chameleon')
    pass


RGZ	fmovs	%fcc3, %f0, %f30
	.word 0xb7a508e0  ! 8306: FSUBq	dis not found

	.word 0xb8144000  ! 8307: OR_R	or 	%r17, %r0, %r28
	.word 0xb9a5c920  ! 8308: FMULs	fmuls	%f23, %f0, %f28
	.word 0xbc35a02f  ! 8312: ORN_I	orn 	%r22, 0x002f, %r30
	.word 0xb1504000  ! 8313: RDPR_TNPC	<illegal instruction>
	.word 0xb7a00520  ! 8317: FSQRTs	fsqrt
	.word 0xbfa4c8c0  ! 8318: FSUBd	fsubd	%f50, %f0, %f62
	.word 0xbba449c0  ! 8319: FDIVd	fdivd	%f48, %f0, %f60
hwintr_1_354:
!$EV trig_pc_d(1,expr(@VA(.MAIN.hwintr_1_354), 16, 16)) -> intp(1, 0, 1)
	.word 0x91956180  ! 8323: WRPR_PIL_I	wrpr	%r21, 0x0180, %pil
	.word 0xbda50940  ! 8324: FMULd	fmuld	%f20, %f0, %f30
	.word 0xbb355000  ! 8326: SRLX_R	srlx	%r21, %r0, %r29
hwintr_1_355:
!$EV trig_pc_d(1,expr(@VA(.MAIN.hwintr_1_355), 16, 16)) -> intp(1, 0, 9)
	.word 0xb1540000  ! 8328: RDPR_GL	<illegal instruction>
	.word 0xbda509a0  ! 8331: FDIVs	fdivs	%f20, %f0, %f30
	.word 0xb3510000  ! 8338: RDPR_TICK	<illegal instruction>
	.word 0xb7ab4820  ! 8340: FMOVCC	fmovs	%fcc1, %f0, %f27
hwintr_1_356:
!$EV trig_pc_d(1,expr(@VA(.MAIN.hwintr_1_356), 16, 16)) -> intp(1, 0, 24)
	.word 0xb1a58860  ! 8345: FADDq	dis not found

	.word 0xb1aa8820  ! 8347: FMOVG	fmovs	%fcc1, %f0, %f24
	.word 0xb1510000  ! 8351: RDPR_TICK	<illegal instruction>
	.word 0xb9a489e0  ! 8352: FDIVq	dis not found

hwintr_1_357:
!$EV trig_pc_d(1,expr(@VA(.MAIN.hwintr_1_357), 16, 16)) -> intp(1, 0, 10)
	.word 0xbeb420ae  ! 8357: ORNcc_I	orncc 	%r16, 0x00ae, %r31
hwintr_1_358:
!$EV trig_pc_d(1,expr(@VA(.MAIN.hwintr_1_358), 16, 16)) -> intp(1, 0, 33)
	.word 0xbb510000  ! 8364: RDPR_TICK	<illegal instruction>
hwintr_1_359:
!$EV trig_pc_d(1,expr(@VA(.MAIN.hwintr_1_359), 16, 16)) -> intp(1, 0, 37)
	ldda	[%r20 + %g0] 0xf0, %f2
	.word 0xb9a5c9a0  ! 8373


/*
 *  linux/arch/arm/mm/proc-arm926.S: MMU functions for ARM926EJ-S
 *
 *  Copyright (C) 1999-2001 ARM Limited
 *  Copyright (C) 2000 Deep Blue Solutions Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 *
 *
 * These are the low level assembler for performing cache and TLB
 * functions on the arm926.
 *
 *  CONFIG_CPU_ARM926_CPU_IDLE -> nohlt
 */
#include <linux/linkage.h>
#include <linux/config.h>
#include <linux/init.h>
#include <asm/assembler.h>
#include <asm/pgtable.h>
#include <asm/procinfo.h>
#include <asm/hardware.h>
#include <asm/page.h>
#include <asm/ptrace.h>
#include "proc-macros.S"

/*
 * This is the maximum size of an area which will be invalidated
 * using the single invalidate entry instructions.  Anything larger
 * than this, and we go for the whole cache.
 *
 * This value should be chosen such that we choose the cheapest
 * alternative.
 */
#define CACHE_DLIMIT	16384

/*
 * the cache line size of the I and D cache
 */
#define CACHE_DLINESIZE	32

	.text
/*
 * cpu_arm926_proc_init()
 */
ENTRY(cpu_arm926_proc_init)
	mov	pc, lr

/*
 * cpu_arm926_proc_fin()
 */
ENTRY(cpu_arm926_proc_fin)
	stmfd	sp!, {lr}
	mov	ip, #PSR_F_BIT | PSR_I_BIT | SVC_MODE
	msr	cpsr_c, ip
	bl	arm926_flush_kern_cache_all
	mrc	p15, 0, r0, c1, c0, 0		@ ctrl register
	bic	r0, r0, #0x1000			@ ...i............
	bic	r0, r0, #0x000e			@ ............wca.
	mcr	p15, 0, r0, c1, c0, 0		@ disable caches
	ldmfd	sp!, {pc}

/*
 * cpu_arm926_reset(loc)
 *
 * Perform a soft reset of the system.  Put the CPU into the
 * same state as it would be if it had been reset, and branch
 * to what would be the reset vector.
 *
 * loc: location to jump to for soft reset
 */
	.align	5
ENTRY(cpu_arm926_reset)
	mov	ip


a                	mv	a0,sp
  82:	c002                	sw	zero,0(sp)
  84:	00000097          	auipc	ra,0x0
			84: R_RISCV_CALL	phy_init
			84: R_RISCV_RELAX	*ABS*
  88:	000080e7          	jalr	ra # 84 <.LVL20+0x4>

0000008c <.LVL21>:
  8c:	6685                	lui	a3,0x1
  8e:	98568693          	addi	a3,a3,-1659 # 985 <.LASF323+0x2>
  92:	4781                	li	a5,0
  94:	4701                	li	a4,0
  96:	8636                	mv	a2,a3
  98:	4581                	li	a1,0
  9a:	4501                	li	a0,0
  9c:	00000097          	auipc	ra,0x0
			9c: R_RISCV_CALL	phy_set_channel
			9c: R_RISCV_RELAX	*ABS*
  a0:	000080e7          	jalr	ra # 9c <.LVL21+0x10>

000000a4 <.LVL22>:
  a4:	00000097          	auipc	ra,0x0
			a4: R_RISCV_CALL	mm_active
			a4: R_RISCV_RELAX	*ABS*
  a8:	000080e7          	jalr	ra # a4 <.LVL22>

000000ac <.LVL23>:
  ac:	8522                	mv	a0,s0
  ae:	00042023          	sw	zero,0(s0)
  b2:	00000097          	auipc	ra,0x0
			b2: R_RISCV_CALL	ke_msg_send
			b2: R_RISCV_RELAX	*ABS*
  b6:	000080e7          	jalr	ra # b2 <.LVL23+0x6>

000000ba <.LVL24>:
  ba:	40b6                	lw	ra,76(sp)
  bc:	4426                	lw	s0,72(sp)

000000be <.LVL25>:
  be:	4496                	lw	s1,68(sp)

000000c0 <.LVL26>:
  c0:	4501                	li	a0,0
  c2:	6161                	addi	sp,sp,80
  c4:	8082                	ret

Disassembly of section .text.mm_cfg_rssi_req_handler:

00000000 <mm_cfg_rssi_req_handler>:
   0:	1141                	addi	sp,sp,-16
   2:	c422                	sw	s0,8(sp)
   4:	c04a                	sw	s2,0(sp)
   6:	c606                	sw	ra,12(sp)
   8:	c226                	sw	s1,4(sp)
   a:	0005c483          	lbu	s1,0(a1)
   e:	5d800693          	li	a3,1496

00000012 <.LVL29>:
  12:	000007b7          	lui	a5,0x0
			12: R_RISCV_HI20	vif_info_tab
			12: R_RISCV_RELAX	*ABS*
  16:	02d486b3          	mul	a3,s1,a3
  1a:	00078713          	mv	a4,a5
			1a: R_RISCV_LO12_I	vif_info_tab
			1a: R_


("months",function(d){return new Date(Date.UTC(1970,d%12,1))},function(d){return date(d).getUTCMonth()},[1],0,11)];var STEPS=[[31536e6,5],[7776e6,4],[2592e6,4],[12096e5,3],[6048e5,3],[1728e5,3],[864e5,3],[432e5,2],[216e5,2],[108e5,2],[36e5,2],[18e5,1],[9e5,1],[3e5,1],[6e4,1],[3e4,0],[15e3,0],[5e3,0],[1e3,0]];function find(units,span,minb,maxb){var step=STEPS[0],i,n,bins;for(i=1,n=STEPS.length;i<n;++i){step=STEPS[i];if(span>step[0]){bins=span/step[0];if(bins>maxb){return units[STEPS[i-1][1]]}if(bins>=minb){return units[step[1]]}}}return units[STEPS[n-1][1]]}function toUnitMap(units){var map={},i,n;for(i=0,n=units.length;i<n;++i){map[units[i].type]=units[i]}map.find=function(span,minb,maxb){return find(units,span,minb,maxb)};return map}module.exports=toUnitMap(locale);module.exports.utc=toUnitMap(utc)},{"d3-time":7}],33:[function(require,module,exports){(function(Buffer){var u=module.exports;var FNAME="__name__";u.namedfunc=function(name,f){return f[FNAME]=name,f};u.name=function(f){return f==null?null:f[FNAME]};u.identity=function(x){return x};u.true=u.namedfunc("true",function(){return true});u.false=u.namedfunc("false",function(){return false});u.duplicate=function(obj){return JSON.parse(JSON.stringify(obj))};u.equal=function(a,b){return JSON.stringify(a)===JSON.stringify(b)};u.extend=function(obj){for(var x,name,i=1,len=arguments.length;i<len;++i){x=arguments[i];for(name in x){obj[name]=x[name]}}return obj};u.length=function(x){return x!=null&&x.length!=null?x.length:null};u.keys=function(x){var keys=[],k;for(k in x)keys.push(k);return keys};u.vals=function(x){var vals=[],k;for(k in x)vals.push(x[k]);return vals};u.toMap=function(list,f){return(f=u.$(f))?list.reduce(function(obj,x){return obj[f(x)]=1,obj},{}):list.reduce(function(obj,x){return obj[x]=1,obj},{})};u.keystr=function(values){var n=values.length;if(!n)return"";for(var s=String(values[0]),i=1;i<n;++i){s+="|"+String(values[i])}return s};var toString=Object.prototype.toString;u.isObject=function(obj){return obj===Object(obj)};u.isFunction=function(obj){return toString.call(obj)==="[object Function]"};u.isString=function(obj){return typeof value==="string"||toString.call(obj)==="[object String]"};u.isArray=Array.isArray||function(obj){return toString.call(obj)==="[object Array]"};u.isNumber=function(obj){return typeof obj==="number"||toS


is":"Emojilar","Emojis...":"Emojilar...","Loading emojis...":"Emojilar yuklanmoqda...","Could not load emojis":"Emojilar yuklanmadi","People":"Odamlar","Animals and Nature":"Hayvonlar va Tabiat","Food and Drink":"Ovqatlar va Ichimliklar","Activity":"Harakatlar","Travel and Places":"Sayohat va Joylar","Objects":"Obyektlar","Flags":"Bayroqlar","Characters":"Belgilar","Characters (no spaces)":"Belgilar (bosh joylarsiz)","{0} characters":"{0} belgi","Error: Form submit field collision.":"Xato: Formani yuborish maydonidagi konflikt.","Error: No form element found.":"Xato: Form elementi topilmadi.","Color swatch":"Rang namunasi","Color Picker":"Rang tanlovchi","Invalid hex color code: {0}":"Hex rang kodi noto\u2018g\u2018ri: {0}","Invalid input":"Noto'g'ri kiritish","R":"R","Red component":"Qizil komponent","G":"G","Green component":"Yashil komponent","B":"B","Blue component":"Ko'k komponent","#":"#","Hex color code":"Hex rang kodi","Range 0 to 255":"0 dan 255 gacha","Turquoise":"","Green":"Yashil","Blue":"Ko'k","Purple":"Siyohrang","Navy Blue":"To'q ko'k rang","Dark Turquoise":"","Dark Green":"To'q yashil","Medium Blue":"O\u02bbrtacha ko\u02bbk","Medium Purple":"O\u02bbrtacha siyohrang","Midnight Blue":"Yarim tun ko'k","Yellow":"Sariq","Orange":"Oranjiviy","Red":"Qizil","Light Gray":"Och kulrang","Gray":"Kulrang","Dark Yellow":"To'q sariq","Dark Orange":"To'q oranjiviy","Dark Red":"To'q qizil","Medium Gray":"O'rtacha kulrang","Dark Gray":"To'q kulrang","Light Green":"Och yashil","Light Yellow":"Och sariq","Light Red":"Och qizil","Light Purple":"Och siyohrang","Light Blue":"Och ko'k","Dark Purple":"To'q siyohrang","Dark Blue":"To'q ko'k","Black":"Qora","White":"Oq","Switch to or from fullscreen mode":"To\u02bbliq ekran rejimiga o\u02bbtish","Open help dialog":"Yordamni ochish","history":"tarix","styles":"stillar","formatting":"formatlash","alignment":"tekislash","indentation":"","Font":"Shrift","Size":"O'lcham","More...":"Ko'proq...","Select...":"Tanlash...","Preferences":"Afzalliklar","Yes":"Ha","No":"Yo'q","Keyboard Navigation":"Klaviatura Navigatsiyasi","Version":"Versiya","Code view":"Kod ko'rinishi","Open popup menu for split buttons":"Ajratish tugmalari uchun menyuni ochsh","List Properties":"Ro'yxat Xususiyatlari","List properties...":"Ro'yxat xususiyatlari...","Start list at number":"Ro'yxatni raqamdan boshlash","Line height":"Chiziq balandligi","Dropped file type is not supported":"Fayl turi qo'llab-quvvatlanmaydi","Loading...":"Yuklanmoqda...","ImageProxy HTTP error: Rejected request":"ImageProxy HTTP xato: So'rov rad etildi","ImageProxy HTTP error: Could not find Image Proxy":"ImageProxy HTTP xato: Image Proxy topilmadi","ImageProxy HTTP error: Incorrect Image Proxy URL":"ImageProxy HTTP xato: Image Proxy URL noto'g'ri","ImageProxy HTTP error: Unknown ImageProxy error":"ImageProxy HTTP xato: Aniqlanmagan ImageProxy xato"});tinymce.addI18n("eo",{"Redo":"Refari","Undo":"Malfari","Cut":"Eltran\u0109i","Copy":"Kopii","Paste":"Englui"


 the client.
 */
export function handleSignupVerification(request: Request, response: Response): void {

    response.setHeader('Content-Type', 'application/json');
    let appUserKey: number = parseInt(request.query.appUserKey);
    let verificationToken: string = request.query.verificationToken;

    signupVerify(appUserKey, verificationToken)
        .then(() => {
            response.send(new FoodWebResponse(true, 'Signup verification complete'));
        })
        .catch((err: Error) => {
            response.send(new FoodWebResponse(false, err.message));
        });
}

/**
 * Handles password recovery by sending a password resent email with a generated password reset token for a given user.
 * @param request The request from the client. Should contain the email of the user that wants to recover their password.
 * @param response The response to send back to the client.
 */
export function handlePasswordRecovery(request: Request, response: Response): void {
    response.setHeader('Content-Type', 'application/json');
    // TODO: Handle password recovery by sending password reset email.
    response.send(new FoodWebResponse(true, 'Password recovery not implemented yet'));
}
import { Store, StoreGetter, StateTree, StoreGetters } from './types'
import { CombinedStore } from './store'

export type CombinedState<
  S extends Record<
    string,
    (
      ...args: any[]
    ) => CombinedStore<
      string,
      StateTree,
      Record<string, StoreGetter<StateTree>>
    >
  >
> = {
  [k in keyof S]: S[k] extends (
    ...args: any[]
  ) => CombinedStore<
    string,
    infer State,
    Record<string, StoreGetter<infer State>>
  >
    ? State
    : never
}

export type CombinedGetters<
  S extends Record<
    string,
    (
      ...args: any[]
    ) => CombinedStore<
      string,
      StateTree,
      Record<string, StoreGetter<StateTree>>
    >
  >
> = {
  [k in keyof S]: S[k] extends (
    ...args: any[]
  ) => CombinedStore<string, infer State, infer Getters>
    ? StoreGetters<State, Getters>
    : never
}

export function pinia<
  S extends Record<
    string,
    (
      ...args: any[]
    ) => CombinedStore<
      string,
      StateTree,
      Record<string, StoreGetter<StateTree>>
    >
  >
>(stores: S): Store<'', CombinedState<S>> & CombinedGetters<S> {
  // TODO: implement if makes sense

  // @ts-ignore
  return {}
}
import {
  applySnapshot,
  getSnapshot,
  Instance,
  onSnapshot,
  SnapshotIn,
  TypeOfValue,
  types
} from 'mobx-state-tree'

// State
const snapshots: any = []
let currentFrame = -1

const defaultAuthors = [
  { id: '1', name: 'Conan Doyle' },
  { id: '2', name: 'George R.R. Martin' },
  { id: '3', name: 'Suzanne Collins' }
]

// TS declaration
export interface IAuthor extends Instance<typeof Author> {}
export interface IBook extends Instance<typeof Book> {}
export interface IBookAuthorStore extends Instance<typeof RootStore> {}

// Store declaration
export const Book = types
  .model({
    id: types.number,
    name: types.optional(types.string, ''),
    read: types.optional(types.boolean, false),
    author: types.maybe(types.reference(types.late(() => Author))) // 'maybe' so author can be null, 'reference' to link to Author instance,
    //  'late' to resolve Author after it is declared (possibly later in the file for example, like in THIS


-- Create HTTP server
create_server("http_server", 8080, false)

-- Handle HTTP requests
handle_http("http_server", "/", function(req)
    print("Received HTTP request:")
    print("  Method:", req.method)
    print("  Path:", req.path)
    print("  Query:", req.query)

    -- Return response
    return {
        status = 200,
        headers = {
            ["Content-Type"] = "application/json"
        },
        body = json_encode({
            message = "Hello from SolVM HTTP server!",
            request = {
                method = req.method,
                path = req.path,
                query = req.query
            }
        })
    }
end)

-- Handle WebSocket connections
handle_ws("http_server",


 自定义 代码块边框（暗色模式）
        description: Input any CSS border value
        description.zh: 输入任意 CSS border 值
        type: variable-text
        default: ''
    -
		id: code-normal
		title: code-normal
        title.zh: code-normal
		type: variable-themed-color
		opacity: true
		format: hex
		default-light: '#'
		default-dark: '#'
    -
		id: code-comment
		title: code-comment
        title.zh: code-comment
		type: variable-themed-color
		opacity: true
		format: hex
		default-light: '#'
		default-dark: '#'
    -
        id: code-function
		title: code-function
        title.zh: code-function
		type: variable-themed-color
		opacity: true
		format: hex
		default-light: '#'
		default-dark: '#'
    -
        id: code-important
		title: code-important
        title.zh: code-important
		type: variable-themed-color
		opacity: true
		format: hex
		default-light: '#'
		default-dark: '#'
    -
        id: code-keyword
		title: code-keyword
        title.zh: code-keyword
		type: variable-themed-color
		opacity: true
		format: hex
		default-light: '#'
		default-dark: '#'
    -
        id: code-operator
		title: code-operator
        title.zh: code-operator
		type: variable-themed-color
		opacity: true
		format: hex
		default-light: '#'
		default-dark: '#'
    -
        id: code-property
		title: code-property
        title.zh: code-property
		type: variable-themed-color
		opacity: true
		format: hex
		default-light: '#'
		default-dark: '#'
    -
        id: code-punctuation
		title: code-punctuation
        title.zh: code-punctuation
		type: variable-themed-color
		opacity: true
		format: hex
		default-light: '#'
		default-dark: '#'
    -
        id: code-string
		title: code-string
        title.zh: code-string
		type: variable-themed-color
		opacity: true
		format: hex
		default-light: '#'
		default-dark: '#'
    -
        id: code-tag
		title: code-tag
        title.zh: code-tag
		type: variable-themed-color
		opacity: true
		format: hex
		default-light: '#'
		default-dark: '#'
    -
        id: code-value
		title: code-value
        title.zh: code-value
		type: variable-themed-color
		opacity: true
		format: hex
		default-light: '#'
		default-dark: '#'
    -
        id: Blockquote-heading
        title: Blockquote
        title.zh: 块引用
        type: heading
        collapsed: true
        level: 3
    -
        id: blockquote-background-light
        title: Customize blockquote background (light mode)
        title.zh: 自定义 块引用背景（亮色模式）
        description: Input any CSS background value
        description.zh: 输入任意 CSS background 值
        type: variable-text
        default: ''
    -
        id: blockquote-background-dark
        title: Customize blockquote background (dark mode)
        title.zh: 自定义 块引用背景（暗色模式）
        description: Input any CSS background value
        description.zh: 输入任意 CSS background 值
        type: variable-text
        default: ''
    -
        id: Callouts
        title: Callouts
        title.zh: 标注
        type: heading
        collapsed: true
        level: 3
    -
        id: ca


tproto "github.com/cometbft/cometbft/proto/tendermint/types"
)

var (
	valEd25519   = []string{ABCIPubKeyTypeEd25519}
	valSecp256k1 = []string{ABCIPubKeyTypeSecp256k1}
)

func TestConsensusParamsValidation(t *testing.T) {
	testCases := []struct {
		params ConsensusParams
		valid  bool
	}{
		// test block params
		0: {makeParams(1, 0, 2, 0, valEd25519, 0), true},
		1: {makeParams(0, 0, 2, 0, valEd25519, 0), false},
		2: {makeParams(47*1024*1024, 0, 2, 0, valEd25519, 0), true},
		3: {makeParams(10, 0, 2, 0, valEd25519, 0), true},
		4: {makeParams(100*1024*1024, 0, 2, 0, valEd25519, 0), true},
		5: {makeParams(401*1024*1024, 0, 2, 0, valEd25519, 0), false},
		6: {makeParams(1024*1024*1024, 0, 2, 0, valEd25519, 0), false},
		// test evidence params
		7:  {makeParams(1, 0, 0, 0, valEd25519, 0), false},
		8:  {makeParams(1, 0, 2, 2, valEd25519, 0), false},
		9:  {makeParams(1000, 0, 2, 1, valEd25519, 0), true},
		10: {makeParams(1, 0, -1, 0, valEd25519, 0), false},
		// test no pubkey type provided
		11: {makeParams(1, 0, 2, 0, []string{}, 0), false},
		// test invalid pubkey type provided
		12: {makeParams(1, 0, 2, 0, []string{"potatoes make good pubkeys"}, 0), false},
		13: {makeParams(-1, 0, 2, 0, valEd25519, 0), true},
		14: {makeParams(-2, 0, 2, 0, valEd25519, 0), false},
	}
	for i, tc := range testCases {
		if tc.valid {
			assert.NoErrorf(t, tc.params.ValidateBasic(), "expected no error for valid params (#%d)", i)
		} else {
			assert.Errorf(t, tc.params.ValidateBasic(), "expected error for non valid params (#%d)", i)
		}
	}
}

func makeParams(
	blockBytes, blockGas int64,
	evidenceAge int64,
	maxEvidenceBytes int64,
	pubkeyTypes []string,
	abciExtensionHeight int64,
) ConsensusParams {
	return ConsensusParams{
		Block: BlockParams{
			MaxBytes: blockBytes,
			MaxGas:   blockGas,
		},
		Evidence: EvidenceParams{
			MaxAgeNumBlocks: evidenceAge,
			MaxAgeDuration:  time.Duration(evidenceAge),
			MaxBytes:        maxEvidenceBytes,
		},
		Validator: ValidatorParams{
			PubKeyTypes: pubkeyTypes,
		},
		ABCI: ABCIParams{
			VoteExtensionsEnableHeight: abciExtensionHeight,
		},
	}
}

func TestConsensusParamsHash(t *testing.T) {
	params := []ConsensusParams{
		makeParams(4, 2, 3, 1, valEd25519, 0),
		makeParams(1, 4, 3, 1, valEd25519, 0),
		makeParams(1, 2, 4, 1, valEd25519, 0),
		makeParams(2, 5, 7, 1, valEd25519, 0),
		makeParams(1, 7, 6, 1, valEd25519, 0),
		makeParams(9, 5, 4, 1, valEd25519, 0),
		makeParams(7, 8, 9, 1, valEd25519, 0),
		makeParams(4, 6, 5, 1, valEd25519, 0),
	}

	hashes := make([][]byte, l


WithoutTOTP(t, reg)
			actual, res := doBrowserFlow(t, true, payload, id)
			assert.Equal(t, http.StatusBadRequest, res.StatusCode)
			assert.Contains(t, res.Request.URL.String(), publicTS.URL+settings.RouteSubmitFlow)
			assert.Equal(t, text.NewErrorValidationTOTPVerifierWrong().Text, gjson.Get(actual, totpCodeGJSONQuery+".messages.0.text").String(), actual)
			checkIdentity(t, id)
		})

		t.Run("type=browser", func(t *testing.T) {
			id := createIdentityWithoutTOTP(t, reg)
			actual, res := doBrowserFlow(t, false, payload, id)
			assert.Equal(t, http.StatusOK, res.StatusCode)
			assert.Contains(t, res.Request.URL.String(), uiTS.URL)
			assert.Equal(t, text.NewErrorValidationTOTPVerifierWrong().Text, gjson.Get(actual, totpCodeGJSONQuery+".messages.0.text").String(), actual)
			checkIdentity(t, id)
		})
	})

	t.Run("type=set up TOTP device", func(t *testing.T) {
		checkIdentity := func(t *testing.T, id *identity.Identity, key string) {
			i, cred, err := reg.PrivilegedIdentityPool().FindByCredentialsIdentifier(context.Background(), identity.CredentialsTypeTOTP, id.ID.String())
			require.NoError(t, err)
			var c identity.CredentialsTOTPConfig
			require.NoError(t, json.Unmarshal(cred.Config, &c))
			actual, err := otp.NewKeyFromURL(c.TOTPURL)
			require.NoError(t, err)
			assert.Equal(t, key, actual.Secret())
			assert.Contains(t, c.TOTPURL, gjson.GetBytes(i.Traits, "subject").String())
		}

		run := func(t *testing.T, isAPI, isSPA bool, id *identity.Identity, hc *http.Client, f *kratos.SettingsFlow) {
			values := testhelpers.SDKFormFieldsToURLValues(f.Ui.Nodes)

			nodes, err := json.Marshal(f.Ui.Nodes)
			require.NoError(t, err)

			key := gjson.GetBytes(nodes, "#(attributes.id==totp_secret_key).attributes.text.context.secret").String()
			require.NotEmpty(t, key, nodes)

			code, err := stdtotp.GenerateCode(key, time.Now())
			require.NoError(t, err)
			values.Set("method", "totp")
			values.Set(node.TOTPCode, code)

			actual, res := testhelpers.SettingsMakeRequest(t, isAPI, isSPA, f, hc, testhelpers.EncodeFormAsJSON(t, isAPI || isSPA, values))
			require.NotEmpty(t, key)
			assert.Equal(t, http.StatusOK, res.StatusCode)

			if isAPI || isSPA {
				assert.Contains(t, res.Request.URL.String(), publicTS.URL+settings.RouteSubmitFlow)
				assert.EqualValues(t, flow.StateSuccess, gjson.Get(actual, "state").String(), actual)
			} else {
				assert.Contains(t, res.Request.URL.String(), uiTS.URL)
				assert.EqualValues(t, flow.StateSuccess, gjson.Get(actual, "state").String(), actual)
			}

			actualFlow, err := reg.SettingsFlowPersister().GetSettingsFlow(context.Background(), uuid.FromStringOrNil(f.Id))
			require.NoError(t, err)
			assert.Empty(t, gjson.GetBytes(actualFlow.InternalContext, flow.PrefixInternalContex


::label {
	margin-left: 20px;
	margin-right: 4px;
	vertical-align:	baseline;
}

xul|radio::input,
xul|checkbox::input {
	float: left;
	height:	16px;
	width:	16px;
	vertical-align:	baseline;
	line-height: 16px;
	margin: 2px;
	background-image: url(media/controls.gif);
	background-repeat: no-repeat;
}

xul|checkbox::input {
	background-position: 0 -32px;
}

xul|checkbox:hover xul|checkbox::input {
	background-position: -16px -32px;
}

xul|checkbox:disabled xul|checkbox::input {
	background-position: -32px -32px;
}

xul|checkbox:checked xul|checkbox::input {
	background-position: 0px -48px;
}

xul|checkbox:hover:checked xul|checkbox::input {
	background-position: -16px -48px;
}

xul|checkbox:disabled:checked xul|checkbox::input {
	background-position: -32px -48px;
}

xul|radio::input {
	background-position: 0 0;
}

xul|radio:hover xul|radio::input {
	background-position: -16px 0;
}

xul|radiogroup:disabled xul|radio::input,
xul|radio:disabled xul|radio::input {
	background-position: -32px 0;
}

xul|radio:selected xul|radio::input {
	background-position: 0px -16px;
}

xul|radio:hover:selected xul|radio::input {
	background-position: -16px -16px;
}

xul|radiogroup:disabled xul|radio:selected xul|radio::input,
xul|radio:disabled:selected xul|radio::input {
	background-position: -32px -16px;
}

/* */
xul|datepicker xul|datepicker-pane,
xul|colorpicker xul|colorpicker-pane {
	position:	absolute;
	display:	block;
	margin-left: 0;
}
xul|datepicker xul|datepicker-pane xul|menupopup::shadow-bottom,
xul|datepicker xul|datepicker-pane xul|menupopup::shadow-right,
xul|colorpicker xul|colorpicker-pane xul|menupopup::shadow-bottom,
xul|colorpicker xul|colorpicker-pane xul|menupopup::shadow-right {
	display: block;
}

xul|colorpicker::gateway,
xul|menulist::gateway,
xul|datepicker::gateway {
	margin-left: -1px;
}

xul|textbox::field,
xul|colorpicker::field,
xul|timepicker::field,
xul|datepicker::field,
xul|menulist::field {
	position:relative;
	padding-right: 17px;
	padding-left:1px;
	height: 17px;
}

xul|textbox::field {
	padding-right: 1px;
}

xul|textbox[type=number] xul|textbox::field,
xul|textbox[type=search] xul|textbox::field {
	padding-right: 19px;
}
xul|textbox[type=number] xul|textbox::input {
	padding-right: 2px


}

func newTestContext(span ptrace.Span) *testContext {
	return &testContext{span: span}
}
// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0

package ctxutil_test

import (
	"context"
	"errors"
	"testing"

	"github.com/stretchr/testify/assert"
	"github.com/stretchr/testify/require"
	"go.opentelemetry.io/collector/pdata/pcommon"

	"github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl"
	"github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl/contexts/internal/ctxutil"
	"github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl/contexts/internal/pathtest"
	"github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl/ottltest"
)

func Test_GetMapValue_Invalid(t *testing.T) {
	getSetter := &ottl.StandardGetSetter[any]{
		Getter: func(context.Context, any) (any, error) {
			return nil, nil
		},
		Setter: func(context.Context, any, any) error {
			return nil
		},
	}
	tests := []struct {
		name string
		keys []ottl.Key[any]
		err  error
	}{
		{
			name: "first key not a string",
			keys: []ottl.Key[any]{
				&pathtest.Key[any]{
					I: ottltest.Intp(0),
					G: getSetter,
				},
			},
			err: errors.New("cannot get map value: unable to resolve a string index in map: could not resolve key for map/slice, expecting 'string' but got '<nil>'"),
		},
		{
			name: "index map with int",
			keys: []ottl.Key[any]{
				&pathtest.Key[any]{
					S: ottltest.Strp("map"),
					G: getSetter,
				},
				&pathtest.Key[any]{
					I: ottltest.Intp(0),
					G: getSetter,
				},
			},
			err: errors.New("unable to resolve a string index in map: could not resolve key for map/slice, expecting 'string' but got '<nil>'"),
		},
		{
			name: "index slice with string",
			keys: []ottl.Key[any]{
				&pathtest.Key[any]{
					S: ottltest.Strp("slice"),
					G: getSetter,
				},
				&pathtest.Key[any]{
					S: ottltest.Strp("invalid"),
					G: getSetter,
				},
			},
			err: errors.New("unable to resolve an integer index in slice: could not resolve key for map/slice, expecting 'int64' but got '<nil>'"),
		},
		{
			name: "index too large",
			keys: []ottl.Key[any]{
				&pathtest.Key[any]{
					S: ottltest.Strp("slice"),
					G: getSetter,
				},
				&pathtest.Key[any]{
					I: ottltest.Intp(1),
					G: getSetter,
				},
			},
			err: errors.New("index 1 out of bounds"),
		},
		{
			name: "index too small",
			keys: []ottl.Key[any]{
				&pathtest.Key[any]{
					S: ottltest.Strp("slice"),
					G: getSetter,
				},
				&pathtest.Key[any]{
					I: ottltest.Intp(-1),
					G: getSetter,
				},
			},
			err: errors.New("index -1 out of boun


text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading[dir="rtl"] {
  /* @noflip */
  border-radius: 0 4px 4px 0;
}

.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing {
  /* @noflip */
  border-radius: 0 4px 4px 0;
}

[dir="rtl"] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing, .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing[dir="rtl"] {
  /* @noflip */
  border-radius: 4px 0 0 4px;
}

.mdc-text-field--outlined .mdc-floating-label--float-above {
  transform: translateY(-144%) scale(1);
}

.mdc-text-field--outlined .mdc-floating-label--float-above {
  font-size: 0.75rem;
}

.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,
.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above {
  transform: translateY(-130%) scale(0.75);
}

.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,
.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above {
  font-size: 1rem;
}

.mdc-text-field--outlined::before, .mdc-text-field--outlined::after {
  content: none;
}

.mdc-text-field--outlined:not(.mdc-text-field--disabled) {
  background-color: transparent;
}

.mdc-text-field--outlined .mdc-text-field__input {
  display: flex;
  padding: 12px 16px 14px;
  border: none !important;
  background-color: transparent;
  z-index: 1;
}

.mdc-text-field--outlined .mdc-text-field__icon {
  z-index: 2;
}

.mdc-text-field--outlined.mdc-text-field--focused .mdc-notched-outline__leading,
.mdc-text-field--outlined.mdc-text-field--focused .mdc-notched-outline__notch,
.mdc-text-field--outlined.mdc-text-field--focused .mdc-notched-outline__trailing {
  border-width: 2px;
}

.mdc-text-field--outlined.mdc-text-field--disabled {
  background-color: transparent;
}

.mdc-text-field--outlined.mdc-text-field--disabled .mdc-notched-outline__leading,
.mdc-text-field--outlined.mdc-text-field--disabled .mdc-notched-outline__notch,
.mdc-text-field--outlined.mdc-text-field--disabled .mdc-notched-outline__trailing {
  border-color: rgba(0, 0, 0, 0.06);
}

.mdc-text-field--outlined.mdc-text-field--disabled .mdc-text-field__input {
  border-bottom: none;
}

.mdc-text-field--outlined.mdc-text-field--dense {
  height: 48px;
}

.mdc-text-field--outlined.mdc-text-field--dense .mdc-floating-label--float-above {
  transform:


TZA" => TZ,
"THA" => TH,
"TLS" => TL,
"TGO" => TG,
"TKL" => TK,
"TON" => TO,
"TTO" => TT,
"TUN" => TN,
"TUR" => TR,
"TKM" => TM,
"TCA" => TC,
"TUV" => TV,
"UGA" => UG,
"UKR" => UA,
"ARE" => AE,
"GBR" => GB,
"USA" => US,
"UMI" => UM,
"URY" => UY,
"UZB" => UZ,
"VUT" => VU,
"VEN" => VE,
"VNM" => VN,
"VGB" => VG,
"VIR" => VI,
"WLF" => WF,
"ESH" => EH,
"YEM" => YE,
"ZMB" => ZM,
"ZWE" => ZW,

};

///CountryCode map with  3 len numeric str Code key
pub const NUMERIC_MAP: Map<&str, CountryCode> = phf_map! {

"004" => AF,
"248" => AX,
"008" => AL,
"012" => DZ,
"016" => AS,
"020" => AD,
"024" => AO,
"660" => AI,
"010" => AQ,
"028" => AG,
"032" => AR,
"051" => AM,
"533" => AW,
"036" => AU,
"040" => AT,
"031" => AZ,
"044" => BS,
"048" => BH,
"050" => BD,
"052" => BB,
"112" => BY,
"056" => BE,
"084" => BZ,
"204" => BJ,
"060" => BM,
"064" => BT,
"068" => BO,
"535" => BQ,
"070" => BA,
"072" => BW,
"074" => BV,
"076" => BR,
"086" => IO,
"096" => BN,
"100" => BG,
"854" => BF,
"108" => BI,
"132" => CV,
"116" => KH,
"120" => CM,
"124" => CA,
"136" => KY,
"140" => CF,
"148" => TD,
"152" => CL,
"156" => CN,
"162" => CX,
"166" => CC,
"170" => CO,
"174" => KM,
"178" => CG,
"180" => CD,
"184" => CK,
"188" => CR,
"384" => CI,
"191" => HR,
"192" => CU,
"531" => CW,
"196" => CY,
"203" => CZ,
"208" => DK,
"262" => DJ,
"212" => DM,
"214" => DO,
"218" => EC,
"818" => EG,
"222" => SV,
"226" => GQ,
"232" => ER,
"233" => EE,
"748" => SZ,
"231" => ET,
"238" => FK,
"234" => FO,
"242" => FJ,
"246" => FI,
"250" => FR,
"254" => GF,
"258" => PF,
"260" => TF,
"266" => GA,
"270" => GM,
"268" => GE,
"276" => DE,
"288" => GH,
"292" => GI,
"300" => GR,
"304" => GL,
"308" => GD,
"312" => GP,
"316" => GU,
"320" => GT,
"831" => GG,
"324" => GN,
"624" => GW,
"328" => GY,
"332" => HT,
"334" => HM,
"336" => VA,
"34


tg(e,tp,eg,ep,ev,re,r,rp,chk)
	if chk==0 then return true end
	Duel.SetTargetPlayer(1-tp)
	Duel.SetTargetParam(e:GetLabel())
	Duel.SetOperationInfo(0,CATEGORY_DAMAGE,nil,0,1-tp,e:GetLabel())
end
function c63468625.damop(e,tp,eg,ep,ev,re,r,rp)
	local p,d=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER,CHAININFO_TARGET_PARAM)
	Duel.Damage(p,d,REASON_EFFECT)
end


String, decodeStringAsHexArray } from './encode.helper'

const secp256k1PublicKeyBytes = 65
const sigOfsKeyVersionStart: number = 0
const sigOfsKeyVersionEnd: number = sigOfsKeyVersionStart + KeyVersion.LengthOfKeyVersionInBytes
const sigOfsRawSig: number = sigOfsKeyVersionEnd
// SignMessage signs a message using the specified private key.
// Note that the struct must contain a field "Signature"
export const signMessage = (pKey: KeyPair, keyVersion: KeyVersion, msg: any): string => {
  const toBeSigned = getToBeSigned(msg)
  const rawSign = pKey.sign(toBeSigned)
  const keyVerBytes = encodeKeyVersionAsBytes(keyVersion)

  return decodeHexArrayAsString(new Uint8Array([...keyVerBytes, ...rawSign, 0]))
}

// DecodePrivateKey decodes the algorithm and private key from a hex string.
export const decodePrivateKey = (encoded: string): KeyPair => {
  const algKeyBytes = decodeStringAsHexArray(encoded)
  const alg = algKeyBytes[0]

  switch (alg) {
    case SigAlgEcdsaSecP256K1Blake2b.algorithm:
      return decodeSecP256K1PrivateKey(algKeyBytes.slice(1))
    default:
      throw new Error('unknown private key algorithm:' + alg)
  }
}

// DecodePublicKey decodes the algorithm and public key from a hex string.
export const decodePublicKey = (encoded: string): KeyPair => {
  const algKeyBytes = decodeStringAsHexArray(encoded)

  const alg = algKeyBytes[0]
  switch (alg) {
    case SigAlgEcdsaSecP256K1Blake2b.algorithm:
      return decodeSecP256K1PublicKey(algKeyBytes.slice(1))
    default:
      throw Error('unknown public key algorithm: ' + alg)
  }
}

export const verifyAnyMessage = (pubKey: KeyPair, signature: string, msg: any): boolean => {
  const raw = JSON.stringify(msg)
  return verifyMessage(pubKey, signature, raw)
}
export const verifyMessage = (pubKey: KeyPair, signature: string, msg: string): boolean => {
  const verify = secp256k1Verify(extractKeyFromMessage(signature), msg, pubKey.pubKey)
  return verify
}

const decodeSecP256K1PublicKey = (keyBytes: Uint8Array): KeyPair => {
  const key = new KeyPair({ alg: SigAlgEcdsaSecP256K1Blake2b.algorithm, pubKey: keyBytes })

  if (key.pubKey.length != secp256k1PublicKeyBytes) {
    throw new Error(`incorrect secp256k1 public key length: ${key.pubKey.length}`)
  }

  return key
}

// extractKeyFromMessage extracts the key from a signature string
export const extractKeyFromMessage = (signature: string): Uint8Array => {
  const sigBytes = decodeStringAsHexArray(signature)
  if (sigBytes.length < sigOfsRawSig) {
    throw new Error('sigBytes is empty, unable to verify, please check signature')
  }
  return sigBytes.slice(KeyVersion.LengthOfKeyVersionInBytes, sigBytes.length - 1)
}

// ExtractKeyVersionFromMessage extracts the key version from a signature string
export const extractKeyVersionFromMessage = (signature: string): KeyVersion => {
  const sigBytes = decodeStringAsHexArray(signature)
  return decodeKeyVersionFromBytes(sigBytes.slice(sigOfsKeyVersionStart, sigOfsKeyVersionEnd))
}

export const getToBeSigned = (msg: any): Uint8Array => {
  let raw: string = ''
  for (let key of Object.keys(msg)) {
    raw += msg[key]
  }

  return Buffer.from(raw)
}
import {inject} from '@loopback/context';
import {
  post,
  Request,
  requestBody,
  ResponseObject,
  RestBindings,
} from '@loopback/rest';
import {Scan


-issue--success .tox-icon svg{fill:#fff}.tox .tox-dialog__body-content .accessibility-issue--success a .tox-icon{color:#fff}.tox .tox-dialog__body-content .accessibility-issue__header h1,.tox .tox-dialog__body-content .tox-form__group .accessibility-issue__description h2{margin-top:0}.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__header .tox-button{margin-left:4px}.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__header>:nth-last-child(2){margin-left:auto}.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__description{padding:4px 4px 4px 8px}.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__description>:last-child{border-left-width:1px;padding-left:4px}.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__header .tox-button{margin-right:4px}.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__header>:nth-last-child(2){margin-right:auto}.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__description{padding:4px 8px 4px 4px}.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__description>:last-child{border-right-width:1px;padding-right:4px}.tox .tox-anchorbar{display:flex;flex:0 0 auto}.tox .tox-bar{display:flex;flex:0 0 auto}.tox .tox-button{background-color:#207ab7;background-image:none;background-position:0 0;background-repeat:repeat;border-color:#207ab7;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;color:#fff;cursor:pointer;display:inline-block;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:14px;font-style:normal;font-weight:700;letter-spacing:normal;line-height:24px;margin:0;outline:0;padding:4px 16px;text-align:center;text-decoration:none;text-transform:none;white-space:nowrap}.tox .tox-button[disabled]{background-color:#207ab7;background-image:none;border-color:#207ab7;box-shadow:none;color:rgba(255,255,255,.5);cursor:not-allowed}.tox .tox-button:focus:not(:disabled){background-color:#1c6ca1;background-image:none;border-color:#1c6ca1;box-shadow:none;color:#fff}.tox .tox-button:hover:not(:disabled){background-color:#1c6ca1;background-image:none;border-color:#1c6ca1;box-shadow:none;color:#fff}.tox .tox-button:active:not(:disabled){background-color:#185d8c;background-image:none;border-color:#185d8c;box-shadow:none;color:#fff}.tox .tox-button--secondary{background-color:#3d546f;background-image:none;background-position:0 0;background-repeat:repeat;border-color:#3d546f;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;color:#fff;font-size:14px;font-style:normal;font-weight:700;letter-spacing:normal;outline:0;padding:4px 16px;text-decoration:none;text-transform:none}.tox .tox-button--secondary[disabled]{background-color:#3d546f;background-image:none;border-color:#3d546


.New()

	cm, cleanup := initSQLiteCQRS(t, withInitCQRSOptApp(appID))
	defer cleanup()

	t.Run("insert new function", func(t *testing.T) {
		fnID := uuid.New()
		accountID := uuid.New()
		envID := uuid.New()

		params := cqrs.InsertFunctionParams{
			ID:        fnID,
			AccountID: accountID,
			EnvID:     envID,
			AppID:     appID,
			Name:      "New Test Function",
			Slug:      "new-test-function",
			Config:    `{"triggers": [{"event": "new.test.event"}]}`,
			CreatedAt: time.Now(),
		}

		fn, err := cm.InsertFunction(ctx, params)
		require.NoError(t, err)
		require.NotNil(t, fn)

		// Verify function properties
		assert.Equal(t, fnID, fn.ID)
		assert.Equal(t, appID, fn.AppID)
		assert.Equal(t, "New Test Function", fn.Name)
		assert.Equal(t, "new-test-function", fn.Slug)
		assert.NotEmpty(t, fn.Config)
		assert.False(t, fn.CreatedAt.IsZero())
		assert.False(t, fn.IsArchived())

		// Verify function can be retrieved
		retrievedFn, err := cm.GetFunctionByInternalUUID(ctx, fnID)
		require.NoError(t, err)
		assert.Equal(t, fn.ID, retrievedFn.ID)
		assert.Equal(t, fn.Name, retrievedFn.Name)
		assert.Equal(t, fn.Slug, retrievedFn.Slug)
	})

	t.Run("insert function with minimal fields", func(t *testing.T) {
		fnID := uuid.New()
		accountID := uuid.New()
		envID := uuid.New()

		params := cqrs.InsertFunctionParams{
			ID:        fnID,
			AccountID: accountID,
			EnvID:     envID,
			AppID:     appID,
			Name:      "Minimal Function",
			Slug:      "minimal-function",
			Config:    `{}`,
			CreatedAt: time.Now(),
		}

		fn, err := cm.InsertFunction(ctx, params)
		require.NoError(t, err)
		require.NotNil(t, fn)

		assert.Equal(t, fnID, fn.ID)
		assert.Equal(t, "Minimal Function", fn.Name)
		assert.Equal(t, "minimal-function", fn.Slug)
	})
}

func TestSQLiteCQRSGetFunctions(t *testing.T) {
	ctx := context.Background()
	appID := uuid.New()

	cm, cleanup := initSQLiteCQRS(t, withInitCQRSOptApp(appID))
	defer cleanup()

	// Create test functions
	fnIDs := []uuid.UUID{uuid.New(), uuid.New(), uuid.New()}

	for i, fnID := range fnIDs {
		_, err := cm.InsertFunction(ctx, cqrs.InsertFunctionParams{
			ID:        fnID,
			AccountID: uuid.New(),
			EnvID:     uuid.New(),
			AppID:     appID,
			Name:      fmt.Sprintf("Test Function %d", i+1),
			Slug:      fmt.Sprintf("test-function-%d", i+1),
			Config:    fmt.Sprintf(`{"triggers": [{"event": "test.event%d"}]}`, i+1),
			CreatedAt: time.Now(),
		})
		require.NoError(t, err)
	}

	t.Run("get all functions", func(t *testing.T) {
		functions, err := cm.GetFunctions(ctx)
		require.NoError(t, err)
		assert.GreaterOrEqual(t, len(functions), 3)

		// Verify our test functions are included
		foundFnIDs := make(map[uuid.UUID]bool)
		for _, fn := range functions {
			foundFnIDs[fn.ID] = true


-6": "_3yAkjKQ0-lA5EvX8FC25gk",
        "pl-7": "_3PV5AGRGFKuO_PmlQysycB",
        "pl-8": "_3pycPOPwDSDTSqjC-9NkYE",
        "pl-9": "H-SWK55qJtoBpyxa-msy0",
        "ps-0": "_19TCeDxrlkMt1KFHsMZHWZ",
        "ps-1": "gpKT68PBrX7DZDHaRwvHr",
        "ps-2": "_2H7vgbK2JbmsTPE5YJ49Di",
        "ps-3": "_3ZKIkWDed2-7jp2Ltw8JNK",
        "ps-4": "T7pWU2K-ISGDGkIfHakgE",
        "ps-5": "kTAojgnIXoRu9N3Xmtvu6",
        "ps-6": "_2FxHVaVxFxbe-gywGTBYLr",
        "ps-7": "_1OIzwZrMIFGImS2JjitYmZ",
        "ps-8": "_3CFOeSMptqFOpNamNhVKXi",
        "ps-9": "_2-Km8hDA6U_3Ushrcpw5fF",
        "pe-0": "_27a8xQ-ReVtGIErEP4KSqS",
        "pe-1": "_3Z8vgpLcNnDj_CKZt5t3iC",
        "pe-2": "_1r4cicsHCcd-zPwDUlnDne",
        "pe-3": "_1W06WZT9fE3UheEUPZ6j-T",
        "pe-4": "_1SnH8kPcm7zLqpn9jh3213",
        "pe-5": "_3a7Hx9u7-0RusYJCnEINZS",
        "pe-6": "_3GAeIsOY_x_QohkaGqfan9",
        "pe-7": "n-dZaqQUadHY-vI9Wg-dt",
        "pe-8": "_2UeKFA5h3vFPE0V9JPEIbE",
        "pe-9": "_1cPkY-6VYkADuCungu6r78",
        Width: "_3-4uPm6iJyvxHpK3DT7x6L",
        MaxWidth: "_3IiNa2WD-MUmLrad0-RzSC",
        MinWidth: "_3AocqvUfA7f6sPEQVWiDCC",
        Height: "_1u7tlq5OcUVR8p7-ic_ZVw",
        MaxHeight: "_3N3KVUKs9soeYCWc3BpHkM",
        MinHeight: "_3ugvZ2nny7eChIYJuwKYO-",
        FlexBasis: "_3swtpIrvrz0futGxsN8SLc",
        FlexGrow: "_1jkRBcprAG-KoLJ4aRxwVr",
        FlexShrink: "_1TqZRAPkIEpJ8piAHaVHvn",
        "Radius-none": "_2sNdnlgM-A9e5AfdXG2kmr",
        "Radius-sm": "_1dhvtWTnQHytZWk5i-f-We",
        "Radius-md": "_3C--qZDFlz6NtkjDDeT2SG",
        "Radius-lg": "_2RYinm9bxw0vanLueNM8f-",
        "Radius-full": "_1ZmWikEporw6-kCli580bF",
        Cursor: "_1GQDAOi2OOMjJ6Nj-opqk8",
        Position: "_3C1PO6CmOdCmEpWqSSnfgG",
        Inset: "_3nwiM11zkcuihmteaUVqjN",
        GridColumn: "MA0AWq66E_Bq_xW4BQWnH",


pendency "com.google.firebase:firebase-analytics:1.2.4">
          <!-- Crashlytics -->
          <!ENTITY crashlytics-dependency "com.google.firebase:firebase-crashlytics:12.0.0">
          <!-- Performance Monitoring -->
          <!ENTITY perf-dependency "com.google.firebase:firebase-perf:10.2.3">
          <!-- Firebase AI Logic -->
          <!ENTITY firebase-ai-dependency "com.google.firebase:firebase-ai:9.2.3">

          <!-- Firebase Gradle plugins -->
          <!-- App Distribution -->
          <!ENTITY appdistribution-plugin-class "com.google.firebase:firebase-appdistribution-gradle:1.21.3">
          <!ENTITY appdistribution-plugin "com.google.firebase.appdistribution">
          <!-- Crashlytics -->
          <!ENTITY crashlytics-plugin-class "com.google.firebase:firebase-crashlytics-gradle:15.1.0">
          <!ENTITY crashlytics-plugin "com.google.firebase.crashlytics">
          <!-- Perf Plugin -->
          <!ENTITY perf-plugin-class "com.google.firebase:perf-plugin:20.5.6">
          <!ENTITY perf-plugin "com.google.firebase.firebase-perf">
        ]>
      """
        .trimIndent()
  }

  @Test
  fun `does not include empty sections`() {
    val tutorialFile = makeTutorial()

    tutorialFile.readText().trim() shouldBeText
      """
      <!DOCTYPE root [

      ]>
    """
        .trimIndent()
  }

  @Test
  fun `allows versions to be overridden`() {
    val tutorialFile =
      makeTutorial(
        commonArtifacts =
          listOf(
            "com.google.gms:google-services:1.2.3",
            "com.google.firebase:firebase-perf:10.2.3",
          ),
        firebaseArtifacts =
          listOf(
            "com.google.firebase:firebase-analytics:1.2.4",
            "com.google.firebase:firebase-crashlytics:12.0.0",
          ),
        gradlePlugins =
          listOf(
            "com.google.firebase:firebase-appdistribution-gradle:1.21.3",
            "com.google.firebase:firebase-crashlytics-gradle:15.1.0",
          ),
      ) {
        versionOverrides.set(
          mapOf(
            "com.google.gms:google-services" to "3.2.1",
            "com.google.firebase:firebase-crashlytics" to "1.2.12",
            "com.google.firebase:firebase-crashlytics-gradle" to "1.15.0",
          )
        )
      }

    tutorialFile.readText().trim() shouldBeText
      """
      <!DOCTYPE root [
        <!-- Common Firebase dependencies -->
        <!-- Google Services Plugin -->
        <!ENTITY google-services-plugin-class "com.google.gms:google-services:3.2.1">
        <!ENTITY google-services-plugin "com.google.gms.google-services">
        <!ENTITY gradle-plugin-class "com.android.tools.build:gradle:8.1.0">
        <!-- Performance Monitoring -->
        <!ENTITY perf-dependency "com.google.firebase:firebase-perf:10.2.3">

        <!-- Firebase SDK libraries -->
        <!-- Analytics -->
        <!ENTITY analytics-dependency "com.google.firebase:firebase-analytics:1.2.4">
        <!-- Crashlytics -->
        <!ENTITY crashlytics-dependency "com.google.firebase:firebase-crashlytics:1.2.12">

        <!-- Firebase Gradle plugins -->
        <!-- App Distribution -->
        <!ENTITY appdistribution-plugin-class "com.google.firebase:firebase-appdistribution-gradle:1.21.3">
        <!ENTITY appdistribution-plugin "com.google.firebase.appdistribution">


()
		if r.Fallback != nil {
			fallbackOpt = *r.Fallback
		}
		allowPartlyDoneOpt := cfg.Restore.GetAllowPartlyDone()
		if r.AllowPartlyDone != nil {
			allowPartlyDoneOpt = *r.AllowPartlyDone
		}

		var rstr *restore.PhysRestore
		rstr, err = restore.NewPhysical(
			ctx,
			a.leadConn,
			a.nodeConn,
			nodeInfo,
			r.RSMap,
			fallbackOpt,
			allowPartlyDoneOpt,
		)
		if err != nil {
			l.Error("init physical backup: %v", err)
			return
		}

		err = rstr.Snapshot(ctx, r, r.OplogTS, opid, l, a.closeCMD, a.HbPause)
	}
	if err != nil {
		if errors.Is(err, restore.ErrNoDataForShard) {
			l.Info("no data for the shard in backup, skipping")
		} else {
			l.Error("restore: %v", err)
		}
		return
	}

	if bcpType == defs.LogicalBackup && nodeInfo.IsLeader() {
		epch, err := config.ResetEpoch(ctx, a.leadConn)
		if err != nil {
			l.Error("reset epoch: %v", err)
		}
		l.Debug("epoch set to %v", epch)
	}

	l.Info("recovery successfully finished")
}

func getNumParallelCollsConfig(rParallelColls *int32, restoreConf *config.RestoreConf) int {
	numParallelColls := max(runtime.NumCPU()/2, 1)
	if rParallelColls != nil && *rParallelColls > 0 {
		numParallelColls = int(*rParallelColls)
	} else if restoreConf != nil && restoreConf.NumParallelCollections > 0 {
		numParallelColls = restoreConf.NumParallelCollections
	}
	return numParallelColls
}

func getNumInsertionWorkersConfig(rInsWorkers *int32, restoreConf *config.RestoreConf) int {
	numInsertionWorkersPerCol := numInsertionWorkersDefault
	if rInsWorkers != nil && int(*rInsWorkers) > 0 {
		numInsertionWorkersPerCol = int(*rInsWorkers)
	} else if restoreConf != nil && restoreConf.NumInsertionWorkers > 0 {
		numInsertionWorkersPerCol = restoreConf.NumInsertionWorkers
	}
	return numInsertionWorkersPerCol
}

func addRestoreMetaWithError(
	ctx context.Context,
	conn connect.Client,
	l log.LogEvent,
	opid ctrl.OPID,
	cmd *ctrl.RestoreCmd,
	setName string,
	errStr string,
	args ...any,
) error {
	errMsg := fmt.Sprintf(errStr, args...)

	l.Error(errMsg)

	meta := &restore.RestoreMeta{
		Type:     defs.LogicalBackup,
		OPID:     opid.String(),
		Name:     cmd.Name,
		Backup:   cmd.BackupName,
		PITR:     int64(cmd.OplogTS.T),
		StartTS:  time.Now().UTC().Unix(),
		Status:   defs.StatusError,
		Error:    errMsg,
		Replsets: []restore.RestoreReplset{},
	}
	err := restore.SetRestoreMetaIfNotExists(ctx, conn, meta)
	if err != nil {
		return errors.Wrap(err, "write restore meta to db")
	}

	rs := restore.RestoreReplset{
		Name:       setName,
		StartTS:    time.Now().UTC().Unix(),
		Status:     defs.StatusError,
		Error:      errMsg,
		Conditions: restore.Conditions{},
	}
	err = restore.AddRestoreRSMeta(ctx, conn, cmd.Name, rs)
	if


 Item,
    shoppingCartData: CartEntry | null = null
  ): { profit: number; profitPerSecond: number } {
    if (shoppingCartData == null) {
      for (const val of Object.values(item.shoppingCartData)) {
        if (item.activeRecipeId != "" && val.action == ActionTaken.Craft) {
          shoppingCartData = val;
          break;
        } else if (item.activeRecipeId == "" && val.action == ActionTaken.Buy) {
          shoppingCartData = val;
          break;
        }
      }
    }

    if (shoppingCartData == null) return { profit: 0, profitPerSecond: 0 };
    let { individualPrice, cumulativeTimeSpent } = shoppingCartData!;

    const marketPrice = getMarketPriceForItem(item);
    return {
      profit: this.calculateProfit(marketPrice, individualPrice),
      profitPerSecond: this.calculateProfitPerSecond(
        marketPrice,
        individualPrice,
        cumulativeTimeSpent
      ),
    };
  }

  /**
   *
   * @param marketPrice
   * @param individualPrice
   */
  static calculateProfit(marketPrice: number, individualPrice: number): number {
    let sellingPrice = marketPrice * this.TAX_PERCENTAGE;
    if (this.valuePackEnabled) sellingPrice = 1.3 * sellingPrice;
    // console.log('Total Profit | Selling Price:', sellingPrice, 'Individual Price:', individualPrice)
    const profit = sellingPrice - individualPrice;
    return profit;
  }

  /**
   *
   * @param marketPrice
   * @param individualPrice
   * @param cumulativeTimeSpent
   */
  static calculateProfitPerSecond(
    marketPrice: number,
    individualPrice: number,
    cumulativeTimeSpent: number
  ): number {
    const profit = this.calculateProfit(marketPrice, individualPrice);
    const profitPerSecond = profit / cumulativeTimeSpent;
    return profitPerSecond;
  }
}
// Please don't have includes in here that aren't inside the DSL folder, or the d.ts/flow defs break

import { RepoMetaData } from "./RepoMetaData"

// This is `danger.bitbucket_server` inside the JSON

export interface BitBucketServerJSONDSL {
  /** The pull request and repository metadata */
  metadata: RepoMetaData
  /** The related JIRA issues */
  issues: JIRAIssue[]
  /** The PR metadata */
  pr: BitBucketServerPRDSL
  /** The commits associated with the pull request */
  commits: BitBucketServerCommit[]
  /** The comments on the pull request */
  comments: BitBucketServerPRActivity[]
  /** The activities such as OPENING, CLOSING, MERGING or UPDATING a pull request */
  activities: BitBucketServerPRActivity[]
}

export interface BitBucketServerAPIDSL {
  /** Gets the contents of a file from a repo (defaults to yours) */
  getFileContents(filePath: string, repoSlug?: string, refspec?: string): Promise<string>

  /** Make a get call against the bitbucket server API */
  get(path: string, headers: any, suppressErrors?: boolean): Promise<any>

  /** Make a post call against the bitbucket server API */
  post(path: string, headers: any, body: any, suppressErrors?: boolean): Promise<any>

  /** Make a put call against the bitbucket server API */
  put(path: string, headers: any, body: any): Promise<any>

  /** Make a delete call against the bitbucket server API */
  delete(path: string, headers: any, body: any): Promise<any>
}

// This is `danger.bitbucket_server`

/** The BitBucketServer metadata for your PR */
export interface BitBucketServerDSL extends BitBucketServerJSONDSL {
  /**
   * An authenticated API so you can extend danger's behavior.
   */
  api: BitBucketServerAPIDSL
}

/**
 * This is `danger.bitbucket_server.issues` It


for n in range(4, 10000):
    st = '3' + n * '1'
    while '31' in st or '211' in st or '1111' in st:
        st = st.replace('31', '1', 1)
        st = st.replace('211', '13', 1)
        st = st.replace('1111', '2', 1)
    if sum(map(int, st)) == 15:
        print(n)
        break


//
//  WindowController.h
//  MMTabBarView Demo
//
//  Created by John Pannell on 4/6/06.
//  Copyright 2006 Positive Spin Media. All rights reserved.
//

#if __has_feature(modules)
@import Cocoa;
#else
#import <Cocoa/Cocoa.h>
#endif

#if __has_feature(modules)
@import MMTabBarView;
#else
#import <MMTabBarView/MMTabBarView.h>
#endif

@interface DemoWindowController : NSWindowController <NSToolbarDelegate, MMTabBarViewDelegate, NSMenuDelegate> {
	IBOutlet NSTabView				*tabView;
	IBOutlet NSTextField            *tabField;
	IBOutlet NSDrawer				*drawer;

	IBOutlet MMTabBarView           *tabBar;

	IBOutlet NSButton               *isProcessingButton;
	IBOutlet NSButton				*isEditedButton;
	IBOutlet NSButton				*hasLargeImageButton;
	IBOutlet NSTextField			*objectCounterField;
    IBOutlet NSColorWell            *objectCounterColorWell;
	IBOutlet NSPopUpButton			*iconButton;
    IBOutlet NSButton				*hasCloserButton;
    IBOutlet NSButton               *showObjectCountButton;

	IBOutlet NSPopUpButton			*popUp_style;
	IBOutlet NSPopUpButton			*popUp_orientation;
	IBOutlet NSPopUpButton			*popUp_tearOff;
	IBOutlet NSButton               *button_onlyShowCloseOnHover;
	IBOutlet NSButton				*button_canCloseOnlyTab;
	IBOutlet NSButton				*button_disableTabClosing;
    IBOutlet NSButton               *button_allowBackgroundClosing;
	IBOutlet NSButton				*button_hideForSingleTab;
	IBOutlet NSButton				*button_showAddTab;
	IBOutlet NSButton				*button_useOverflow;
	IBOutlet NSButton				*button_automaticallyAnimate;
	IBOutlet NSButton				*button_allowScrubbing;
	IBOutlet NSButton				*button_sizeToFit;
	IBOutlet NSTextField			*textField_minWidth;
	IBOutlet NSTextField			*textField_maxWidth;
	IBOutlet NSTextField			*textField_optimumWidth;
}

- (void)addDefaultTabs;

- (void)addNewTabWithTitle:(NSString *)aTitle;

- (MMTabBarView *)tabBar;

// Actions
- (IBAction)addNewTab:(id)sender;
- (IBAction)closeTab:(id)sender;

- (IBAction)setIconNamed:(id)sender;
- (IBAction)setObjectCount:(id)sender;
- (IBAction)setObjectCountColor:(id)sender;
- (IBAction)setTabLabel:(id)sender;

- (IBAction)showObjectCountAction:(id)sender;
- (IBAction)isProcessingAction:(id)sender;
- (IBAction)isEditedAction:(id)sender;
- (IBAction)hasCloseButtonAction:(id)sender;
- (IBAction)hasLargeImageAction:(id)sender;

// Toolbar
- (IBAction)toggleToolbar:(id)sender;
- (BOOL)validateToolbarItem:(NSToolbarItem *)theItem;

@end


ex (k-omega, k-omega SST)

enum     TurbulenceCondType2D {
    TCT_No_Turbulence_2D            = 0x0,        // 0
// k-eps BC
    TCT_k_CONST_2D                  = 0x01,       // 1  k
    TCT_eps_CONST_2D                = 0x02,       // 2  eps

    TCT_dkdx_NULL_2D                = 0x04,       // 3
    TCT_depsdx_NULL_2D              = 0x08,       // 4

    TCT_dkdy_NULL_2D                = 0x010,      // 5
    TCT_depsdy_NULL_2D              = 0x020,      // 6

    TCT_d2kdx2_NULL_2D              = 0x040,      // 7
    TCT_d2epsdx2_NULL_2D            = 0x080,      // 8

    TCT_d2kdy2_NULL_2D              = 0x0100,     // 9
    TCT_d2epsdy2_NULL_2D            = 0x0200,     // 10
// k-eps model
    TCT_k_eps_Model_2D              = 0x0400,     // 11 - k-eps model
// Zero Equation models
    TCT_Prandtl_Model_2D            = 0x0800,     // 12  Zero equation models (Prandtl types and it's modifications)
// Integral Model f(Re)
    TCT_Integral_Model_2D           = 0x01000,    // 13
// Special BC on Wall for k-eps model
    TCT_eps_mud2kdx2_WALL_2D        = 0x02000,    // 14
    TCT_eps_mud2kdy2_WALL_2D        = 0x04000,    // 15
    TCT_eps_Cmk2kXn_WALL_2D         = 0x08000,    // 16
// SA model
    TCT_Spalart_Allmaras_Model_2D   = 0x010000,   // 17
// k-omega model
    TCT_k_omega_Model_2D            = 0x020000,   // 18
// k-omega SST model
    TCT_k_omega_SST_Model_2D        = 0x040000,   // 19
// Baldwin-Lomax model
    TCT_Baldwin_Lomax_Model_2D      = 0x080000,   // 20
// nut_92 (Sekundov) model
    TCT_nut_92_Model_2D             = 0x0100000,  // 21
// Smagorinsky-Lilly model
    TCT_Smagorinsky_Model_2D        = 0x0200000,  // 22
};

enum TurbulenceExtendedModel {
     TEM_Prandtl,         // 0 - zero equation Prandtl model
     TEM_vanDriest,       // 1 - zero equation van Driest
     TEM_Escudier,        // 2 - zero equation Escudier
     TEM_Klebanoff,       // 3 - zero equation Klebanoff
     TEM_k_eps_Std,       // 4 - Standart k-eps model
     TEM_k_eps_Chien,     // 5 - Chien k-eps model
     TEM_k_eps_JL,        // 6 - Jones-Launder k-eps model
     TEM_k_eps_LSY,       // 7 - Launder and Sharma, with Yap-correction
     TEM_k_eps_RNG,       // 8 - RNG k-eps model
     TEM_k_eps_Realisable,// 9 - Realisable k-eps model  (TODO)
     TEM_Spalart_Allmaras,// 10 - SA model
     TEM_Baldwin_Lomax,   // 11 - BL model               (TODO)
     TEM_nut_92_Sekundov, // 12 - nut_92 model           (TODO)
     TEM_k_omega_Wilcox,  // 14 - k-omega model          (TODO)
     TEM_k_omega_SST,     // 15 - k-omega SST model      (TODO)
     TEM_Smagorinsky,     // 16 - Smagorinsky-Lilly model
};

// omega as eps alias
#define TCT_omega_CONST_2D     TCT_eps_CONST_2D
#define TCT_domegadx_NULL_2D   TCT_depsdx_NULL_2D
#define TCT_domegady_NULL_2D   TCT_depsdy_NULL_2D
#define TCT_d2omegadx2_NULL_2D TCT_d2epsdx2_NULL_2D
#define TCT_d2omegady2_NULL_2D TCT_d2epsdy2