 counter: ICounterState
}

const initialState: IAppState = {
    counter: initialCounterState,
};

export default function configureStore(): IStore<IAppState, IAction> {
    return createStore<IAppState, IAction>(rootReducer, initialState);
}
// 你也得到一个数组 queries ，其中 queries[j] = [uj, vj]。
// 对于第 j 个查询，您应该回答课程 uj 是否是课程 vj 的先决条件。
// 返回一个布尔数组 answer ，其中 answer[j] 是第 j 个查询的答案。

import { Floyd } from './Floyd'

function checkIfPrerequisite(n: number, prerequisites: number[][], queries: number[][]): boolean[] {
  const F = new Floyd(n)
  prerequisites.forEach(([u, v]) => F.addDirectedEdge(u, v, 1))
  return queries.map(([u, v]) => F.dist(u, v) !== -1)
}

export {}
import { CdParams } from '../params/cd-params/cd-params';
import { Size } from './size';
import { CdElem } from './cd-elem';
import { Point } from './point';
import { preserveWhitespacesDefault } from '@angular/compiler';
import { Rnd } from './rnd';
import { Color } from './color';

export class CdElems {

    private _target: CdElem;
    private _centerPoint: Point;
    private _arrElems: CdElem[];
    private _canvasSize: Size;
    private _cdParams: CdParams;

    constructor(cdParams:CdParams, canvasSize:Size){
        this.cdParams = cdParams;
        this.canvasSize = canvasSize;
        this.arrElems = [];
        this.createCenterPoint();
        this.createTarget();
        this.createElementsRndSize(new Size(0,0), this.canvasSize);
    }

    public get arrElems(): CdElem[] {
        return this._arrElems;
    }
    public set arrElems(value: CdElem[]) {
        this._arrElems = value;
    }
    public get canvasSize(): Size {
        return this._canvasSize;
    }
    public set canvasSize(value: Size) {
        this._canvasSize = value;
    }
    public get target(): CdElem {
        return this._target;
    }
    public set target(value: CdElem) {
        this._target = value;
    }
    public get centerPoint(): Point {
        return this._centerPoint;
    }
    public set centerPoint(value: Point) {
        this._centerPoint = value;
    }
    public get cdParams(): CdParams {
        return this._cdParams;
    }
    public set cdParams(value: CdParams) {
        this._cdParams = value;
    }

    public createElementsRndSize(canvasMin:Size, canvasMax:Size):void{
        //supported position types: random inside canvas, random outside canvas, center of canvas
        const standardSize = new Size(10,10);
        const standardSpeed = this.cdParams.speedValue;;
        const standardShape = this.cdParams.blocksShapeOptions[this.cdParams.blocksShape];
        const targetInverted = this.cdParams.targetPointOptions[this.cdParams.targetPoint] == "center";
        const standardFillColor = this.cdParams.blocksColorOptions[this.cdParams.blocksColor];
        const currentPosition = this.target.currentPosition;
        const expandRate = 50;
        const shrinkRate = 50;
        const minRndSize = 2;
        const maxRndSize = 10;
        const minRndSpeed = this.cd


7F C3 F3 78 */	mr r3, r30
/* 803AAD18 003A6978  48 02 EB 09 */	bl func_803D9820
/* 803AAD1C 003A697C  2C 03 00 01 */	cmpwi r3, 1
/* 803AAD20 003A6980  40 82 00 94 */	bne lbl_803AADB4
/* 803AAD24 003A6984  80 7F 00 04 */	lwz r3, 4(r31)
/* 803AAD28 003A6988  48 02 EA E5 */	bl func_803D980C
/* 803AAD2C 003A698C  7F A3 EB 78 */	mr r3, r29
/* 803AAD30 003A6990  48 02 EB 21 */	bl func_803D9850
/* 803AAD34 003A6994  7F C3 F3 78 */	mr r3, r30
/* 803AAD38 003A6998  48 02 EB 01 */	bl func_803D9838
/* 803AAD3C 003A699C  7F C3 F3 78 */	mr r3, r30
/* 803AAD40 003A69A0  38 80 00 00 */	li r4, 0
/* 803AAD44 003A69A4  38 A0 00 00 */	li r5, 0
/* 803AAD48 003A69A8  38 C0 00 00 */	li r6, 0
/* 803AAD4C 003A69AC  48 02 EA E9 */	bl func_803D9834
/* 803AAD50 003A69B0  80 1F 00 08 */	lwz r0, 8(r31)
/* 803AAD54 003A69B4  2C 00 00 01 */	cmpwi r0, 1
/* 803AAD58 003A69B8  40 82 00 10 */	bne lbl_803AAD68
/* 803AAD5C 003A69BC  7F C3 F3 78 */	mr r3, r30
/* 803AAD60 003A69C0  38 80 00 00 */	li r4, 0
/* 803AAD64 003A69C4  48 02 EA CD */	bl func_803D9830
lbl_803AAD68:
/* 803AAD68 003A69C8  38 00 00 04 */	li r0, 4
/* 803AAD6C 003A69CC  98 1F 00 0E */	stb r0, 0xe(r31)
/* 803AAD70 003A69D0  48 00 00 44 */	b lbl_803AADB4
lbl_803AAD74:
/* 803AAD74 003A69D4  7F C3 F3 78 */	mr r3, r30
/* 803AAD78 003A69D8  48 02 EA A1 */	bl func_803D9818
/* 803AAD7C 003A69DC  2C 03 00 01 */	cmpwi r3, 1
/* 803AAD80 003A69E0  40 82 00 34 */	bne lbl_803AADB4
/* 803AAD84 003A69E4  80 7F 00 00 */	lwz r3, 0(r31)
/* 803AAD88 003A69E8  88 9F 00 0D */	lbz r4, 0xd(r31)
/* 803AAD8C 003A69EC  80 BF 00 08 */	lwz r5, 8(r31)
/* 803AAD90 003A69F0  48 00 5A 25 */	bl func_803B07B4
/* 803AAD94 003A69F4  80 7F 00 00 */	lwz r3, 0(r31)
/* 803AAD98 003A69F8  88 9F 00 0D */	lbz r4, 0xd(r


n(
					'The "data" option should be a function ' +
					'that returns a per-instance value in component ' +
					'definitions.',
					vm
				);

				return parentVal
			}
			return mergeDataOrFn.call(this, parentVal, childVal)
		}

		return mergeDataOrFn(parentVal, childVal, vm)
	};

	/**
	 * Hooks and props are merged as arrays.
	 */
	function mergeHook(
		parentVal,
		childVal
	) {
		return childVal ?
			parentVal ?
			parentVal.concat(childVal) :
			Array.isArray(childVal) ?
			childVal :
			[childVal] :
			parentVal
	}

	LIFECYCLE_HOOKS.forEach(function(hook) {
		strats[hook] = mergeHook;
	});

	/**
	 * Assets
	 *
	 * When a vm is present (instance creation), we need to do
	 * a three-way merge between constructor options, instance
	 * options and parent options.
	 */
	function mergeAssets(parentVal, childVal) {
		var res = Object.create(parentVal || null);
		return childVal ?
			extend(res, childVal) :
			res
	}

	ASSET_TYPES.forEach(function(type) {
		strats[type + 's'] = mergeAssets;
	});

	/**
	 * Watchers.
	 *
	 * Watchers hashes should not overwrite one
	 * another, so we merge them as arrays.
	 */
	strats.watch = function(parentVal, childVal) {
		// work around Firefox's Object.prototype.watch...
		if(parentVal === nativeWatch) {
			parentVal = undefined;
		}
		if(childVal === nativeWatch) {
			childVal = undefined;
		}
		/* istanbul ignore if */
		if(!childVal) {
			return Object.create(parentVal || null)
		}
		if(!parentVal) {
			return childVal
		}
		var ret = {};
		extend(ret, parentVal);
		for(var key in childVal) {
			var parent = ret[key];
			var child = childVal[key];
			if(parent && !Array.isArray(parent)) {
				parent = [parent];
			}
			ret[key] = parent ?
				parent.concat(child) :
				Array.isArray(child) ? child : [child];
		}
		return ret
	};

	/**
	 * Other object hashes.
	 */
	strats.props =
		strats.methods =
		strats.inject =
		strats.computed = function(parentVal, childVal) {
			if(!childVal) {
				return Object.create(parentVal || null)
			}
			if(!parentVal) {
				return childVal
			}
			var ret = Object.create(null);
			extend(ret, parentVal);
			extend(ret, childVal);
			return ret
		};
	strats.provide = mergeDataOrFn;

	/**
	 * Default strategy.
	 */
	var defaultStrat = function(parentVal, childVal) {
		return childVal === undefined ?
			parentVal :
			childVal
	};

	/**
	 * Validate component names
	 */
	function checkComponents(options) {
		for(var key in options.components) {
			var lower = key.toLowerCase();
			if(isBuiltInTag(lower) || config.isReservedTag(lower)) {
				warn(
					'Do not use built-in or reserved HTML elements as component ' +
					'id: ' + key
				);
			}
		}
	}

	/**
	 * Ensure all props option syntax are normalized into the
	 * Object-based format.
	 */
	function normalizeProps(options) {
		var props = options.props;
		if(!props) {
			return
		}
		var res = {};
		var i, val, name;
		if(Array.isArray(props)) {
			i = props.length;
			while(i--) {
				val = props[i];
				if(typeof val


V21(CodecCapabilities capabilities) {
    return capabilities.isFeatureSupported(CodecCapabilities.FEATURE_TunneledPlayback);
  }

  private static boolean isSecure(CodecCapabilities capabilities) {
    return Util.SDK_INT >= 21 && isSecureV21(capabilities);
  }

  @TargetApi(21)
  private static boolean isSecureV21(CodecCapabilities capabilities) {
    return capabilities.isFeatureSupported(CodecCapabilities.FEATURE_SecurePlayback);
  }

  @TargetApi(21)
  private static boolean areSizeAndRateSupportedV21(VideoCapabilities capabilities, int width,
      int height, double frameRate) {
    // Don't ever fail due to alignment. See: https://github.com/google/ExoPlayer/issues/6551.
    Point alignedSize = alignVideoSizeV21(capabilities, width, height);
    width = alignedSize.x;
    height = alignedSize.y;

    // VideoCapabilities.areSizeAndRateSupported incorrectly returns false if frameRate < 1 on some
    // versions of Android, so we only check the size in this case [Internal ref: b/153940404].
    if (frameRate == Format.NO_VALUE || frameRate < 1) {
      return capabilities.isSizeSupported(width, height);
    } else {
      // The signaled frame rate may be slightly higher than the actual frame rate, so we take the
      // floor to avoid situations where a range check in areSizeAndRateSupported fails due to
      // slightly exceeding the limits for a standard format (e.g., 1080p at 30 fps).
      double floorFrameRate = Math.floor(frameRate);
      return capabilities.areSizeAndRateSupported(width, height, floorFrameRate);
    }
  }

  @TargetApi(21)
  private static Point alignVideoSizeV21(VideoCapabilities capabilities, int width, int height) {
    int widthAlignment = capabilities.getWidthAlignment();
    int heightAlignment = capabilities.getHeightAlignment();
    return new Point(
        Util.ceilDivide(width, widthAlignment) * widthAlignment,
        Util.ceilDivide(height, heightAlignment) * heightAlignment);
  }

  @TargetApi(23)
  private static int getMaxSupportedInstancesV23(CodecCapabilities capabilities) {
    return capabilities.getMaxSupportedInstances();
  }

  /**
   * Capabilities are known to be inaccurately reported for vertical resolutions on some devices.
   * [Internal ref: b/31387661]. When this workaround is enabled, we also check whether the
   * capabilities indicate support if the width and height are swapped. If they do, we assume that
   * the vertical resolution is also supported.
   *
   * @param name The name of the codec.
   * @return Whether to enable the workaround.
   */
  private static final boolean enableRotatedVerticalResolutionWorkaround(String name) {
    if ("OMX.MTK.VIDEO.DECODER.HEVC".equals(name) && "mcv5a".equals(Util.DEVICE)) {
      // See https://github.com/google/ExoPlayer/issues/6612.
      return false;
    }
    return true;
  }
}
/*
 * Copyright (C) 2017 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.google.android.exoplayer2.offline;

import static com.google.android.exoplayer2.offline.Download.FAILURE_REASON_NONE;
import static com.google.android.exoplayer2.offline.Download.FAILURE_REASON_UNKNOWN;
import static com.google.


",
            { staticClass: "el-calendar__button-group" },
            [
              _c(
                "el-button-group",
                [
                  _c(
                    "el-button",
                    {
                      attrs: { type: "plain", size: "mini" },
                      on: {
                        click: function($event) {
                          _vm.selectDate("prev-month")
                        }
                      }
                    },
                    [
                      _vm._v(
                        "\n          " +
                          _vm._s(_vm.t("el.datepicker.prevMonth")) +
                          "\n        "
                      )
                    ]
                  ),
                  _c(
                    "el-button",
                    {
                      attrs: { type: "plain", size: "mini" },
                      on: {
                        click: function($event) {
                          _vm.selectDate("today")
                        }
                      }
                    },
                    [
                      _vm._v(
                        "\n          " +
                          _vm._s(_vm.t("el.datepicker.today")) +
                          "\n        "
                      )
                    ]
                  ),
                  _c(
                    "el-button",
                    {
                      attrs: { type: "plain", size: "mini" },
                      on: {
                        click: function($event) {
                          _vm.selectDate("next-month")
                        }
                      }
                    },
                    [
                      _vm._v(
                        "\n          " +
                          _vm._s(_vm.t("el.datepicker.nextMonth")) +
                          "\n        "
                      )
                    ]
                  )
                ],
                1
              )
            ],
            1
          )
        : _vm._e()
    ]),
    _vm.validatedRange.length === 0
      ? _c(
          "div",
          { key: "no-range", staticClass: "el-calendar__body" },
          [
            _c("date-table", {
              attrs: {
                date: _vm.date,
                "selected-day": _vm.realSelectedDay,
                "first-day-of-week": _vm.realFirstDayOfWeek
              },
              on: { pick: _vm.pickDay }
            })
          ],
          1
        )
      : _c(
          "div",
          { key: "has-range", staticClass: "el-calendar__body" },
          _vm._l(_vm.validatedRange, function(range, index) {
            return _c("date-table", {
              key: index,
              attrs: {
                date: range[0],
                "selected-day": _vm.realSelectedDay,
                range: range,
                "hide-header": index !== 0,
                "first-day-of-week": _vm.realFirstDayOfWeek
              },
              on: { pick: _vm.pickDay }
            })
          }),
          1
        )
  ])
}
var mainvue_type_template_id_6d9756be_staticRenderFns = []
mainvue_type_template_id_6d9756be_render._withStripped = true

// CONCATENATED MODULE: ./packages/calendar/src/main.vue?vue&type=template&id=6d9756be&

// EXTERNAL MODULE: external "element-ui/lib/utils/date"
var date_ = __webpack_require__(20);
var date_default = /*#__PURE__*/__webpack_require__.n(date_);

// CONCATENATED MODULE: ./node_modules/_babel-loader@7.1.5@babel-loader/lib


02849235852037206415108889015059219166240450302254956308847958306752376630434747179841583938577813303977756794180345211044080210463013325126357378012254921832582261031085854275975429292856139297280376769805488648952394615434427451569677750617060311169563152672426243746135003883144401154373047228471886849121123499505302598550204049274763109868687045598992595645865725189340024009735210753379459724133877563999897918048166690249497990952918083710482868058874634693110960353150966436181426337513290761325774357649147565036612583084519183737950587598565951437095267601134541210885962734668657269952288854119140709789833395989789307580199759407873860929760132706905714818775362044640946892825121695410251708"

        val a = aString.toBigInt()
        val b = bString.toBigInt()
        assertTrue(b > a)
        assertTrue(b > 0)
        assertTrue(a > 0)

        val bInvString = "-$bString"
        val bInv = bInvString.toBigInt()

        assertTrue(bInv < a)
        assertTrue(bInv < 0)
    }
}
@file:Suppress(
    "unused"
)
@file:UseExperimental(
    BotsOnly::class,
    TestingOnly::class
)

package dev.whyoleg.ktd.api.message

import dev.whyoleg.ktd.*
import dev.whyoleg.ktd.api.*
import dev.whyoleg.ktd.api.TdApi.*

/**
 * Updates the game score of the specified user in the game
 *
 * @chatId - The chat to which the message with the game belongs
 * @messageId - Identifier of the message
 * @editMessage - True, if the message should be edited
 * @userId - User identifier
 * @score - The new score
 * @force - Pass true to update the score even if it decreases
 *          If the score is 0, the user will be deleted from the high score table
 */
@BotsOnly
suspend fun TelegramClient.setGameScore(
    chatId: Long = 0L,
    messageId: Long = 0L,
    editMessage: Boolean = false,
    userId: Int = 0,
    score: Int = 0,
    force: Boolean = false
): Message = message(
    SetGameScore(
        chatId,
        messageId,
        editMessage,
        userId,
        score,
        force
    )
)

/**
 * Updates the game score of the specified user in the game
 */
@BotsOnly
suspend fun TelegramClient.message(
    f: SetGameScore
): Message = exec(f) as Message
@file:Suppress(
    "unused"
)
@file:UseExperimental(
    BotsOnly::class,
    TestingOnly::class
)

package dev.whyoleg.ktd.api.inline

import dev.whyoleg.ktd.*
import dev.whyoleg.ktd.api.*
import dev.whyoleg.ktd.api.TdApi.*

/**
 * Sends an inline query to a bot and returns its results
 * Returns an error with code 502 if the bot fails to answer the query before the query timeout expires
 *
 * @botUserId - The identifier of the target bot
 * @chatId - Identifier of the chat where the query was sent
 * @userLocation - Location of the user, only if needed
 * @query - Text of the query
 * @offset - Offset of the first entry to return
 */
suspend fun TelegramClient.getInlineQueryResults(
    botUserId: Int = 0,
    chatId: Long = 0L,
    userLocation: Location? = null,
    query: String? = null,
    offset: String? = null
): InlineQueryResults = inline(
    GetInlineQueryResults(
        botUserId,
        chatId,
        userLoca


iten");
    put("selblosigkeit", "Selbstlosigkeit");
    put("gestyled", "gestylt");
    put("umstimigkeiten", "Unstimmigkeiten");
    put("unann?äh?ml?ichkeiten", "Unannehmlichkeiten");
    put("unn?ann?ehmichkeiten", "Unannehmlichkeiten");
    put("übertr[äa]gte", "übertrug");
    put("übertr[äa]gten", "übertrugen");
    put("NodeJS", "Node.js");
    put("Express", "Express.js");
    put("erlas", "Erlass");
    put("schlagte", "schlug");
    put("schlagten", "schlugen");
    put("überwissen", "überwiesen");
    put("einpar", "ein paar");
    put("sreiben", "schreiben");
    put("routiene", "Routine");
    put("ect", "etc");
    put("giept", "gibt");
    put("Pann?acott?a", "Panna cotta");
    put("Fußgängerunterwegs?", "Fußgängerunterführung");
    put("angeschriehen", "angeschrien");
    put("vieviel", "wie viel");
    put("entäscht", "enttäuscht");
    put("Rämchen", "Rähmchen");
    put("Seminarbeit", "Seminararbeit");
    put("Seminarbeiten", "Seminararbeiten");
    put("[eE]ngangment", "Engagement");
    put("[lL]eichtah?tleh?t", "Leichtathlet");
    put("[pP]fane", "Pfanne");
    put("[iI]ngini?eue?r", "Ingenieur");
    put("[aA]nligen", "Anliegen");
    put("Tankungen", w -> Arrays.asList("Betankungen", "Tankvorgänge"));
    put("Ärcker", w -> Arrays.asList("Erker", "Ärger"));
    put("überlasstet", w -> Arrays.asList("überlastet", "überließt"));
    put("zeren", w -> Arrays.asList("zerren", "zehren"));
    put("Hänchen", w -> Arrays.asList("Hähnchen", "Hänschen"));
    put("[sS]itwazion", "Situation");
    put("geschriehen", "geschrien");
    put("beratete", "beriet");
    put("Hälst", "Hältst");
    put("[kK]aos", "Chaos");
    put("[pP]upatät", "Pubertät");
    put("überwendet", "überwindet");
    put("[bB]esichtung", "Besichtigung");
    put("[hH]ell?owi[eh]?n", "Halloween");
    put("geschmelt?zt", "geschmolzen");
    put("gewunschen", "gewünscht");
    put("bittete", "bat");
    put("nehm", "nimm");
    put("möchst", "möchtest");
    put("Win", "Windows");
    put("anschein[dt]", "anscheinend");
    put("Subvestitionen", "Subventionen");
    put("angeschaffen", "angeschafft");
    put("Rechtspruch", "Rechtsspruch");
    put("Second-Hand", "Secondhand");
    put("[jJ]ahundert", "Jahrhundert");
    put("Gesochse", "Gesocks");
    put("Vorraus", "Voraus");
    put("[vV]orgensweise", "Vorgehensweise");
    put("[kK]autsch", "Couch");
    put("


/* Abbrev code */
	.uleb128	0x24			/* DW_TAG_base_type */
	.byte		0			/* has_children */
	.uleb128	0x3			/* DW_AT_name */
	.uleb128	0x8			/* DW_FORM_string */
	.uleb128	0xb			/* DW_AT_byte_size */
	.uleb128	0xb			/* DW_FORM_data1 */
	.uleb128	0x3e			/* DW_AT_encoding */
	.uleb128	0xb			/* DW_FORM_data1 */
	.byte		0x0			/* Terminator */
	.byte		0x0			/* Terminator */

	.byte		0x0			/* Terminator */
	.byte		0x0			/* Terminator */

/* Line table */
	.section .debug_line
.Lline1_begin:
	.4byte		.Lline1_end - .Lline1_start	/* Initial length */
.Lline1_start:
	.2byte		2			/* Version */
	.4byte		.Lline1_lines - .Lline1_hdr	/* header_length */
.Lline1_hdr:
	.byte		1			/* Minimum insn length */
	.byte		1			/* default_is_stmt */
	.byte		1			/* line_base */
	.byte		1			/* line_range */
	.byte		0x10			/* opcode_base */

	/* Standard lengths */
	.byte		0
	.byte		1
	.byte		1
	.byte		1
	.byte		1
	.byte		0
	.byte		0
	.byte		0
	.byte		1
	.byte		0
	.byte		0
	.byte		1
	.byte		0
	.byte		0
	.byte		0

	/* Include directories */
	.byte		0

	/* File names */
	.ascii		"b/break-asm-file0.s\0"
	.uleb128	0
	.uleb128	0
	.uleb128	0

	.


           height;
} XrSwapchainImageFoveationVulkanFB;

#endif /* XR_USE_GRAPHICS_API_VULKAN */

#ifdef XR_USE_PLATFORM_ANDROID

#define XR_FB_swapchain_update_state_android_surface 1
#define XR_FB_swapchain_update_state_android_surface_SPEC_VERSION 1
#define XR_FB_SWAPCHAIN_UPDATE_STATE_ANDROID_SURFACE_EXTENSION_NAME "XR_FB_swapchain_update_state_android_surface"
#ifdef XR_USE_PLATFORM_ANDROID
typedef struct XrSwapchainStateAndroidSurfaceDimensionsFB {
    XrStructureType type;
    void *XR_MAY_ALIAS    next;
    uint32_t width;
    uint32_t height;
} XrSwapchainStateAndroidSurfaceDimensionsFB;
#endif // XR_USE_PLATFORM_ANDROID

#endif /* XR_USE_PLATFORM_ANDROID */

#ifdef XR_USE_GRAPHICS_API_OPENGL_ES

#define XR_FB_swapchain_update_state_opengl_es 1
#define XR_FB_swapchain_update_state_opengl_es_SPEC_VERSION 1
#define XR_FB_SWAPCHAIN_UPDATE_STATE_OPENGL_ES_EXTENSION_NAME "XR_FB_swapchain_update_state_opengl_es"
#ifdef XR_USE_GRAPHICS_API_OPENGL_ES
typedef struct XrSwapchainStateSamplerOpenGLESFB {
    XrStructureType type;
    void *XR_MAY_ALIAS    next;
    EGLenum minFilter;
    EGLenum magFilter;
    EGLenum wrapModeS;
    EGLenum wrapModeT;
    EGLenum swizzleRed;
    EGLenum swizzleGreen;
    EGLenum swizzleBlue;
    EGLenum swizzleAlpha;
    float maxAnisotropy;
    XrColor4f borderColor;
} XrSwapchainStateSamplerOpenGLESFB;
#endif // XR_USE_GRAPHICS_API_OPENGL_ES

#endif /* XR_USE_GRAPHICS_API_OPENGL_ES */

#ifdef XR_USE_GRAPHICS_API_VULKAN

#define XR_FB_swapchain_update_state_vulkan 1
#define XR_FB_swapchain_update_state_vulkan_SPEC_VERSION 1
#define XR_FB_SWAPCHAIN_UPDATE_STATE_VULKAN_EXTENSION_NAME "XR_FB_swapchain_update_state_vulkan"
#ifdef XR_USE_GRAPHICS_API_VULKAN
typedef struct XrSwapchainStateSamplerVulkanFB {
    XrStructureType         type;
    void* XR_MAY_ALIAS      next;
    VkFilter                minFilter;
    VkFilter                magFilter;
    VkSamplerMipmapMode     mipmapMode;
    VkSamplerAddressMode    wrapModeS;
    VkSamplerAddressMode    wrapModeT;
    VkComponentSwizzle      swizzleRed;
    VkComponentSwizzle      swizzleGreen;
    VkComponentSwizzle      swizzleBlue;
    VkComponentSwizzle      swizzleAlpha;
    float                   maxAnisotropy;
    XrColor4f               borderColor;
} XrSwapchainStateSamplerVulkanFB;
#endif // XR_USE_GRAPHICS_API_VULKAN

#endif /* XR_USE_GRAPHICS_API_VULKAN */

#ifdef XR_USE_GRAPHICS_API_VULKAN

#define XR_META_vulkan_swapchain_create_info 1
#define XR_META_vulkan_swapchain_create_info_SPEC_VERSION 1
#define XR_META_VULKAN_SWAPCHAIN_CREATE_INFO_EXTENSION_NAME "XR_META_vulkan_swapchain_create_info"
// XrVulkanSwapchainCreateInfoMETA extends XrSwapchainCreateInfo
typedef struct XrVulkanSwapchainCreateInfoMETA {
    XrStructureType             type;
    const void* XR_MAY_ALIAS    next;
    VkImageCreateFlags          additionalCreateFlags;
    VkImageUsageFlags           additionalUsageFlags;
} XrVulkanSwapchainCreateInfoMETA;

#endif /* XR_USE_GRAPHICS_API_VULKAN */

#ifdef __cplusplus
}
#endif

#endif


�에 있는 짐말주인 스톤브루저에게 악의의 가죽 머리띠 10개와 장인의 계약서: 악의의 가죽 머리띠를 가져가야 합니다."}},
[9185] = {"장인의 계약서: 튼튼한 방어구 키트", nil, {"동부 역병지대, 희망의 빛 예배당에 있는 짐말주인 스톤브루저에게 튼튼한 방어구 키트 25개와 장인의 계약서: 튼튼한 방어구 키트를 가져가야 합니다."}},
[9186] = {"장인의 계약서: 악의의 가죽 허리띠", nil, {"동부 역병지대, 희망의 빛 예배당에 있는 짐말주인 스톤브루저에게 악의의 가죽 허리띠 9개와 장인의 계약서: 악의의 가죽 허리띠를 가져가야 합니다."}},
[9187] = {"장인의 계약서: 룬문자 가죽 바지", nil, {"동부 역병지대, 희망의 빛 예배당에 있는 짐말주인 스톤브루저에게 룬문자 가죽 바지 4개와 장인의 계약서: 룬문자 가죽 바지를 가져가야 합니다."}},
[9188] = {"장인의 계약서: 빛매듭 바지", nil, {"동부 역병지대, 희망의 빛 예배당에 있는 짐말주인 스톤브루저에게 빛매듭 바지 6개와 장인의 계약서: 빛매듭 바지를 가져가야 합니다."}},
[9189] = {"공동묘지로 배달", nil, {"은빛소나무 숲의 공동묘지에 있는 조언자 소렐론에게 봉인된 신도레이 명령서를 가져가야 합니다."}},
[9190] = {"장인의 계약서: 룬매듭 장화", nil, {"동부 역병지대, 희망의 빛 예배당에 있는 짐말주인 스톤브루저에게 룬매듭 장화 8개와 장인의 계약서: 룬매듭 장화를 가


", color = if (defaultIndex == 2) Color.Black else Color.Gray)
            }
        }
    }
}package work.alsace.buildercore.commands.teleport

import org.bukkit.Bukkit
import org.bukkit.ChatColor
import org.bukkit.command.Command
import org.bukkit.command.CommandExecutor
import org.bukkit.command.CommandSender
import org.bukkit.entity.Player

class TPHereCommand : CommandExecutor {
    private val error = """
         ${ChatColor.GRAY}正确指令:
         §f/tphere <玩家> §7- 将指定玩家传送到你的位置
         """.trimIndent()

    override fun onCommand(sender: CommandSender, command: Command, label: String, args: Array<String>): Boolean {
        if (sender is Player && args.size == 1) {
            if (!sender.hasPermission("buildercore.commands.tphere")) {
                sender.sendMessage(ChatColor.RED.toString() + "你没有使用该命令的权限")
                return false
            }
            val player1 = Bukkit.getPlayer(args[0])
            if (player1 == null || !player1.isOnline) {
                sender.sendMessage(ChatColor.RED.toString() + "指定的玩家不在线或不存在")
                return false
            }
            player1.teleport(sender.location)
            player1.sendMessage("§f" + sender.getName() + " §7将你传送到了他的位置")
            sender.sendMessage("§7已将 §f" + player1.name + " §7传送到你的位置")
            return true
        }
        sender.sendMessage(error)
        return false
    }
}
package work.alsace.buildercore.commands.time

import org.apache.commons.lang.StringUtils
import org.bukkit.Bukkit
import org.bukkit.ChatColor
import org.bukkit.World
import org.bukkit.command.Command
import org.bukkit.command.CommandExecutor
import org.bukkit.command.CommandSender
import org.bukkit.command.TabCompleter
import org.bukkit.entity.Player
import java.util.*

class TimeCommand : CommandExecutor, TabCompleter {
    private val error = """
         ${ChatColor.GRAY}正确指令:
         §f/time <时间> §7- 设置你当前世界的时间
         §f/time <时间> <世界> §7- 设置指定世界的时间
         """.trimIndent()

    override fun onCommand(sender: CommandSender, command: Command, s: String, strings: Array<String>): Boolean {
        if (strings.size == 1 && sender is Player) {
            if (!sender.hasPermission("buildercore.commands.time")) {
                sender.sendMessage(ChatColor.RED.toString() + "你没有使用该命令的权限")
                return false
            }
            val world: World = sender.world
            val timeTicks = getTimeFromKeyword(strings[0])
            if (timeTicks == -1L) {
                sender.sendMessage(error)
                return false
            }
            world.time = timeTicks
            sender.sendMessage(ChatColor.GRAY.toString() + "已将当前世界时间设置为 §f" + timeTicks + " ticks")
            return true
        }
        if (strings.size == 2) {
            val player = sender as Player
            when (strings[0]) {
                "set" -> {
                    if (!player.hasPermission("buildercore.commands.time")) {
                        player.sendMessage(ChatColor.RED.toString() + "你没有使用该命令的权限")
                        return false
                    }
                    val timeTicks = getTimeFromKeyword(strings[1])
                    if (timeTicks == -1L) {
                        sender.sendMessage(error)
                        return false
                    }
                    player.world.time = timeTicks
                    player.sendMessage(ChatColor.GRAY.toString() + "已将当前世界时间设置为 §f" + strings[1] + " ticks")
                    return true
                }

                "add" -> {


ngType.Original };
		_song.AddArtist(_vocalist);
	}

	[TestMethod]
	public void MissingProducer()
	{
		TestValidate(false, _song);
	}

	/// <summary>
	/// Has a producer, but not in the DB
	/// </summary>
	[TestMethod]
	public void MissingRealProducer()
	{
		_song.AddArtist("devilishP", false, ArtistRoles.Composer);

		TestValidate(false, _song);
	}

	[TestMethod]
	public void HasProducer()
	{
		_song.AddArtist(_producer);

		TestValidate(true, _song);
	}

	[TestMethod]
	public void MissingVocalist()
	{
		_song.RemoveArtist(_vocalist);

		TestValidate(false, _song);
	}

	[TestMethod]
	public void InstrumentalDoesNotNeedVocalist()
	{
		_song.AddArtist(_producer);
		_song.RemoveArtist(_vocalist);
		_song.SongType = SongType.Instrumental;
		_song.Notes.Original = "Instrumental song";

		TestValidate(true, _song);
	}

	[TestMethod]
	public void DuplicateArtist()
	{
		_song.AddArtist(_producer);
		_song.AddArtist(_producer);

		TestValidate(false, _song);
	}
}


           <path
              d="M9.87868 38.1214C8.70711 36.9498 8.70711 35.0503 9.87868 33.8787L18.8787 24.8787C20.0503 23.7072 21.9497 23.7072 23.1213 24.8787C24.2929 26.0503 24.2929 27.9498 23.1213 29.1214L16.2426 36.0001L23.1213 42.8787C24.2929 44.0503 24.2929 45.9498 23.1213 47.1214C21.9497 48.293 20.0503 48.293 18.8787 47.1214L9.87868 38.1214Z"
              fill="currentColor"
            />
            <path
              d="M62.1213 33.8787L53.1213 24.8787C51.9497 23.7072 50.0503 23.7072 48.8787 24.8787C47.7071 26.0503 47.7071 27.9498 48.8787 29.1214L55.7574 36.0001L48.8787 42.8787C47.7071 44.0503 47.7071 45.9498 48.8787 47.1214C50.0503 48.293 51.9497 48.293 53.1213 47.1214L62.1213 38.1214C63.2929 36.9498 63.2929 35.0503 62.1213 33.8787Z"
              fill="currentColor"
            />
          </g>
          <defs>
            <clipPath id="clip0_8_9064">
              <rect width="72" height="72" fill="white" />
            </clipPath>
          </defs>
        </svg>
      )}
      {icon === 'news' && (
        <svg
          className="me-2.5 text-primary dark:text-primary-dark"
          fill="none"
          width="24"
          height="24"
          viewBox="0 0 72 72"
          aria-hidden="true">
          <path
            fillRule="evenodd"
            clipRule="evenodd"
            d="M12.7101 56.3758C13.0724 56.7251 13.6324 57 14.3887 57H57.6113C58.3676 57 58.9276 56.7251 59.2899 56.3758C59.6438 56.0346 59.8987 55.5407 59.9086 54.864C59.9354 53.022 59.9591 50.7633 59.9756 48H12.0244C12.0409 50.7633 12.0645 53.022 12.0914 54.864C12.1013 55.5407 12.3562 56.0346 12.7101 56.3758ZM12.0024 42H59.9976C59.9992 41.0437 60 40.0444 60 39C60 29.5762 59.9327 22.5857 59.8589 17.7547C59.8359 16.2516 58.6168 15 56.9938 15L15.0062 15C13.3832 15 12.1641 16.2516 12.1411 17.7547C12.0673 22.5857 12 29.5762 12 39C12 40.0444 12.0008 41.0437 12.0024 42ZM65.8582 17.6631C65.7843 12.8227 61.8348 9 56.9938 9H15.0062C10.1652 9 6.21572 12.8227 6.1418 17.6631C6.06753 22.5266 6 29.5477 6 39C6 46.2639 6.03988 51.3741 6.09205 54.9515C6.15893 59.537 9.80278 63 14.3887 63H57.6113C62.1972 63 65.8411 59.537 65.9079 54.9515C65.9601 51.3741 66 46.2639 66 39C66 29.5477 65.9325 22.5266 65.8582 17.6631ZM39 21C37.3431 21 36 22.3431 36 24C36 25.6569 37.3431 27 39 27H51C52.6569 27 54 25.6569 54 24C54 22.3431 52.6569 21 51 21H39ZM


rom "./dbConnector";
import { Crop, Price, Range } from "./types";

export const saveCropPrice = async (priceObject: Price) => {
    /**
     * Save price of specific crop to DB agro-stat-db.prices
     */
    const cropId = await getCropId(priceObject.cropName);
    const client = await pool.connect();
    try{
        const dateString = priceObject.date.toISOString().slice(0, 10);
        console.log("String date", dateString);
        const result = await client.query(
            'INSERT INTO prices (crop_name_id, data_date, country, currency, price) VALUES ($1,$2,$3,$4,$5);',
            [cropId, dateString, priceObject.country, priceObject.currency, priceObject.price]
        )
        console.log("Reccord was added");
        return result;
    }catch(e){
        console.error('query error', e.message, e.stack);
    }finally {
        client.release()
    }
}

const getCropId = async (cropName:Crop): Promise<number> => {
    const client = await pool.connect();
    try{
        const result = await client.query("SELECT crop_id FROM crops WHERE crop_name=$1", [cropName]);
        console.log('Crop name was recived', result.rows[0].crop_id);
        return result.rows[0].crop_id;
    }catch(e){
        console.error('query error', e.message, e.stack);
    }finally {
        client.release()
    }
}

export const getPricesForSpecificCrop = async (cropName:Crop): Promise<Price[]> => {
    const client = await pool.connect();
    const cropId = await getCropId(cropName);
    try{
        const result = await client.query("SELECT * FROM prices LEFT JOIN crops ON prices.crop_name_id = crops.crop_id WHERE crop_name_id = $1",
                                        [cropId]);
        return parseResponseToPriceObjects(result.rows);
    }catch(e){
        console.error('query error', e.message, e.stack);
    }finally {
        client.release()
    }
}

export const getPricesForSpecificCropAndRange = async (cropName:Crop, range: Range): Promise<Price[]> => {
    const client = await pool.connect();
    const cropId = await getCropId(cropName);
    const start = range.start;
    const end = range.end;
    try{
        const result = await client.query(
            "SELECT * FROM prices LEFT JOIN crops ON prices.crop_name_id = crops.crop_id WHERE crop_name_id = $1 AND prices.data_date BETWEEN $2 AND $3",
            [cropId, start, end]
        );
        return parseResponseToPriceObjects(result.rows);
    }catch(e){
        console.error('query error', e.message, e.stack);
    }finally {
        client.release()
    }
}

export const getLastPricesUpdateDate = async (): Promise<Date> => {
    const client = await pool.connect();
    try{
        const result = await client.query("SELECT data_date FROM prices ORDER BY data_date DESC LIMIT 1");
        if (result.rows.length > 0){
            const date = new Date(result.rows[0].data_date);
            date.setHours(date.getHours() + 2); // fix timezone issue
            console.log('Newest date were recived', date);
            return date;
        }else
            return new Date("1970-01-30T22:00:00.000Z"); // no reccords in DB
    }catch(e){
        console.error('query error', e.message, e.stack);
    }finally {
        client.release()
    }
}

const parseResponseToPriceObjects = (response: any[]): Price[] => {


PROTO_0:
  LOADK R0 K0 ["draftsToolbar"]
  RETURN R0 1

PROTO_1:
  LOADK R0 K0 ["draftsButton"]
  RETURN R0 1

PROTO_2:
  MOVE R3 R0
  MOVE R4 R1
  MOVE R5 R2
  LOADK R6 K0 ["Meta"]
  LOADK R7 K1 ["PluginButtonTooltip"]
  CALL R3 4 -1
  RETURN R3 -1

MAIN:
  PREPVARARGS 0
  GETIMPORT R0 K1 [require]
  GETIMPORT R3 K3 [script]
  GETTABLEKS R2 R3 K4 ["Parent"]
  GETTABLEKS R1 R2 K5 ["main"]
  CALL R0 1 1
  GETIMPORT R1 K7 [game]
  LOADK R3 K8 ["RunService"]
  NAMECALL R1 R1 K9 ["GetService"]
  CALL R1 2 1
  NAMECALL R2 R1 K10 ["IsEdit"]
  CALL R2 1 1
  JUMPIFNOT R2 [+5]
  MOVE R2 R0
  GETIMPORT R3 K12 [plugin]
  CALL R2 1 0
  RETURN R0 0
  GETIMPORT R4 K3 [script]
  GETTABLEKS R3 R4 K4 ["Parent"]
  GETTABLEKS R2 R3 K4 ["Parent"]
  GETIMPORT R3 K1 [require]
  GETTABLEKS R5 R2 K13 ["Packages"]
  GETTABLEKS R4 R5 K14 ["PluginLoader"]
  CALL R3 1 1
  GETTABLEKS R4 R3 K15 ["PluginLoaderBuilder"]
  GETTABLEKS R7 R2 K16 ["Src"]
  GETTABLEKS R6 R7 K17 ["Resources"]
  GETTABLEKS R5 R6 K18 ["SourceStrings"]
  GETTABLEKS R8 R2 K16 ["Src"]
  GETTABLEKS R7 R8 K17 ["Resources"]
  GETTABLEKS R6 R7 K19 ["LocalizedStrings"]
  DUPT


1/bank.ts) |
| Type | `GenesisState` | [View source ↗](akash/audit/v1beta2/genesis.ts) |
| Type | `Input` | [View source ↗](cosmos/bank/v1beta1/bank.ts) |
| Type | `Metadata` | [View source ↗](cosmos/bank/v1beta1/bank.ts) |
| Type | `MsgMultiSend` | [View source ↗](cosmos/bank/v1beta1/tx.ts) |
| Type | `MsgMultiSendResponse` | [View source ↗](cosmos/bank/v1beta1/tx.ts) |
| Type | `MsgSend` | [View source ↗](cosmos/bank/v1beta1/tx.ts) |
| Type | `MsgSendResponse` | [View source ↗](cosmos/bank/v1beta1/tx.ts) |
| Type | `Output` | [View source ↗](cosmos/bank/v1beta1/bank.ts) |
| Type | `QueryAllBalancesRequest` | [View source ↗](cosmos/bank/v1beta1/query.ts) |
| Type | `QueryAllBalancesResponse` | [View source ↗](cosmos/bank/v1beta1/query.ts) |
| Type | `QueryBalanceRequest` | [View source ↗](cosmos/bank/v1beta1/query.ts) |
| Type | `QueryBalanceResponse` | [View source ↗](cosmos/bank/v1beta1/query.ts) |
| Type | `QueryDenomMetadataRequest` | [View source ↗](cosmos/bank/v1beta1/query.ts) |
| Type | `QueryDenomMetadataResponse` | [View source ↗](cosmos/bank/v1beta1/query.ts) |
| Type | `QueryDenomOwnersRequest` | [View source ↗](cosmos/bank/v1beta1/query.ts) |
| Type | `QueryDenomOwnersResponse` | [View source ↗](cosmos/bank/v1beta1/query.ts) |
| Type | `QueryDenomsMetadataRequest` | [View source ↗](cosmos/bank/v1beta1/query.ts) |
| Type | `QueryDenomsMetadataResponse` | [View source ↗](cosmos/bank/v1beta1/query.ts) |
| Type | `QueryParamsRequest` | [View source ↗](cosmos/auth/v1beta1/query.ts) |
| Type | `QueryParamsResponse` | [View source ↗](cosmos/auth/v1beta1/query.ts) |
| Type | `QuerySpendableBalancesRequest` | [View source ↗](cosmos/bank/v1beta1/query.ts) |
| Type | `QuerySpendableBalancesResponse` | [View source ↗](cosmos/bank/v1beta1/query.ts) |
| Type | `QuerySupplyOfRequest` | [View source ↗](cosmos/bank/v1beta1/query.ts) |
| Type | `QuerySupplyOfResponse` | [View source ↗](cosmos/bank/v1beta1/query.ts) |
| Type | `QueryTotalSupplyRequest` | [View source ↗](cosmos/bank/v1beta1/query.ts) |
| Type | `QueryTotalSupplyResponse` | [View source ↗](cosmos/bank/v1beta1/query.ts) |
| Type | `SendAuthorization` | [View source ↗](cosmos/bank/v1beta1/authz.ts) |
| Type | `SendEnabled` | [View source ↗](cosmos/bank/v1beta1/bank.ts) |
| Type | `Supply` | [View source ↗](cosmos/bank/v1beta1/bank.ts) |

### Query Methods

**Balance**

Balance queries the balance of a single coin for a single account.

```ts
import { getBalanceCosmosBankV1beta1 } from 'customchain-js/cosmos/bundle'
import { useGetBalanceCosmosBankV1beta1 } from 'customchain-js/cosmos/bundle'
```

| Fi


872/B5F553769F3E10010.eot'); src: url('/fonts/511872/B5F553769F3E10010.eot?#hco') format('embedded-opentype'); font-style:normal; font-weight:400; } @font-face { font-family:"Ideal Sans 4r"; src: url('/fonts/511872/B5F553769F3E10010.eot'); src: url('/fonts/511872/B5F553769F3E10010.eot?#hco') format('embedded-opentype'); font-style:normal; font-weight:400; } @font-face { font-family:"Ideal Sans A"; src: url('/fonts/511872/83876471FAB65311D.eot'); src: url('/fonts/511872/83876471FAB65311D.eot?#hco') format('embedded-opentype'); font-style:italic; font-weight:400; } @font-face { font-family:"Ideal Sans 4i"; src: url('/fonts/511872/83876471FAB65311D.eot'); src: url('/fonts/511872/83876471FAB65311D.eot?#hco') format('embedded-opentype'); font-style:italic; font-weight:400; } @font-face { font-family:"Operator A"; src: url('/fonts/511872/65D82263B8B5A4EF9.eot'); src: url('/fonts/511872/65D82263B8B5A4EF9.eot?#hco') format('embedded-opentype'); font-style:normal; font-weight:400; } @font-face { font-family:"Operator 4r"; src: url('/fonts/511872/65D82263B8B5A4EF9.eot'); src: url('/fonts/511872/65D82263B8B5A4EF9.eot?#hco') format('embedded-opentype'); font-style:normal; font-weight:400; } @font-face { font-family:"Operator A"; src: url('/fonts/511872/A6C43F8B66245BDF4.eot'); src: url('/fonts/511872/A6C43F8B66245BDF4.eot?#hco') format('embedded-opentype'); font-style:italic; font-weight:400; } @font-face { font-family:"Operator 4i"; src: url('/fonts/511872/A6C43F8B66245BDF4.eot'); src: url('/fonts/511872/A6C43F8B66245BDF4.eot?#hco') format('embedded-opentype'); font-style:italic; font-weight:400; } @font-face { font-family:"Operator A"; src: url('/fonts/511872/4336D3C67B9AA8969.eot'); src: url('/fonts/511872/4336D3C67B9AA8969.eot?#hco') format('embedded-opentype'); font-style:normal; font-weight:600; } @font-face { font-family:"Operator 6r"; src: url('/fonts/511872/4336D3C67B9AA8969.eot'); src: url('/fonts/511872/4336D3C67B9AA8969.eot?#hco') format('embedded-opentype'); font-style:normal; font-weight:600; } @font-face { font-family:"Operator A"; src: url('/fonts/511872/E206497199129946D.eot'); src: url('/fonts/511872/E206497199129946D.eot?#hco') format('embedded-opentype'); font-style:italic; font-weight:600; } @font-face { font-family:"Operator 6i"; src: url('/fonts/511872/E206497199129946D.eot'); src: url('/fonts/511872/E206497199129946D.eot?#hco') format('embedded-opentype'); font-style:italic; font-weight:600; } @font-face { font-family:"Operator Mono A"; src: url('/fonts/511872/C4C40232022B4A70E.eot'); src: url('/fonts/511872/C4C40232


�实说我是有点想，但是，如果真的那么做的话，确实很费劲呢。实际上，费劲的程度与再开发新作差不多。所以，我觉得还是开发新作比较有意思啊。

　作为一个游戏选项来说的话，这个选项也不算坏呢。并且我现在完全没有想到新的计划。大概是因为我连从前开发过的游戏都不怎么记得了吧（笑）。

[](./文件-4gamer_31.jpeg.md)
[](./文件-4gamer_32.jpeg.md)

4Gamer
:

　发布类似附属CD之类的东西如何？就像电影作品有不同版本一样，制作者把曾经想做的东西附加上去，然后发布

ZUN
:

　那就是附带发布吧？实际上，我也曾经考虑过花映塚发布附属CD，并且在里面追加角色这件事，虽说游戏本身就比较容易增加角色，但是，因为没有时间，所以也就没有做。

　如果我是2个人，一个在计划新作的开发，而另一个同时在计划附属CD的话，那就再好不过了。或许最大的原因是：在考虑新的计划的同时，就没有了充裕的时间来做别的事情

4Gamer
:

　虽说不采取游戏修改的手段，但是在二次同人（编者注：利用某个作品的内容来进行的其他作品的制作，或者是其作品。来源于把原创物叫做一次创作的说法中）的作品中出现了随意增添角色的这种趋势，您怎么看？

ZUN
:

　是啊，现在越来越趋向于把游戏做成容易增添角色的样子。可以说是有“请随意增加角色吧”之类的倾向吧。

　但是，附带发布的话，无论如何都带有一种商业运营的味道。看到这种做法的人肯定会想：“一定是为了获取商业利益”吧。但是，与那样的想法相比较，这种做法似乎更是有问题。因为有以上2个不利因素，所以我有时很难做决定。

　发布附属CD和完全版这些东西，看上去真的好像有种商业运营的感觉，实际上也就是商业运营。虽说肯定会有一些人会高兴，但是如果我真的有空闲去做的话，说不定是做了一件错事呢

4Gamer
:

　确实，也许粉丝们会对这些事情很敏感

ZUN
:

　制作者是否懂得耍手段，那是另外一回事


    {
            get { return false; }
        }

        public Type GetInstanceType(InjectContext context)
        {
            return _instanceType;
        }

        public void GetAllInstancesWithInjectSplit(
            InjectContext context, List<TypeValuePair> args, out Action injectAction, List<object> buffer)
        {
            Assert.That(args.Count == 0);
            Assert.IsNotNull(context);

            Assert.That(_instanceType.DerivesFromOrEqual(context.MemberType));

            injectAction = () =>
            {
                object instance = _container.LazyInject(_instance);

                if (_instantiateCallback != null)
                {
                    _instantiateCallback(context, instance);
                }
            };

            buffer.Add(_instance);
        }
    }
}


68-.276.56-.395.872.705.157 1.473.257 2.282.287V1.077zm0 4.014c-.91-.03-1.783-.145-2.591-.332a12.344 12.344 0 0 0-.4 2.741H7.5V5.091zm1 2.409V5.091c.91-.03 1.783-.145 2.591-.332.223.827.364 1.754.4 2.741H8.5zm-1 1H4.51c.035.987.176 1.914.399 2.741A13.596 13.596 0 0 1 7.5 10.91V8.5zm1 2.409V8.5h2.99a12.343 12.343 0 0 1-.399 2.741A13.596 13.596 0 0 0 8.5 10.91zm-1 1c-.81.03-1.577.13-2.282.287.12.312.252.604.395.872.552 1.035 1.218 1.65 1.887 1.855V11.91zm-2.173 2.563a6.695 6.695 0 0 1-.597-.933 8.857 8.857 0 0 1-.481-1.078 8.356 8.356 0 0 0-1.198.49 7.01 7.01 0 0 0 2.276 1.52zM2.38 12.175c.47-.258.995-.482 1.565-.667A13.36 13.36 0 0 1 3.508 8.5h-2.49a6.964 6.964 0 0 0 1.362 3.675zm8.293 2.297a7.01 7.01 0 0 0 2.275-1.521 8.353 8.353 0 0 0-1.197-.49 8.859 8.859 0 0 1-.481 1.078 6.688 6.688 0 0 1-.597.933zm.11-2.276A12.63 12.63 0 0 0 8.5 11.91v3.014c.67-.204 1.335-.82 1.887-1.855.143-.268.276-.56.395-.872zm1.272-.688c.57.185 1.095.409 1.565.667A6.964 6.964 0 0 0 14.982 8.5h-2.49a13.355 13.355 0 0 1-.437 3.008zm.437-4.008h2.49a6.963 6.963 0 0 0-1.362-3.675c-.47.258-.995.482-1.565.667.248.92.4 1.938.437 3.008zm-.74-3.96a8.854 8.854 0 0 0-.482-1.079 6.692 6.692 0 0 0-.597-.933c.857.355 1.63.875 2.275 1.521a8.368 8.368 0 0 1-1.197.49zm-.97.264c-.705.157-1.473.257-2.282.287V1.077c.67.204 1.335.82 1.887 1.855.143.268.276.56.395.872z"}})])}),[],!1,null,null,null).exports},9592:(t,e,s)=>{"use strict";s.d(e,{Z:()=>n});const n=(0,s(1900).Z)({},(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("svg",{staticClass:"bi bi-key",attrs:{width:"1em",height:"1em",viewBox:"0 0 16 16",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg"}},[s("path",{attrs:{"fill-rule":"evenodd",d:"M0 8a4 4 0 0 1 7.465-2H14a.5.5 0 0 1 .354.146l1.5 1.5a.5.5 0 0 1 0 .708l-1.5 1.5a.5.5 0 0 1-.708 0L13 9.207l-.646.647a.5.5 0 0 1-.708 0L11 9.207l-.646.647a.5.5 0 0 1-.708 0


len = kcp1.PeekSize()) > 0)
                        {
                            var buffer = new byte[len];
                            if (kcp1.Recv(buffer) >= 0)
                            {
                                handle1.Receive(buffer);
                            }
                        }

                        await Task.Delay(5);
                        updateCount++;
                        if (updateCount % 1000 == 0)
                        {
                            Console.WriteLine($"KCP1 ALIVE {updateCount}----{ShowThread}");
                        }
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                }

            });

            Task.Run(async () =>
            {
                try
                {
                    int updateCount = 0;
                    while (true)
                    {
                        kcp2.Update(DateTime.UtcNow);

                        //var utcNow = DateTime.UtcNow;
                        //var re


[13920] = "Здоровая чешуя дракона",
  [13922] = "Монстр: щит, В01 ДеревоСтальШапка",
  [13923] = "Монстр - ружье, серебряный кринок таурена",
  [13924] = "Монстр - ружье, таурен, прицел, клинок, оперенный, серебряный, высокопробный",
  [13925] = "Монстр - двуручная палица, кувалда B02 серебряная",
  [13926] = "Золотая жемчужина",
  [13927] = "Мощь-рыба в кляре",
  [13928] = "Жареный кальмар",
  [13929] = "Окунь горячего копчения",
  [13930] = "Филе красноперки",
  [13931] = "Суп из ночницы",
  [13932] = "Вареный радужный лосось",
  [13933] = "Похлебка из омаров",
  [13934] = "Стейк из мощь-рыбы",
  [13935] = "Запеченный лосось",
  [13936] = "Испорченный покров Повелителя жути",
  [13937] = "Заряд директора",
  [13938] = "Стило Костеползателя",
  [13939] = "Рецепт: пятнистый желтохвост",
  [13940] = "Рецепт: вареная блестящая мощь-рыба",
  [13941] = "Рецепт: филе красноласта",
  [13942] = "Рецепт: жареный осьминог",
  [13943] = "Рецепт: острый копченый австралийский окунь",
  [13944] = "Могильная кираса",
  [13945] = "Рецепт: суп из ночницы",
  [13946] = "Рецепт: вареный радужный лосось",
  [13947] = "Рецепт: похлебка из омаров",
  [13948] = "Рецепт: стейк из мощь-рыбы",
  [13949] = "Рецепт: печеный лосось",
  [13950] = "Цепь арестанта",
  [13951] = "Тяжелые наручи Стального напора",
  [13952] = "Ледяной Крушитель",
  [13953] = "Бесшумный клык",
  [13954] = "Зеленеющие сапоги",
  [13955] = "Наплечники Каменной формы",
  [13956] = "Пояс Андроса",
  [13957] = "Резаки горгульи",
  [13958] = "Оковы Вурмталака",
  [13959] = "Тесьма-фиксатор Омокка",
  [13960] = "Сердце Губителя",
  [13961] = "Намордник Халикон",
  [13962] = "Пояс Вос\'гаджин",
  [13963] = "Поганые захваты Вуна",
  [13964] = "


#if !UNITY_2019_1_OR_NEWER

using UnityEngine;
using UnityEditor.ShaderGraph;
using System.Reflection;

// Thanks to:
//	http://web.engr.oregonstate.edu/~mjb/WebMjb/Papers/asmedome.pdf
//	https://kineme.net/Discussion/GeneralDiscussion/Fisheyeviewplugin

// Shader Graph vertex displacement tutorial
//	https://www.youtube.com/watch?v=vh85pzT959M

// Custom Dode docs
//	https://docs.unity3d.com/Packages/com.unity.shadergraph@5.3/manual/Custom-Nodes-With-CodeFunctionNode.html

// Coordinate Transformations
//  https://docs.unity3d.com/Packages/com.unity.shadergraph@4.10/manual/Transform-Node.html

[Title("Custom", "FulldomeDisplace")]
class FulldomeDisplace : CodeFunctionNode
{
	public FulldomeDisplace() { name = "Fulldome Displace"; }

	public override bool hasPreview { get { return false; } }

	//public NeededCoordinateSpace RequiresPosition(ShaderStageCapability stageCapability)
	//{
	//	return NeededCoordinateSpace.World;
	//}

	protected override MethodInfo GetFunctionToConvert()
    {
        return GetType().GetMethod("Custom_FulldomeDisplace", BindingFlags.Static | BindingFlags.NonPublic);
    }

	static string Custom_FulldomeDisplace(
		[Slot(0, Binding.WorldSpacePosition)] Vector3 Position,
		[Slot(1, Binding.None)] Vector1 Horizon,
		[Slot(2, Binding.WorldSpacePosition)] out Vector3 Out
	)
	{
        Out = Vector3.zero;
        return @"
{
	float3 Pos = Position;

    //Pos = mul(UNITY_MATRIX_M, float4(Pos, 1)).xyz;
    Pos = mul(UNITY_MATRIX_V, float4(Pos, 1)).xyz;
    Pos = TransformWorldToView(Pos).xyz;

	float rxy = length( Pos.xz );
	if( rxy != 0.0 )
	{
		float phi = atan2( rxy, -Pos.y );
		float lens_radius = phi / ( radians(Horizon) / 2.0 );
		Pos.xz *= ( lens_radius / rxy );
	}

    Pos = mul(UNITY_MATRIX_I_V, float4(Pos, 1)).xyz;
    Pos = mul(UNITY_MATRIX_I_M, float4(Pos, 1)).xyz;
    //Pos = TransformWorldToObject(Pos);

	Out = Pos;
}";
    }
}

// https://gist.github.com/mattatz/86fff4b32d198d0928d0fa4ff32cf6fa

[Title("Custom", "InverseMatrix4")]
class InverseMatrix4 : CodeFunctionNode
{
    public InverseMatrix4() { name = "Inverse Matrix 4"; }

    public override bool hasPreview { get { return false; } }

    //public NeededCoordinateSpace RequiresPosition(ShaderStageCapability stageCapability)
    //{
    //  return NeededCoordinateSpace.World;
    //}

    protected override MethodInfo GetFunctionToConvert()
    {
        return GetType()


, Inc.</ref><ref>Source: [[#S138]]  Page:  Database online. Data:   Text:Record for Johannes Scheible</ref> === Marriage === : Husband:  [[Scheible-25|Johannes Scheible]] : Wife:  @I1038@ : Child:  [[Scheible-24|Hans Jacob Scheible]] :: Relationship to Father:  Natural :: Relationship to Mother:  Natural : Marriage: :: Date:  12 OCT 1684:: Place:  Lomersheim, Enzkreis, Baden-Württemberg, Germany<ref>Source: [[#S138]]  Page:  Database online. Data:   Text:  Record for Johannes Scheible</ref> == Sources == <references /> * Source: <span id='S138'>S138</span> Author:  Ancestry.com Title:  Public Member Trees Publication:  Name: The Generations Network, Inc.; Location: Provo, UT, USA; Date: 2006; Repository: [[#R1]]* Repository: <span id='R1'>R1</span> Name:  www.ancestry.com Address:   E-Mail Address:   Phone Number:* Source: <span id='S97'>S97</span> Author:  Ancestry.com Title:  OneWorld Tree (sm) Publication:  Name: Provo, UT, USA: The Generations Network, Inc., n.d.; Repository: [[#R1]] NOTESource Medium: Ancestry.com CONT {{German Roots Sticker}}
11. == Biography == ===Christening===10 September 1685 in Grafenberg, Schwarzwaldkreis, Wuerttemberg<ref>Deutschland Geburten und Taufen, 1558-1898," database, FamilySearch (https://familysearch.org/ark:/61903/1:1:V425-N5C : 11 February 2018), Agnes Bader, 10 Sep 1685; citing ; FHL microfilm 1,056,662.</ref> == Sources == * Source: <span id='S-2093822515'>S-2093822515</span> Repository: [[#R-2142605859]] Title:  Ancestry Family Trees Publication:  Online publication - Provo, UT, USA: Ancestry.com.  Original data:  Family Tree files submitted by Ancestry members. Note:  This information comes from1 or more individual Ancestry Family Tree files. This source citationpoints you to a current version of those files.  Note:  The owners ofthese tree files may have removed or changed information since this source citation was created.   Page:  Ancestry Family Tree Data:   Text:  https://www.ancestry.com/family-tree/tree/28702488/family* Repository: <span id='R-2142605859'>R-2142605859</span> Name:  Ancestry.ca Address:  http://www.Ancestry.ca Note: <references /> === Acknowledgments === Thank you to [[McAllister-596 | Laurie Fletcher]] for creating WikiTree profile Bader-191 through the import of PICKETT.ged on Oct 19, 2013. Click to the Changes page for the details of edits by Laurie and others. {{One Name Study | name = Bader}} {{German Roots Sticker}}
12. == Biography == ''This biography is a rough draft. It was auto-generated by a GEDCOM import and needs to be edited.'' === Name ===: Name:  Margaretha /Boger/<ref>Source: [[#S20]]  Page:  Ancestry Family Trees Data:   Text:  http://trees.ancestry.com/pt/AMTCitationRedir.aspx?tid=25482585&pid=1798576438 Note:  @N209@</ref> == Sources == * WikiTree profile Boger-43 created through the import of Lent_Vise_2011-05-11aa.ged on May 26, 2011 by [[Sypniewski-1 | Bryan Sypniewski]]. See the


.lineGradient, Colors.red.value);
    expect(layer.lineOcclusionOpacity, 1.0);
    expect(layer.lineOffset, 1.0);
    expect(layer.lineOpacity, 1.0);
    expect(layer.linePattern, "abc");
    expect(layer.lineTranslate, [0.0, 1.0]);
    expect(layer.lineTranslateAnchor, LineTranslateAnchor.MAP);
    expect(layer.lineTrimColor, Colors.red.value);
    expect(layer.lineTrimFadeRange, [0.5, 0.5]);
    expect(layer.lineTrimOffset, [0.5, 0.5]);
    expect(layer.lineWidth, 1.0);
  });

  testWidgets('Add LineLayer with expressions', (WidgetTester tester) async {
    final mapFuture = app.main();
    await tester.pumpAndSettle();
    final mapboxMap = await mapFuture;

    final line =
        LineString(coordinates: [Position(1.0, 2.0), Position(10.0, 20.0)]);
    await mapboxMap.style
        .addSource(GeoJsonSource(id: "source", data: json.encode(line)));

    await mapboxMap.style.addLayer(LineLayer(
      id: 'layer',
      sourceId: 'source',
      visibilityExpression: ['string', 'none'],
      filter: [
        "==",
        ["get", "type"],
        "Feature"
      ],
      minZoom: 1.0,
      maxZoom: 20.0,
      slot: LayerSlot.BOTTOM,
      lineCapExpression: ['string', 'butt'],
      lineCrossSlopeExpression: ['number', 1.0],
      lineCutoutFadeWidthExpression: ['number', 1.0],
      lineCutoutOpacityExpression: ['number', 1.0],
      lineCutoutWidthExpression: ['number', 1.0],
      lineElevationReferenceExpression: ['string', 'none'],
      lineJoinExpression: ['string', 'bevel'],
      lineMiterLimitExpression: ['number', 1.0],
      lineRoundLimitExpression: ['number', 1.0],
      lineSortKeyExpression: ['number', 1.0],
      lineWidthUnitExpression: ['string', 'pixels'],
      lineZOffsetExpression: ['number', 1.0],
      lineBlurExpression: ['number', 1.0],
      lineBorderColorExpression: ['rgba', 255, 0, 0, 1],
      lineBorderWidthExpression: ['number', 1.0],
      lineColorExpression: ['rgba', 255, 0, 0, 1],
      lineDasharrayExpression: [
        'literal',
        [1.0, 2.0]
      ],
      lineDepthOcclusionFactorExpression: ['number', 1.0],
      lineEmissiveStrengthExpression: ['number', 1.0],
      lineGapWidthExpression: ['number', 1.0],
      lineGradientExpression: ['rgba', 255, 0, 0, 1],
      lineOcclusionOpacityExpression: ['number', 1.0],
      lineOffsetExpression: ['number', 1.0],
      lineOpacityExpression: ['number', 1.0],
      linePatternExpression: ['image', "abc"],
      lineTranslateExpression: [
        'literal',
        [0.0, 1.0]
      ],
      lineTranslateAnchorExpression: ['string', 'map'],
      lineTrimColorExpression: ['rgba', 255, 0, 0, 1],
      lineTrimFadeRangeExpression: [
        'literal',
        [0.5, 0.5]
      ],
      lineTrimOffsetExpression: [
        'literal',
        [0.5, 0.5]
      ],
      lineWidthExpression: ['number', 1.0],
    ));
    var layer = await mapboxMap.style.getLayer('layer') as Lin


RegisterNetEvent('bd-chopshop:StartMenu', function()
  lib.registerContext({
    id = 'sell-chop-shop',
    title = Config.Locale["chopTitle"],
    options = {
      {
        title = Config.Locale["chopDoor"],
        icon = 'fa-solid fa-door-closed',
        event = 'bd-chopshop:chopdoor',
        arrow = true,
        args = {
          number = 1,
          id = 2
        }
      },
      {
        title = Config.Locale["chopWheel"],
        icon = 'fa-solid fa-dharmachakra',
        event = 'bd-chopshop:chopwheel',
        arrow = true,
        args = {
          number = 1,
          id = 3
        }
      },
      {
        title = Config.Locale["chopHood"],
        icon = 'fa-solid fa-door-closed',
        event = 'bd-chopshop:chophood',
        arrow = true,
        args = {
          number = 1,
          id = 4
        }
      },
      {
        ti


)); numErrors > 0 {
					break
				}
			}
		}
	}

	t.Run("enforce repository permissions", func(t *testing.T) {
		// Use an actorless context to test permissions.
		uploads, totalCount, err := store.GetUploads(context.Background(),
			shared.GetUploadsOptions{
				Limit: 1,
			},
		)
		if err != nil {
			t.Fatal(err)
		}
		if len(uploads) > 0 || totalCount > 0 {
			t.Fatalf("Want no upload but got %d uploads with totalCount %d", len(uploads), totalCount)
		}
	})
}

func TestGetUploadByID(t *testing.T) {
	ctx := actor.WithInternalActor(context.Background())
	logger := logtest.Scoped(t)
	db := database.NewDB(logger, dbtest.NewDB(t))
	store := New(observation.TestContextTB(t), db)

	// Upload does not exist initially
	if _, exists, err := store.GetUploadByID(ctx, 1); err != nil {
		t.Fatalf("unexpected error getting upload: %s", err)
	} else if exists {
		t.Fatal("unexpected record")
	}

	uploadedAt := time.Unix(1587396557, 0).UTC()
	startedAt := uploadedAt.Add(time.Minute)
	expected := shared.Upload{
		ID:             1,
		Commit:         makeCommit(1),
		Root:           "sub/",
		VisibleAtTip:   true,
		UploadedAt:     uploadedAt,
		State:          "processing",
		FailureMessage: nil,
		StartedAt:      &startedAt,
		FinishedAt:     nil,
		RepositoryID:   123,
		RepositoryName: "n-123",
		Indexer:        "lsif-go",
		IndexerVersion: "1.2.3",
		NumParts:       1,
		UploadedParts:  []int{},
		Rank:           nil,
	}

	insertUploads(t, db, expected)
	insertVisibleAtTip(t, db, 123, 1)

	if upload, exists, err := store.GetUploadByID(ctx, 1); err != nil {
		t.Fatalf("unexpected error getting upload: %s", err)
	} else if !exists {
		t.Fatal("expected record to exist")
	} else if diff := cmp.Diff(expected, upload); diff != "" {
		t.Errorf("unexpected upload (-want +got):\n%s", diff)
	}

	t.Run("enforce repository permissions", func(t *testing.T) {
		// Use an actorless context to test permissions.
		_, exists, err := store.GetUploadByID(context.Background(), 1)
		if err != nil {
			t.Fatal(err)
		}
		if exists {
			t.Fatalf("exists: want false but got %v", exists)
		}
	})
}

func TestGetUploadByIDDeleted(t *testing.T) {
	logger := logtest.Scoped(t)
	db := database.NewDB(logger, dbtest.NewDB(t))
	store := New(observation.TestContextTB(t), db)

	// Upload does not exist initially
	if _, exists, err := store.GetUploadByID(actor.WithInternalActor(context.Background()), 1); err != nil {
		t.Fatalf("unexpected error getting upload: %s", err)
	} else if exists {
		t.Fatal("unexpected record")
	}

	uploadedAt := time.Unix(1587396557, 0).UTC()
	startedAt := uploadedAt.Add(time.Minute)
	expected := shared.Upload{
		ID:             1,
		Commit:         makeCommit(1),
		Root:           "sub/",
		VisibleAtTip:   true,
		UploadedAt:     uploadedAt,
		State:          "deleted",
		FailureMessage: nil,
		StartedAt:      &startedAt,
		FinishedAt:     nil,
		Re


if (control == null || !control.InvokeRequired)
					action(obj, ev);
				else
					control.Invoke(action, obj, ev);
			};
		}

		/// <summary>
		/// 包装委托为指定控件上跨线程安全的方法
		/// </summary>
		/// <param name="control"></param>
		/// <param name="action"></param>
		/// <returns></returns>
		public static EventHandler<T> SafeInvoke<T>(this Control control, EventHandler<T> action) where T : EventArgs
		{
			return (obj, ev) =>
			{
				if (control?.IsDisposed != false || !control.InvokeRequired)
					action(obj, ev);
				else
					control.Invoke(action, obj, ev);
			};
		}

		/// <summary>
		/// 包装委托为指定控件上跨线程安全的方法
		/// </summary>
		/// <param name="control"></param>
		/// <param name="action"></param>
		/// <returns></returns>
		public static Action<T> SafeInvoke<T>(this Control control, Action<T> action) where T : EventArgs
		{
			return (ev) =>
			{
				if (control?.IsDisposed != false || !control.InvokeRequired)
					action(ev);
				else
					control.Invoke(action, ev);
			};
		}


-5):setTubeSize(4,  "small"):setTubeLoadTime(4,  6):setWeaponTubeExclusiveFor(4, "EMP")
	ship:setWeaponTubeDirection(5,   0):setTubeSize(5,  "small"):setTubeLoadTime(5,  5):setWeaponTubeExclusiveFor(5, "EMP")
	ship:setWeaponTubeDirection(6,   5):setTubeSize(6,  "small"):setTubeLoadTime(6,  9):setWeaponTubeExclusiveFor(6, "Nuke")
	ship:setWeaponTubeDirection(7,  -5):setTubeSize(7,  "small"):setTubeLoadTime(7,  9):setWeaponTubeExclusiveFor(7, "Nuke")
	ship:setWeaponTubeDirection(8,   0):setTubeSize(8,  "small"):setTubeLoadTime(8,  8):setWeaponTubeExclusiveFor(8, "Nuke")
	ship:setWeaponTubeDirection(9,   5):setTubeSize(9,  "small"):setTubeLoadTime(9,  4):setWeaponTubeExclusiveFor(9, "HVLI")
	ship:setWeaponTubeDirection(10, -5):setTubeSize(10, "small"):setTubeLoadTime(10, 4):setWeaponTubeExclusiveFor(10,"HVLI")
	ship:setWeaponTubeDirection(11,  0):setTubeSize(11, "small"):setTubeLoadTime(11, 3):setWeaponTubeExclusiveFor(11,"HVLI")
	ship:setWeaponTubeDirection(12,-10):setTubeSize(12, "small"):setTubeLoadTime(12, 5):setWeaponTubeExclusiveFor(12,"HVLI")
	ship:setWeaponTubeDirection(13, 10):setTubeSize(13, "small"):setTubeLoadTime(13, 5):setWeaponTubeExclusiveFor(13,"HVLI")
	ship:setWeaponTubeDirection(14,  0):setTubeSize(14,"medium"):setTubeLoadTime(14, 5):setWeaponTubeExclusiveFor(14,"Homing")
	ship:setWeaponTubeDirection(15,  0):setTubeSize(15,"medium"):setTubeLoadTime(15,10):setWeaponTubeExclusiveFor(15,"Nuke")
	ship:setWeaponStorageMax("Homing", 32)		--more (vs 6)
	ship:setWeaponStorage("Homing",    32)
	ship:setWeaponStorageMax("EMP",    20)		--more (vs 0)
	ship:setWeaponStorage("EMP",       20)
	ship:setWeaponStorageMax("Nuke",   18)		--more (vs 0)
	ship:setWeaponStorage("Nuke",      18)
	ship:setWeaponStorageMax("HVLI",   55)		--more (vs 12)
	ship:setWeaponStorage("HVLI",      55)
	local ships_key = _("scienceDB","Ships")
	local frigate_key = _("scienceDB","Frigate")
	local barracuda_key = _("scienceDB","Barracuda")
	local barracuda_db = queryScienceDatabase(ships_key,frigate_key,barracuda_key)
	if barracuda_db == nil then
		local frigate_db = queryScienceDatabase(ships_key,frigate_key)
		if frigate_db ~= nil then
			frigate_db:addEntry(barracuda_key)
			barracuda_db = queryScienceDatabase(ships_key,frigate_key,barracuda_key)
			local small_tubes_0_key = _("scienceDB","Small tubes 0")
			local small_tubes_0_val = _("scienceDB","7 sec / Homing, 8 sec / Nuke")
			local small_tubes_5_1_key = _("scienceDB","Small tubes 5 & -5")
			local small_tubes_5_1_val = _("scienceDB","8 sec / Homing, 9 sec / Nuke")
			local small_tube_0_key = _("scienceDB","Small tube 0")
			local small_tube_0_val = _("scienceDB","5 sec / EMP")
			local small_tubes_5_2_key = _("scienceDB"," S


den'],
      6: ['Kenneth', 'Kelsey', 'Keegan', 'Kristen', 'Kassandra', 'Kinsley']
    },
    'L': {
      3: ['Lee', 'Lou', 'Liv'],
      4: ['Leon', 'Leah', 'Liam', 'Lily'],
      5: ['Logan', 'Lucas', 'Layla', 'Leila', 'Lacey'],
      6: ['Leonard', 'Lillian', 'Lorelei', 'Leilani', 'Lorelai', 'Leonora']
    },
    'M': {
      3: ['Max', 'Mia', 'Moe'],
      4: ['Mark', 'Mara', 'Milo', 'Mira'],
      5: ['Mason', 'Maria', 'Megan', 'Molly', 'Miles'],
      6: ['Matthew', 'Melody', 'Monica', 'Miranda', 'Margaux', 'Melissa']
    },
    'N': {
      3: ['Ned', 'Nia', 'Nel'],
      4: ['Nick', 'Nina', 'Noah', 'Nora'],
      5: ['Nathan', 'Naomi', 'Nancy', 'Nicole', 'Nolan'],
      6: ['Nathaniel', 'Natalie', 'Nicholas', 'Nicolet', 'Nerissa', 'Nayelle']
    },
    'O': {
      3: ['Oz', 'Ola', 'Ora'],
      4: ['Owen', 'Olive', 'Omar', 'Opal'],
      5: ['Oliver', 'Oscar', 'Ophel', 'Odette', 'Oksana'],
      6: ['Orlando', 'Octavia', 'Ophelia', 'Olympia', 'Ornella', 'Odelia']
    },
    'P': {
      3: ['Pax', 'Pia', 'Pip'],
      4: ['Paul', 'Paig', 'Perc', 'Port'],
      5: ['Peter', 'Penny', 'Piper', 'Poppy', 'Prest'],
      6: ['Patrick', 'Priscilla', 'Phillip', 'Percy', 'Primros', 'Pricill']
    },
    'Q': {
      3: ['Quo', 'Qia', 'Qis'],
      4: ['Quin', 'Quia', 'Quay', 'Quen'],
      5: ['Quinn', 'Queen', 'Quint', 'Quira', 'Quana'],
      6: ['Quentin', 'Quintina', 'Quinlan', 'Quintana', 'Quetzal', 'Quinley']
    },
    'R': {
      3: ['Rex', 'Ria', 'Roe'],
      4: ['Ryan', 'Rose', 'Ruth', 'Reid'],
      5: ['Robert', 'Riley', 'Rosal', 'Raven', 'River'],
      6: ['Richard', 'Rebecca', 'Rhiannon', 'Roberta', 'Romilly', 'Roxanne']
    },
    'S': {
      3: ['Sam', 'Sia', 'Sue'],
      4: ['Sean', 'Sara', 'Seth', 'Sage'],
      5: ['Simon', 'Sophi', 'Sofia', 'Stell', 'Storm'],
      6: ['Samuel', 'Sylvia', 'Scarlet', 'Shiloh', 'Soraya', 'Simone']
    },
    'T': {
      3: ['Tom', 'Tia', 'Tye'],
      4: ['Troy', 'Tess', 'Thea', 'Todd'],
      5: ['Tyler', 'Tracy', 'Tatum', 'Talul', 'Tandy'],
      6: ['Theodore', 'Tiffany', 'Tabitha', 'Theresa', 'Talitha', 'Tamsin']
    },
    'U': {
      3: ['Udo', 'Uma', 'Ura'],
      4: ['Umar', 'Ulla', 'Ursa', 'Uri'],
      5: ['Usher', 'Unity', 'Ursul', 'Ulyss', 'Urban'],
      6: ['Ulysses', 'Umbria', 'Umika', 'Ul


>opaque)
        return pj_dealloc (P);
    pj_dealloc (P->opaque->en);
    pj_dealloc (P->opaque);
    return pj_dealloc(P);
}

static void freeup (PJ *P) {
    freeup_new (P);
    return;
}

static PJ *setup(PJ *P) {                   /* general initialization */
    struct pj_opaque *Q = P->opaque;
    if (P->es) {
        if (!(Q->en = pj_enfn(P->es)))
            E_ERROR_0;
        Q->ml0 = pj_mlfn(P->phi0, sin(P->phi0), cos(P->phi0), Q->en);
        Q->esp = P->es / (1. - P->es);
        P->inv = e_inverse;
        P->fwd = e_forward;
    } else {
        Q->esp = P->k0;
        Q->ml0 = .5 * Q->esp;
        P->inv = s_inverse;
        P->fwd = s_forward;
    }
    return P;
}

PJ *PROJECTION(tmerc) {
    struct pj_opaque *Q = pj_calloc (1, sizeof (struct pj_opaque));
    if (0==Q)
        return freeup_new (P);
    P->opaque = Q;
    return setup(P);
}

#ifndef PJ_SELFTEST
int pj_tmerc_selftest (void) {return 0;}
#else
int pj_tmerc_selftest (void) {
    double tolerance_lp = 1e-10;
    double tolerance_xy = 1e-7;

    char e_args[] = {"+proj=tmerc   +ellps=GRS80  +lat_1=0.5 +lat_2=2 +n=0.5"};
    char s_args[] = {"+proj=tmerc   +a=6400000    +lat_1=0.5 +lat_2=2 +n=0.5"};

    LP fwd_in[] = {
        { 2, 1},
        { 2,-1},
        {-2, 1},
        {-2,-1}
    };

    XY e_fwd_expect[] = {
        { 222650.79679577847,  110642.22941192707},
        { 222650.79679577847, -110642.22941192707},
        {-222650.79679577847,  110642.22941192707},
        {-222650.79679577847, -110642.22941192707},
    };

    XY s_fwd_expect[] = {
        { 223413.46640632232,  111769.14504059685},
        { 223413.46640632232, -111769.14504059685},
        {-223413.46640632208,  111769.14504059685},
        {-223413.46640632208, -111769.14504059685},
    };

    XY inv_in[] = {
        { 200, 100},
        { 200,-100},
        {-200, 100},
        {-200,-100}
    };

    LP e_inv_expect[] = {
        { 0.0017966305681649396,  0.00090436947663183841},
        { 0.0017966305681649396, -0.00090436947663183841},
        {-0.0017966305681649396,  0.00090436947663183841},
        {-0.0017966305681649396, -0.00090436947663183841},
    };

    LP s_inv_expect[] = {
        { 0.0017904931097048034,  0.00089524670602767842},
        { 0.0017904931097048034, -0.00089524670602767842},
        {-0.001790493109714345,   0.00089524670602767842},
        {-0.001790493109714345,  -0.00089524670602767842},
    };

    return pj_generic_selftest (e_args, s_args, tolerance_xy, tolerance_lp, 4, 4, fwd_in, e_fwd_expect, s_fwd_expect, inv_in, e_inv_expect, s_inv_expect);
}
#endif


using System.Linq;
using LightBDD.Core.Extensibility;
using LightBDD.Core.UnitTests.Helpers;
using LightBDD.Framework;
using LightBDD.Framework.Extensibility;
using LightBDD.UnitTests.Helpers.TestableIntegration;
using NUnit.Framework;

namespace LightBDD.Core.UnitTests
{
    [TestFixture]
    public class CoreBddRunner_concurrency_tests : Steps
    {
        private readonly int _elementsCount = 1500;
        private IBddRunner _runner;
        private IFeatureRunner _feature;

        [SetUp]
        public void SetUp()
        {
            _feature = TestableFeatureRunnerRepository.GetRunner(GetType());
            _runner = _feature.GetBddRunner(this);
        }

        [Test]
        public void Running_scenarios_should_be_thread_safe()
        {
            Enumerable.Range(0, _elementsCount)
                .ToArray()
                .AsParallel()
                .ForAll(Parallel_scenario);

            Assert.That(_feature.GetFeatureResult().GetScenarios().Count(), Is.EqualTo(_elementsCount));

            for (var i = 0; i < _elementsCount; ++i)
            {
                var expectedScenarioName = $"Parallel scenario \"{i}\"";
                var expectedSteps = new[]
                {


strb	w10, [x0, 88]
	b	.L34
	.p2align 3
.L40:
	sub	w2, w3, w0
	cmp	w10, 150
	sxtw	x2, w2
	eor	x16, x2, x2, asr 63
	sub	x16, x16, x2, asr 63
	mov	w2, 150
	csel	w2, w10, w2, ge
	add	w2, w2, 50
	cmp	w2, w16
	bge	.L41
	ldr	w2, [x19, 32]
	cmp	w2, 10
	ble	.L41
	uxtw	x0, w8
	mov	w2, 1
	add	x0, x19, x0
	ldrb	w10, [x0, 88]
	sub	w10, w10, #5
	strb	w10, [x0, 88]
	b	.L34
	.p2align 3
.L55:
	uxtw	x0, w8
	add	x0, x19, x0
	ldrb	w2, [x0, 88]
	sub	w2, w2, #1
	strb	w2, [x0, 88]
	b	.L52
	.p2align 3
.L105:
	ldr	w0, [x19, 32]
	cmp	w0, 9
	ble	.L43
.L42:
	add	w0, w3, 150
	cmp	w5, w0
	ble	.L106
.L45:
	ldr	w2, [x19, 92]
	uxtw	x0, w8
	add	x0, x19, x0
	cmp	w2, 1
	beq	.L107
	ldrb	w10, [x0, 88]
	mov	w2, 1
	sub	w10, w10, #3
	strb	w10, [x0, 88]
	b	.L34
	.p2align 3
.L103:
	sub	w0, w3, w0
	add	w2, w10, 50
	sxtw	x0, w0
	eor	x11, x0, x0, asr 63
	sub	x11, x11, x0, asr 63
	cmp	w2, w11
	bge	.L53
	ldr	w0, [x19, 32]
	cmp	w0, 10
	ble	.L53
	ldr	w2, [x19, 92]
	cmp	w2, 1
	beq	.L61
	mov	w2, 5000
	cmp	w0, w2
	ble	.L52
.L61:
	uxtw	x0, w8
	ldr	w2, [x19, 36]
	add	x0, x19, x0
	mvn	w10, w2
	ldrb	w2, [x0, 88]
	add	w2, w10, w2
	strb	w2, [x0, 88]
	b	.L52
	.p2align 3
.L106:
	add	w11, w11, 150
	mov	w2, 1
	cmp	w5, w11
	bgt	.L45
	b	.L34
	.p2align 3
.L107:
	ldrb	w10, [x0, 88]
	sub	w10, w10, #1
	strb	w10, [x0, 88]
	b	.L34
	.p2align 3
.L44:
	ldrb	w10, [x0, 88]
	mov	w2, 0
	add	w10, w10, 1
	strb	w10, [x0, 88]
	b	.L34
	.p2align 3
.L56:
	ldr	w10, [x19, 92]
	cmp	w10, 1
	bne	.L55
	cmp	w2, w0
	bge	.L61


:= time.After(time.Second * 5)
		if i%2 == 0 {
			select {
			case <-timeout:
				t.Fatalf("didn't recv pkt after timeout")
			case pkt := <-ctx.mailbox.PacketOutBox():
				recvdPackets = append(recvdPackets, pkt)
			}
		} else {
			select {
			case <-timeout:
				t.Fatalf("didn't recv message after timeout")
			case msg := <-ctx.mailbox.MessageOutBox():
				recvdMessages = append(recvdMessages, msg)
			}
		}
	}

	// The number of messages/packets we sent, and the number we received
	// should match exactly.
	if len(sentPackets) != len(recvdPackets) {
		t.Fatalf("expected %v packets instead got %v", len(sentPackets),
			len(recvdPackets))
	}
	if len(sentMessages) != len(recvdMessages) {
		t.Fatalf("expected %v messages instead got %v", len(sentMessages),
			len(recvdMessages))
	}

	// Additionally, the set of packets should match exactly, as we should
	// have received the packets in the exact same ordering that we added.
	if !reflect.DeepEqual(sentPackets, recvdPackets) {
		t.Fatalf("recvd packets mismatched: expected %v, got %v",
			spew.Sdump(sentPackets), spew.Sdump(recvdPackets))
	}
	if !reflect.DeepEqual(recvdMessages, recvdMessages) {
		t.Fatalf("recvd messages mismatched: expected %v, got %v",
			spew.Sdump(sentMessages), spew.Sdump(recvdMessages))
	}

	// Now that we've received all of the intended msgs/pkts, ack back half
	// of the packets.
	for _, recvdPkt := range recvdPackets[:halfPackets] {
		ctx.mailbox.AckPacket(recvdPkt.inKey())
	}

	// With the packets drained and partially acked,  we reset the mailbox,
	// simulating a link shutting down and then coming back up.
	err := ctx.mailbox.ResetMessages()
	if err != nil {
		t.Fatalf("unable to reset messages: %v", err)
	}
	err = ctx.mailbox.ResetPackets()
	if err != nil {
		t.Fatalf("unable to reset packets: %v", err)
	}

	// Now, we'll use the same alternating strategy to read from our
	// mailbox. All wire messages are dropped on startup, but any unacked
	// packets will be replayed in the same order they were delivered
	// initially.
	recvdPackets2 := make([]*htlcPacket, 0, halfPackets)
	for i := 0; i < 2*halfPackets; i++ {
		timeout := time.After(time.Second * 5)
		if i%2 == 0 {
			select {
			case <-timeout:
				t.Fatalf("didn't recv pkt after timeout")
			case pkt := <-ctx.mailbox.PacketOutBox():
				recvdPackets2 = append(recvdPackets2, pkt)
			}
		} else {
			select {
			case <-ctx.mailbox.MessageOutBox():
				t.Fatalf("should not receive wire msg after reset")
			default:
			}
		}
	}

	// The number of packets we received should match the number of unacked
	// packets left in the mailbox.
	if halfPackets != len(recvdPackets2) {
		t.Fatalf("expected %v packets instead got %v", halfPackets,
			len(recvdPackets))
	}

	// Additionally, the set of packets should match exactly with the
	// unacked packets, and we should have received the packets in the exact
	// same ordering that we added.
	if !reflect.DeepEqual(recvdP


; Generated with ikazuchi 1.0 by riidefi
; Object File: StarPiece
; Segments:
;     .text:       0x8023d084 -> 0x80240bd4
;     .data:       0x805a3720 -> 0x805a3b30 (805a3a38 -> 805a3b30 (size 0248/0x00f8) is greedily claimed anonymous data)
;     .sbss:       0x806b5930 -> 0x806b5960
;     .sdata2:     0x806be3b8 -> 0x806be440

; Symbols Defined
; 8023d084 -> 8023d17c __ct__9StarPieceFPCc
; 8023d17c -> 8023d1ec initAndSetFloatingFromGroup__9StarPieceFRC12JMapInfoIter
; 8023d1ec -> 8023d25c initAndSetRailMoveFromGroup__9StarPieceFRC12JMapInfoIter
; 8023d25c -> 8023d670 init__9StarPieceFRC12JMapInfoIter
; 8023d670 -> 8023d674 initAfterPlacement__9StarPieceFv
; 8023d674 -> 8023d6b8 appear__9StarPieceFv
; 8023d6b8 -> 8023d710 setColor__9StarPieceFl
; 8023d710 -> 8023d718 getNumColor__9StarPieceFv
; 8023d718 -> 8023d788 appearFromGroup__9StarPieceFv
; 8023d788 -> 8023d7d0 makeActorAppeared__9StarPieceFv
; 8023d7d0 -> 8023d8ac kill__9StarPieceFv
; 8023d8ac -> 8023d940 makeActorDead__9StarPieceFv
; 8023d940 -> 8023d9b0 startClipped__9StarPieceFv
; 8023d9b0 -> 8023da7c changeScale__9StarPieceFf
; 8023da7c -> 8023dbf4 control__9StarPieceFv
; 8023dbf4 -> 8023dcf4 exeFloating__9StarPieceFv
; 8023dcf4 -> 8023ddc0 appearHop__9StarPieceFRCQ29JGeometry8TVec3<f>RCQ29JGeometry8TVec3<f>
; 8023ddc0 -> 8023de60 exeHop__9StarPieceFv
; 8023de60 -> 8023e158 exeFall__9StarPieceFv
; 8023e158 -> 8023e254 isTouchToTarget__9StarPieceFPQ29JGeometry8TVec3<f>f
; 8023e254 -> 8023e2a0 isEffectLight__9StarPieceFv
; 8023e2a0 -> 8023e880 exeToTarget__9StarPieceFv
; 8023e880 -> 8023e954 exeSpinDrained__9StarPieceFv
; 8023e954 -> 8023eaac exeToPlayerEnd__9StarPieceFv
; 8023eaac -> 8023ee9c exeThrow__9StarPieceFv
; 8023ee9c -> 8023f038 exeThrowFall__9StarPieceFv
; 8023f038 -> 8023f0ac exeFollowPlayer__9StarPieceFv
; 8023f0ac -> 8023f158 exeRailMove__9StarPieceFv
; 8023f158 -> 8023f1a4 setFollowPlayerAndAppear__9StarPieceFv
; 8023f1a4 -> 8023f208 tryCalcGravity__9StarPieceFv
; 8023f208 -> 8023f288 trySetGravityAndFront__9StarPieceFRCQ29JGeometry8TVec3<f>
; 8023f288 -> 8023f2d0 throwToTarget__9StarPieceFP9HitSensorRCQ29JGeometry8TVec3<f>RCQ29JGeometry8TVec3<f>f
; 8023f2d0 -> 8023f3b8 throwToTargetCore__9StarPieceFRCQ29JGeometry8TVec3<f>RCQ29J


ントです。

Markup:
include /assets/tmpl/elements/11.8.footer.pug
+ec-footerNav

sg-wrapper:

    <sg-wrapper-content/>

Styleguide 11.3.1
*/
.ec-footerNavi {
  padding: 0;
  color: white;
  list-style: none;
  text-align: center;
}
.ec-footerNavi .ec-footerNavi__link {
  display: block;
}
.ec-footerNavi .ec-footerNavi__link a {
  display: block;
  border-bottom: 1px solid #7d7d7d;
  padding: 15px 0;
  font-size: 14px;
  color: inherit;
  text-decoration: none;
}
.ec-footerNavi .ec-footerNavi__link:hover a {
  opacity: 0.8;
  text-decoration: none;
}
/*
フッタータイトル

フッタープロジェクトで使用するタイトル用のコンポーネントです。

Markup:
include /assets/tmpl/elements/11.8.footer.pug
+ec-footerTitle

sg-wrapper:

    <sg-wrapper-content/>

Styleguide 11.3.2
*/
.ec-footerTitle {
  padding: 40px 0 60px;
  text-align: center;
  color: white;
}
.ec-footerTitle .ec-footerTitle__logo {
  display: block;
  margin-bottom: 10px;
  font-weight: bold;
}
.ec-footerTitle .ec-footerTitle__logo a {
  color: inherit;
  text-decoration: none;
}
.ec-footerTitle .ec-footerTitle__logo a:hover {
  text-decoration: none;
}
.ec-footerTitle .ec-footerTitle__logo a {
  font-size: 22px;
  color: inherit;
}
.ec-footerTitle .ec-footerTitle__logo:hover a {
  opacity: 0.8;
  text-decoration: none;
}
.ec-footerTitle .ec-footerTitle__copyright {
  font-size: 10px;
}
/**
メディアクエリ
SP フォーストで記述する。
Twitter Bootstrap デフォルト準拠
 */
/*
トップページ

トップページ スライド部に関する Project コンポーネントを定義します。

ex [トップページ](http://demo3.ec-cube.net/)

Markup:
include /assets/tmpl/elements/12.1.slider.pug
+ec-sliderRole

Styleguide 12.1
*/
.ec-sliderRole {
  margin: 0 auto;
  padding-left: 20px;
  padding-right: 20px;
  box-sizing: border-box;
  font-size: 16px;
  line-height: 1.4;
  color: #525263;
  -webkit-text-size-adjust: 100%;
  width: 100%;
  max-width: 1130px;
  margin-bottom: 24px;
}
.ec-sliderRole:after {
  content: " ";
  display: table;
}
.ec-sliderRole:after {
  clear: both;
}
.ec-sliderRole textarea { /* for chrome fontsize bug */
  font-family: sans-serif;
}
.ec-sliderRole img {
  max-width: 100%;
}
.ec-sliderRole html {
  box-sizing: border-box;
}
.ec-sliderRole *,
.ec-sliderRole *::before,
.ec-sliderRole *::after {


SyncAPPLE",

        GLenum("condition"),
        GLbitfield("flags")
    )

    GLboolean(
        "IsSyncAPPLE",

        GLsync("sync")
    )

    void(
        "DeleteSyncAPPLE",

        GLsync("sync")
    )

    GLenum(
        "ClientWaitSyncAPPLE",

        GLsync("sync"),
        GLbitfield("flags"),
        GLuint64("timeout")
    )

    void(
        "WaitSyncAPPLE",

        GLsync("sync"),
        GLbitfield("flags"),
        GLuint64("timeout")
    )

    void(
        "GetInteger64vAPPLE",

        GLenum("pname"),
        ReturnParam..Check(1)..GLint64.p("params")
    )

    void(
        "GetSyncivAPPLE",

        GLsync("sync"),
        GLenum("pname"),
        AutoSize("values")..GLsizei("bufSize"),
        nullable..Check(1)..GLsizei.p("length"),
        ReturnParam..GLint.p("values")
    )
}/*
 * Copyright LWJGL. All rights reserved.
 * License terms: https://www.lwjgl.org/license
 */
package opengles.templates

import org.lwjgl.generator.*
import opengles.*

val NV_viewport_swizzle = "NVViewportSwizzle".nativeClassGLES("NV_viewport_swizzle", postfix = NV) {
    IntConstant(
        "VIEWPORT_SWIZZLE_POSITIVE_X_NV"..0x9350,
        "VIEWPORT_SWIZZLE_NEGATIVE_X_NV"..0x9351,
        "VIEWPORT_SWIZZLE_POSITIVE_Y_NV"..0x9352,
        "VIEWPORT_SWIZZLE_NEGATIVE_Y_NV"..0x9353,
        "VIEWPORT_SWIZZLE_POSITIVE_Z_NV"..0x9354,
        "VIEWPORT_SWIZZLE_NEGATIVE_Z_NV"..0x9355,
        "VIEWPORT_SWIZZLE_POSITIVE_W_NV"..0x9356,
        "VIEWPORT_SWIZZLE_NEGATIVE_W_NV"..0x9357
    )

    IntConstant(
        "VIEWPORT_SWIZZLE_X_NV"..0x9358,
        "VIEWPORT_SWIZZLE_Y_NV"..0x9359,
        "VIEWPORT_SWIZZLE_Z_NV"..0x935A,
        "VIEWPORT_SWIZZLE_W_NV"..0x935B
    )

    void(
        "ViewportSwizzleNV",

        GLuint("index"),
        GLenum("swizzlex"),
        GLenum("swizzley"),
        GLenum("swizzlez"),
        GLenum("swizzlew")
    )
}/*
 * Copyright LWJGL. All rights reserved.
 * License terms: https://www.lwjgl.org/license
 */
package opengles.templates

import org.lwjgl.generator.*
import opengles.*

val AMD_performance_monitor = "AMDPerformanceMonitor".nativeClassGLES("AMD_performance_monitor", postfix = AMD) {
    IntConstant(
        "COUNTER_TYPE_AMD"..0x8BC0,
        "COUNTER_RANGE_AMD"..0x8BC1
    )

    IntConstant(
        "UNSIGNED_INT64_AMD"..0x8BC2,
        "PERCENTAGE_AMD"..0x8BC3
    )

    IntConstant(
        "PERFMON_RESULT_AVAILABLE_AMD"..0x8BC4,
        "PERFMON_RESULT_SIZE_AMD"..0x8BC5,
        "PERFMON_RESULT_AMD"..0x8BC6
    )

    void(
        "GetPerfMonitorGroupsAMD",

        nullable..Check(1)..GLint.p("numGroups"),
        AutoSize("groups")..GLsizei("groupsSize"),
        nullable..GLuint.p("groups")
    )

    void(
        "GetPerfMonitorCountersAMD",

        GLuint("group"),


zyr",
	0xa2ed: "nzit",
	0xa2ee: "nzix",
	0xa2ef: "nzi",
	0xa2f0: "nzip",
	0xa2f1: "nziex",
	0xa2f2: "nzie",
	0xa2f3: "nziep",
	0xa2f4: "nzat",
	0xa2f5: "nzax",
	0xa2f6: "nza",
	0xa2f7: "nzap",
	0xa2f8: "nzuox",
	0xa2f9: "nzuo",
	0xa2fa: "nzox",
	0xa2fb: "nzop",
	0xa2fc: "nzex",
	0xa2fd: "nze",
	0xa2fe: "nzux",
	0xa2ff: "nzu",
	/* x0a3 */
	0xa300: "nzup",
	0xa301: "nzurx",
	0xa302: "nzur",
	0xa303: "nzyt",
	0xa304: "nzyx",
	0xa305: "nzy",
	0xa306: "nzyp",
	0xa307: "nzyrx",
	0xa308: "nzyr",
	0xa309: "sit",
	0xa30a: "six",
	0xa30b: "si",
	0xa30c: "sip",
	0xa30d: "siex",
	0xa30e: "sie",
	0xa30f: "siep",
	0xa310: "sat",
	0xa311: "sax",
	0xa312: "sa",
	0xa313: "sap",
	0xa314: "suox",
	0xa315: "suo",
	0xa316: "suop",
	0xa317: "sot",
	0xa318: "sox",
	0xa319: "so",
	0xa31a: "sop",
	0xa31b: "sex",
	0xa31c: "se",
	0xa31d: "sep",
	0xa31e: "sut",
	0xa31f: "sux",
	0xa320: "su",
	0xa321: "sup",
	0xa322: "surx",
	0xa323: "sur",
	0xa324: "syt",
	0xa325: "syx",
	0xa326: "sy",
	0xa327: "syp",
	0xa328: "syrx",
	0xa329: "syr",
	0xa32a: "ssit",
	0xa32b: "ssix",
	0xa32c: "ssi",
	0xa32d: "ssip",
	0xa32e: "ssiex",
	0xa32f: "ssie",
	0xa330: "ssiep",
	0xa331: "ssat",
	0xa332: "ssax",
	0xa333: "ssa",
	0xa334: "ssap",
	0xa335: "ssot",
	0xa336: "ssox",
	0xa337: "sso",
	0xa338: "ssop",
	0xa339: "ssex",
	0xa33a: "sse",
	0xa33b: "ssep",
	0xa33c: "ssut",
	0xa33d: "ssux",
	0xa33e: "ssu",
	0xa33f: "ssup",
	0xa340: "ssyt",
	0xa341: "ssyx",
	0xa342: "ssy",
	0xa343: "ssyp",
	0xa344: "ssyrx",
	0xa345: "ssyr",
	0xa346: "zhat",


STRUCT_FLD_S(ip6_addr_p_t target_address);
  PACK_STRUCT_FLD_S(ip6_addr_p_t destination_address);
  /* Options follow. */
} PACK_STRUCT_STRUCT;
PACK_STRUCT_END
#ifdef PACK_STRUCT_USE_INCLUDES
#  include "arch/epstruct.h"
#endif

/** Link-layer address option. */
#define ND6_OPTION_TYPE_SOURCE_LLADDR (0x01)
#define ND6_OPTION_TYPE_TARGET_LLADDR (0x02)
#ifdef PACK_STRUCT_USE_INCLUDES
#  include "arch/bpstruct.h"
#endif
PACK_STRUCT_BEGIN
struct lladdr_option {
  PACK_STRUCT_FLD_8(u8_t type);
  PACK_STRUCT_FLD_8(u8_t length);
  PACK_STRUCT_FLD_8(u8_t addr[NETIF_MAX_HWADDR_LEN]);
} PACK_STRUCT_STRUCT;
PACK_STRUCT_END
#ifdef PACK_STRUCT_USE_INCLUDES
#  include "arch/epstruct.h"
#endif

/** Prefix information option. */
#define ND6_OPTION_TYPE_PREFIX_INFO (0x03)
#define ND6_PREFIX_FLAG_ON_LINK (0x80)
#define ND6_PREFIX_FLAG_AUTONOMOUS (0x40)
#define ND6_PREFIX_FLAG_ROUTER_ADDRESS (0x20)
#define ND6_PREFIX_FLAG_SITE_PREFIX (0x10)
#ifdef PACK_STRUCT_USE_INCLUDES
#  include "arch/bpstruct.h"
#endif
PACK_STRUCT_BEGIN
struct prefix_option {
  PACK_STRUCT_FLD_8(u8_t type);
  PACK_STRUCT_FLD_8(u8_t length);
  PACK_STRUCT_FLD_8(u8_t prefix_length);
  PACK_STRUCT_FLD_8(u8_t flags);
  PACK_STRUCT_FIELD(u32_t valid_lifetime);
  PACK_STRUCT_FIELD(u32_t preferred_lifetime);
  PACK_STRUCT_FLD_8(u8_t reserved2[3]);
  PACK_STRUCT_FLD_8(u8_t site_prefix_length);
  PACK_STRUCT_FLD_S(ip6_addr_p_t prefix);
} PACK_STRUCT_STRUCT;
PACK_STRUCT_END
#ifdef PACK_STRUCT_USE_INCLUDES
#  include "arch/epstruct.h"
#endif

/** Redirected header option. */
#define ND6_OPTION_TYPE_REDIR_HDR (0x04)
#ifdef PACK_STRUCT_USE_INCLUDES
#  include "arch/bpstruct.h"
#endif
PACK_STRUCT_BEGIN
struct redirected_header_option {
  PACK_STRUCT_FLD_8(u8_t type);
  PACK_STRUCT_FLD_8(u8_t length);
  PACK_STRUCT_FLD_8(u8_t reserved[6]);
  /* Portion of redirected packet follows. */
  /* PACK_STRUCT_FLD_8(u8_t redirected[8]); */
} PACK_STRUCT_STRUCT;
PACK_STRUCT_END
#ifdef PACK_STRUCT_USE_INCLUDES
#  include "arch/epstruct.h"
#endif

/** MTU option. */
#define ND6_OPTION_TYPE_MTU (0x05)
#ifdef PACK_STRUCT_USE_INCLUDES
#  include "arch/bpstruct.h"
#endif
PACK_STRUCT_BEGIN
struct mtu_option {
  PACK_STRUCT_FLD_8(u8_t type);
  PACK_STRUCT_FLD_8(u8_t length);
  PACK_STRUCT_FIELD(u16_t reserved);
  PACK_STRUCT_FIELD(u32_t mtu);
} PACK_STRUCT_STRUCT;
PACK_STRUCT_END
#ifdef PACK_STRUCT_USE_INCLUDES
#  include "arch/epstruct.h"
#endif

/** Route information option. */
#define ND6_OPTION_TYPE_ROUTE_INFO (24)
#ifdef PACK_STRUCT_USE_INCLUDES
#  include "arch/bpstruct.h"
#endif
PACK_STRUCT_BEGIN
struct route_option {
  PACK_STRUCT_FLD_8(u8_t type);
  PACK_STRUCT_FLD_8(u8_t length);
  PACK_STRUCT_FLD_8(u8_t prefix_length);
  PACK_STRUCT_FLD_8(u8_t preference);
  PACK_STRUCT_FIELD(u32_t route_lifetime);
  PACK_STRUCT_FLD_S(ip6_addr_p_t prefix);
} PACK_STRUCT_STRUCT;
PACK_STRUCT_END
#ifdef PACK_STRUCT_USE_INCLUDES
#  include "arch/epstruct.h"
#endif

/** Recursive DNS Server Option. */
#define ND6_OPTION_TYPE_RDNSS (25)
#ifdef PACK_STRUCT_USE_INCLUDES
#  include "arch/bpstruct.h"
#endif
PACK_STRUCT_BEGIN
struct rdnss_option {
  PACK_STRUCT_FLD_8(u8_t type);
  PACK_STRUCT_FLD_8(u8_t length);
  PACK_STRUCT_FIELD(u16_t reserved);
  PACK_STRUCT_FIELD(u32_t lifetime);
  PACK_STRUCT_FLD_S(ip6_addr_p_t rdnss_address[1]);
} PACK_STRUCT_STRUCT;
PACK_STRUCT_END
#ifdef PACK_STRUCT_USE_INCLUDES
#  include "arch/epstruct.h"
#endif

#define SIZEOF_RDNSS_OPTION_BASE 8 /* size without addresses */

#ifdef __cplusplus
}
#endif

#endif /* LWIP_HDR_PROT_ND6_H */


OTSUPP;

	for (i = 0; i < NUM_NL80211_BANDS; i++) {
		if (local->hw.wiphy->bands[i]) {
			bands_used |= BIT(i);
			rate_masks[i] = (u32) -1;
			num_bands++;
		}
	}

	ie = kzalloc(num_bands * iebufsz, GFP_KERNEL);
	if (!ie) {
		ret = -ENOMEM;
		goto out;
	}

	ieee80211_prepare_scan_chandef(&chandef, req->scan_width);

	len = ieee80211_build_preq_ies(local, ie, num_bands * iebufsz,
				       &sched_scan_ies, req->ie,
				       req->ie_len, bands_used,
				       rate_masks, &chandef);

	ret = drv_sched_scan_start(local, sdata, req, &sched_scan_ies);
	if (ret == 0) {
		rcu_assign_pointer(local->sched_scan_sdata, sdata);
		rcu_assign_pointer(local->sched_scan_req, req);
	}

	kfree(ie);

out:
	if (ret) {
		/* Clean in case of failure after HW restart or upon resume. */
		RCU_INIT_POINTER(local->sched_scan_sdata, NULL);
		RCU_INIT_POINTER(local->sched_scan_req, NULL);
	}

	return ret;
}

int ieee80211_request_sched_scan_start(struct ieee80211_sub_if_data *sdata,
				       struct cfg80211_sched_scan_request *req)
{
	struct ieee80211_local *local = sdata->local;
	int ret;

	mutex_lock(&local->mtx);

	if (rcu_access_pointer(local->sched_scan_sdata)) {
		mutex_unlock(&local->mtx);
		return -EBUSY;
	}

	ret = __ieee80211_request_sched_scan_start(sdata, req);

	mutex_unlock(&local->mtx);
	return ret;
}

int ieee80211_request_sched_scan_stop(struct ieee80211_local *local)
{
	struct ieee80211_sub_if_data *sched_scan_sdata;
	int ret = -ENOENT;

	mutex_lock(&local->mtx);

	if (!local->ops->sched_scan_stop) {
		ret = -ENOTSUPP;
		goto out;
	}

	/* We don't want to restart sched scan anymore. */
	RCU_INIT_POINTER(local->sched_scan_req, NULL);

	sched_scan_sdata = rcu_dereference_protected(local->sched_scan_sdata,
						lockdep_is_held(&local->mtx));
	if (sched_scan_sdata) {
		ret = drv_sched_scan_stop(local, sched_scan_sdata);
		if (!ret)
			RCU_INIT_POINTER(local->sched_scan_sdata, NULL);
	}
out:
	mutex_unlock(&local->mtx);

	return ret;
}

void ieee80211_sched_scan_results(struct ieee80211_hw *hw)
{
	struct ieee80211_local *local = hw_to_local(hw);

	trace_api_sched_scan_results(local);

	cfg80211_sched_scan_results(hw->wiphy);
}
EXPORT_SYMBOL(ieee80211_sched_scan_results);

void ieee80211_sched_scan_end(struct ieee80211_local *local)
{
	mutex_lock(&local->mtx);

	if (!rcu_access_pointer(local->sched_scan_sdata)) {
		mutex_unlock(&local->mtx);
		return;
	}

	RCU_INIT_POINTER(local->sched_scan_sdata, NULL);

	/* If sched scan was aborted by the driver. */
	RCU_INIT_POINTER(local->sched_scan_req, NULL);

	mutex_unlock(&local->mtx);

	cfg80211_sched_scan_stopped(local->hw.wiphy);
}

void ieee80211_sched_scan_stopped_work(struct work_struct *work)
{
	struct ieee80211_local *local =
		container_of(work, struct ieee80211_local,
			     sched_scan_stopped_work);

	ieee80211_sched_scan_end(local);
}

void ieee80211_sched_scan_stopped(struct ieee80211_hw *hw)
{
	struct ieee80211_local *local = hw_to_local(hw);

	trace_api_sched_scan_stopped(local);

	/*
	 * this shouldn't really happen, so for simplicity
	 * simply ignore it, and let mac80211 reconfigure
	 * the sched scan later on.
	 */
	if (local->in_reconfig)
		return;

	schedule_work(&local->sched_scan_stopped_work);
}
EXPORT_SYMBOL(ieee80211_sched_scan_stopped);


包工头”，控制一万五千余名外流劳动力，天津一个区就有三十余名，控制外流劳动力一千五百余名，杭州市也发现了八十四个“包工头”。

   各地对解决外流人口问题已采取了一些措施。

   来源：1960年2月27日新华通讯社编《内部参考》。

   来源：

   美国图书馆收藏

    [返回索引页面]

   Copyright (C)  2024  Marxist-Leninist-Maoist.

   Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".

  <title>
   中共酒泉钢铁公司委员会关于制止浮肿病的蔓延的报告 - 1960-12-30 - CCRD 中国当代政治运动史数据库
  </title>
  <link href="../../../../Emblem_of_the_PCP-Shining_Path.svg.ico" rel="icon" type="image/x-icon"/>

  <meta content="中共酒泉钢铁公司委员会关于制止浮肿病的蔓延的报告" property="title"/>
  <meta content="1960-12-30" property="date"/>
  <meta content="" property="authors"/>


12.25 20 12 19 12C15.69 12 13 14.69 13 18L13.08 18.95L12 19C10.76 19 9.57 18.82 8.47 18.5C5.55 21 2 21 2 21C4.33 18.67 4.7 17.1 4.75 16.5C3.05 15.07 2 13.14 2 11C2 6.58 6.5 3 12 3Z",mdiChatPlusOutline:"M12 3C17.5 3 22 6.58 22 11C22 11.58 21.92 12.14 21.78 12.68C21.19 12.38 20.55 12.16 19.88 12.06C19.96 11.72 20 11.36 20 11C20 7.69 16.42 5 12 5C7.58 5 4 7.69 4 11C4 14.31 7.58 17 12 17L13.09 16.95L13 18L13.08 18.95L12 19C10.81 19 9.62 18.83 8.47 18.5C6.64 20 4.37 20.89 2 21C4.33 18.67 4.75 17.1 4.75 16.5C3.06 15.17 2.05 13.15 2 11C2 6.58 6.5 3 12 3M18 14H20V17H23V19H20V22H18V19H15V17H18V14Z",mdiChatProcessing:"M12,3C17.5,3 22,6.58 22,11C22,15.42 17.5,19 12,19C10.76,19 9.57,18.82 8.47,18.5C5.55,21 2,21 2,21C4.33,18.67 4.7,17.1 4.75,16.5C3.05,15.07 2,13.13 2,11C2,6.58 6.5,3 12,3M17,12V10H15V12H17M13,12V10H11V12H13M9,12V10H7V12H9Z",mdiChatProcessingOutline:"M12 3C6.5 3 2 6.58 2 11C2.05 13.15 3.06 15.17 4.75 16.5C4.75 17.1 4.33 18.67 2 21C4.37 20.89 6.64 20 8.47 18.5C9.61 18.83 10.81 19 12 19C17.5 19 22 15.42 22 11S17.5 3 12 3M12 17C7.58 17 4 14.31 4 11S7.58 5 12 5 20 7.69 20 11 16.42 17 12 17M17 12V10H15V12H17M13 12V10H11V12H13M9 12V10H7V12H9Z",mdiChatQuestion:"M12 3C6.5 3 2 6.6 2 11C2 13.1 3 15.1 4.8 16.5C4.8 17.1 4.4 18.7 2 21C2 21 5.5 21 8.5 18.5C9.6 18.8 10.8 19 12 19C17.5 19 22 15.4 22 11S17.5 3 12 3M13 15H11V13H13V15M14.8 10C14.5 10.4 14.1 10.6 13.7 10.8C13.4 11 13.3 11.1 13.2 11.3C13 11.5 13 11.7 13 12H11C11 11.5 11.1 11.2 11.3 10.9C11.5 10.7 11.9 10.4 12.4 10.1C12.7 10 12.9 9.8 13 9.6C13.1 9.4 13.2 9.1 13.2 8.9C13.2 8.6 13.1 8.4 12.9 8.2C12.7 8 12.4 7.9 12.1 7.9C11.8 7.9 11.6 8 11.4 8.1C11.2 8.2 11.1 8.4 11.1 8.7H9.1C9.2 8 9.5 7.4 10 7C10.5 6.6 11.2 6.5 12.1 6.5C13 6.5 13.8


 'package:flutter/material.dart';

class MfmJellyCode extends StatefulWidget {
  const MfmJellyCode({
    super.key,
    required this.child,
    this.speed,
  });

  final Widget child;
  final Duration? speed;

  @override
  State<MfmJellyCode> createState() => _SpinCodeState();
}

class _SpinCodeState extends State<MfmJellyCode>
    with SingleTickerProviderStateMixin {
  late AnimationController _controller;
  late Animation<double> _scaleXAnimation;
  final _scaleXSequence = TweenSequence([
    TweenSequenceItem(
        tween: Tween(begin: 1.0, end: 1.25), weight: 30), // 0% -> 30%
    TweenSequenceItem(
        tween: Tween(begin: 1.25, end: 0.75), weight: 10), // 30% -> 40%
    TweenSequenceItem(
        tween: Tween(begin: 0.75, end: 1.15), weight: 10), // 40% -> 50%
    TweenSequenceItem(
        tween: Tween(begin: 1.15, end: 0.95), weight: 15), // 50% -> 65%
    TweenSequenceItem(
        tween: Tween(begin: 0.95, end: 1.05), weight: 10), // 65% -> 75%
    TweenSequenceItem(
        tween: Tween(begin: 1.05, end: 1.0), weight: 25), // 75% -> 100%> 35%
  ]);

  late Animation<double> _scaleYAnimation;
  final _scaleYSequence = TweenSequence([
    TweenSequenceItem(
        tween: Tween(begin: 1.0, end: 0.75), weight: 30), // 0% -> 30%
    TweenSequenceItem(
        tween: Tween(begin: 0.75, end: 1.25), weight: 10), // 30% -> 40%
    TweenSequenceItem(
        tween: Tween(begin: 1.25, end: 0.85), weight: 10), // 40% -> 50%
    TweenSequenceItem(
        tween: Tween(begin: 0.85, end: 1.05), weight: 15), // 50% -> 65%
    TweenSequenceItem(
        tween: Tween(begin: 1.05, end: 0.95), weight: 10), // 65% -> 75%
    TweenSequenceItem(
        tween: Tween(begin: 0.95, end: 1.0), weight: 25), // 75% -> 100%> 35%
  ]);

  @override
  void initState() {
    super.initState();
    _controller = AnimationController(vsync: this, duration: widget.speed);

    _scaleXAnimation = _controller.drive(_scaleXSequence);
    _scaleYAnimation = _controller.drive(_scaleYSequence);

    Future(() async {
      _controller.repeat();
    });
  }

  @override
  void dispose() {
    _controller.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return AnimatedBuilder(
        animation: _controller,
        child: widget.child,
        builder: (context, child) {
          return Transform(
            alignment: Alignment.center,
            transform: Matrix4.diagonal3Values(
                _scaleXAnimation.value, _scaleYAnimation.value, 1.0),
            child: widget.child,
          );
        });
  }
}
import 'package:flutter/material.dart';
import 'package:flutter_tabler_icons/flutter_tabler_icons.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:moekey/apis/models/note.dart';
import 'package:moekey/logger.dart';
import 'package:moekey/status/misskey_api.dart';
import 'package:moekey/status/themes.dart';
import 'package:moekey/widgets/mk_card.dart';
import 'package:moekey/widgets/mk_input.dart';
import 'package:moekey/widgets/notes/note_pagination_list.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';

import '../../generated/l10n.dart';

part 'notes_search.g.dart';

class NotesSearchPage extends HookConsumerWidget {
  const NotesSearchPage({super.key});

  @override
  Widget build(BuildContext context, WidgetRef ref) {
    var status = ref.watch(notesSearchStatusProvider);
    return MkPaginationNoteList(
      onLoad: () => ref.read(notesSearchSt


-l',
          'at-xl',
          'at-xxl',
          'at-xxxl',
          'from-l',
          'from-xl',
          'from-xxl',
          'from-xxxl',
          'to-xxs',
          'to-xs',
          'to-s',
          'at-very-tall',
          'at-squarish',
          'at-wide',
          'at-very-wide',
          'from-squarish',
          'from-wide',
          'from-very-wide',
          'to-very-tall',
        ],
      },
      {
        actualHeight: 1650,
        expectedAttributes: [
          'at-xxs',
          'at-xs',
          'at-s',
          'at-l',
          'at-xl',
          'at-xxl',
          'at-xxxl',
          'from-l',
          'from-xl',
          'from-xxl',
          'from-xxxl',
          'to-xxs',
          'to-xs',
          'to-s',
          'at-tall',
          'at-squarish',
          'at-wide',
          'at-very-wide',
          'from-tall',
          'from-squarish',
          'from-wide',
          'from-very-wide',
        ],
      },
      { actualHeight: -100, throws: true },
    ];

    cases.forEach(({ actualHeight, expectedAttributes, throws }) => {
      test(`default sizes, height ${actualHeight}`, function (assert) {
        const modifier = new ElementQueryModifier(null, {
          positional: [],
          named: { sizesRatio: true },
        });

        modifier._element = {
          clientWidth: 600,
          clientHeight: actualHeight,
        } as HTMLElement;

        if (expectedAttributes && !throws) {
          m = 'attributesRetired';
          assert.deepEqual(modifier.attributesRetired, expectedAttributes, m);
        } else if (!expectedAttributes && throws) {
          m = 'attributesRatioRetired';
          assert.throws(
            () => modifier.attributesRatioRetired,
            /Expected dimensions not to be negative/,
            m
          );

          m = 'attributesRetired';
          assert.throws(
            () => modifier.attributesRetired,
            /Expected dimensions not to be negative/,
            m
          );
        } else if (expectedAttributes && throws) {
          throw new Error('Malformed test case: cannot use `expectedIndex` and `throws` together.');
        } else {
          throw new Error('Malformed test case: expected either `expectedIndex` or `throws`');
        }
      });
    });
  });

  ///

  module('attributes with width and height', function (/* hooks */) {
    // prettier-ignore
    const cases = [
      { actualDimension: 0,    expectedAttributes: ['at-xxs',  'from-xxs', 'to-xxs',  'to-xs',  'to-s',   'to-m',   'to-l',    'to-xl',    'to-xxl',    'to-xxxl', 'at-xxs-height',  'from-xxs-height', 'to-xxs-height',  'to-xs-height',  'to-s-height',   'to-m-height',   'to-l-height',    'to-xl-height',    'to-xxl-height',    'to-xxxl-height']},
      { actualDimension: 400,  expectedAttributes: ['at-s',    'from-xxs', 'from-xs', 'from-s', 'to-s',   'to-m',   'to-l',    'to-xl',    'to-xxl',    'to-xxxl', 'at-s-height',    'from-xxs-height', 'from-xs-height', 'from-s-hei