battleEffectType.AuraProcessingEnd = 14
PetbattleEffectType.ReplacePet = 15
PetbattleEffectType.OverrideAbility = 16
PetbattleEffectType.WorldStateUpdate = 17

---@class PetbattleEnviros
PetbattleEnviros = {}
PetbattleEnviros.Pad0 = 0
PetbattleEnviros.Pad1 = 1
PetbattleEnviros.Weather = 2

---@class PetbattleInputMoveMsgDebugFlag
PetbattleInputMoveMsgDebugFlag = {}
PetbattleInputMoveMsgDebugFlag.None = 0
PetbattleInputMoveMsgDebugFlag.DontValidate = 1
PetbattleInputMoveMsgDebugFlag.EnemyCast = 2

---@class PetbattleMoveType
PetbattleMoveType = {}
PetbattleMoveType.Quit = 0
PetbattleMoveType.Ability = 1
PetbattleMoveType.Swap = 2
PetbattleMoveType.Trap = 3
PetbattleMoveType.FinalRoundOk = 4
PetbattleMoveType.Pass = 5

---@class PetbattlePboid
PetbattlePboid = {}
PetbattlePboid.P0Pet_0 = 0
PetbattlePboid.P0Pet_1 = 1
PetbattlePboid.P0Pet_2 = 2
PetbattlePboid.P1Pet_0 = 3
PetbattlePboid.P1Pet_1 = 4
PetbattlePboid.P1Pet_2 = 5
PetbattlePboid.EnvPad_0 = 6
PetbattlePboid.EnvPad_1 = 7
PetbattlePboid.EnvWeather = 8

---@class PetbattlePetStatus
PetbattlePetStatus = {}
PetbattlePetStatus.FlagNone = 0
PetbattlePetStatus.FlagTrapped = 1
PetbattlePetStatus.Stunned = 2
PetbattlePetStatus.SwapOutLocked = 4
PetbattlePetStatus.SwapInLocked = 8

---@class PetbattlePlayer
PetbattlePlayer = {}
PetbattlePlayer.Player_0 = 0
PetbattlePlayer.Player_1 = 1

---@class PetbattlePlayerInputFlags
PetbattlePlayerInputFlags = {}
PetbattlePlayerInputFlags.None = 0
PetbattlePlayerInputFlags.TurnInProgress = 1
PetbattlePlayerInputFlags.AbilityLocked = 2
PetbattlePlayerInputFlags.SwapLocked = 4
PetbattlePlayerInputFlags.WaitingForPet = 8

---@class PetbattleResult
PetbattleResult = {}
PetbattleResult.FailUnknown = 0
PetbattleResult.FailNotHere = 1
PetbattleResult.FailNotHereOnTransport = 2
PetbattleResult.FailNotHereUnevenGround = 3
PetbattleResult.FailNotHereObstructed = 4
PetbattleResult.FailNotWhileInCombat = 5
PetbattleResult.FailNotWhileDead = 6
PetbattleResult.FailNotWhileFlying = 7
PetbattleResult.FailTargetInvalid = 8
PetbattleResult.FailTargetOutOfRange = 9
PetbattleResult.FailTargetNotCapturable = 10
PetbattleResult.FailNotATrainer = 11
PetbattleResult.FailDeclined = 12
PetbattleResult.FailInBattle = 13
PetbattleResult.FailInvalidLoadout = 14
PetbattleResult.FailInvalidLoadoutAllDead = 15
PetbattleResult.FailInvalidLoadoutNoneSlotted = 16
PetbattleResult.FailNoJournalLock = 17
PetbattleResult.FailWildPetTapped = 18
PetbattleResult.FailRestrictedAccount = 19
PetbattleResult.FailOpponentNotAvailable = 20
PetbattleResult.FailLogout = 21
PetbattleResult.FailDisconnect = 22
PetbattleResult.Success = 23

---@class PetbattleSlot
PetbattleSlot = {}
PetbattleSlot.Slot_0 = 0
PetbattleSlot.Slot_1 = 1
PetbattleSlot.Slot_2 = 2

---@class PetbattleSlotAbility
PetbattleSlotAbility = {}
PetbattleSlotAbility.Ability_0 = 0
PetbattleSlotAbility.Ability_1 = 1
PetbattleSlotAbility.Ability_2 = 2

---@class PetbattleSlotResult
PetbattleSlotResult = {}
Petbattle


(() => {
						core.info(`retrying with ${retryMax} retries remaining.`);

						checkDirty({ ...context, retryMax: retryMax - 1 }).then(
							(newDirtyStatuses) => {
								resolve({
									...dirtyStatuses,
									...newDirtyStatuses,
								});
							}
						);
					}, retryAfter * 1000);
				});
			default:
				throw new TypeError(
					`unhandled mergeable state '${pullRequest.mergeable}'`
				);
		}
	}

	if (pageInfo.hasNextPage) {
		return {
			...dirtyStatuses,
			...(await checkDirty({
				...context,
				after: pageInfo.endCursor,
			})),
		};
	}
	return dirtyStatuses;
}

/**
 * Assumes that the label exists
 * @returns `true` if the label was added, `false` otherwise (e.g. when it already exists)
 */
async function addLabelIfNotExists(
	labelName: string,
	issue: { number: number; labels: { nodes: Array<{ name: string }> } },
	{ client }: { client: GitHub }
): Promise<boolean> {
	core.debug(JSON.stringify(issue, null, 2));

	const hasLabel =
		issue.labels.nodes.find((labe) => {
			return labe.name === labelName;
		}) !== undefined;

	if (hasLabel) {
		core.info(
			`Issue #${issue.number} already has label '${labelName}'. No need to add.`
		);
		return false;
	}

	return await client.rest.issues
		.addLabels({
			owner: github.context.repo.owner,
			repo: github.context.repo.repo,
			issue_number: issue.number,
			labels: [labelName],
		})
		.then(
			() => true,
			(error) => {
				if (
					(error.status === 403 || error.status === 404) &&
					continueOnMissingPermissions() &&
					error.message.endsWith(`Resource not accessible by integration`)
				) {
					core.warning(
						`could not add label "${labelName}": ${commonErrorDetailedMessage}`
					);
				} else {
					throw new Error(`error adding "${labelName}": ${error}`);
				}
				return false;
			}
		);
}

async function removeLabelIfExists(
	labelName: string,
	issue: { number: number; labels: { nodes: Array<{ name: string }> } },
	{ client }: { client: GitHub }
): Promise<boolean> {
	const hasLabel =
		issue.labels.nodes.find((labe) => {
			return labe.name === labelName;
		}) !== undefined;
	if (!hasLabel) {
		core.info(
			`Issue #${issue.number} does not have label '${labelName}'. No need to remove.`
		);
		return false;
	}

	return client.rest.issues
		.removeLabel({
			owner: github.context.repo.owner,
			repo: github.context.repo.repo,
			issue_number: issue.number,
			name: labelName,
		})
		.then(
			() => true,
			(error) => {
				if (
					(error.status === 403 || error.status === 404) &&
					continueOnMissingPermissions() &&
					error.message.endsWith(`Resource not accessible by integration`)
				) {
					core.warning(
						`could not remove label "${labelName}": ${commonErrorDetailedMessage}`
					);
				} else if (error.status !== 404) {
					throw new Error(`error removing "${labelName}": ${error}`);
				} else {
					core.info(
						`On #${issue.number} label "${labelName}" doesn't need to be removed since it doesn't exist on that issue.`
					);
				}
				return false;
			}
		);
}

async function addComment(
	comme


PI.createLabel(addr, "BG3PA", true);
			flatAPI.setEOLComment(addr, "BG3 Rotation/Scaling Parameter A (dx)");
			flatAPI.createWord(addr);
			addr = flatAPI.toAddr(0x4000032);
			flatAPI.createLabel(addr, "BG3PB", true);
			flatAPI.setEOLComment(addr, "BG3 Rotation/Scaling Parameter B (dmx)");
			flatAPI.createWord(addr);
			addr = flatAPI.toAddr(0x4000034);
			flatAPI.createLabel(addr, "BG3PC", true);
			flatAPI.setEOLComment(addr, "BG3 Rotation/Scaling Parameter C (dy)");
			flatAPI.createWord(addr);
			addr = flatAPI.toAddr(0x4000036);
			flatAPI.createLabel(addr, "BG3PD", true);
			flatAPI.setEOLComment(addr, "BG3 Rotation/Scaling Parameter D (dmy)");
			flatAPI.createWord(addr);
			addr = flatAPI.toAddr(0x4000038);
			flatAPI.createLabel(addr, "BG3X", true);
			flatAPI.setEOLComment(addr, "BG3 Reference Point X-Coordinate");
			flatAPI.createDWord(addr);
			addr = flatAPI.toAddr(0x400003C);
			flatAPI.createLabel(addr, "BG3Y", true);
			flatAPI.setEOLComment(addr, "BG3 Reference Point Y-Coordinate");
			flatAPI.createDWord(addr);
			addr = flatAPI.toAddr(0x4000040);
			flatAPI.createLabel(addr, "WIN0H", true);
			flatAPI.setEOLComment(addr, "Window 0 Horizontal Dimensions");
			flatAPI.createWord(addr);
			addr = flatAPI.toAddr(0x4000042);
			flatAPI.createLabel(addr, "WIN1H", true);
			flatAPI.setEOLComment(addr, "Window 1 Horizontal Dimensions");
			flatAPI.createWord(addr);
			addr = flatAPI.toAddr(0x4000044);
			flatAPI.createLabel(addr, "WIN0V", true);
			flatAPI.setEOLComment(addr, "Window 0 Vertical Dimensions");
			flatAPI.createWord(addr);
			addr = flatAPI.toAddr(0x4000046);
			flatAPI.createLabel(addr, "WIN1V", true);
			flatAPI.setEOLComment(addr, "Window 1 Vertical Dimensions");
			flatAPI.createWord(addr);
			addr = flatAPI.toAddr(0x4000048);
			flatAPI.createLabel(addr, "WININ", true);
			flatAPI.setEOLComment(addr, "Inside of Window 0 and 1");
			flatAPI.createWord(addr);
			addr = flatAPI.toAddr(0x400004A);
			flatAPI.createLabel(addr, "WINOUT", true);
			flatAPI.setEOLComment(addr, "Inside of OBJ Window & Outside of Windows");
			flatAPI.createWord(addr);
			addr = flatAPI.toAddr(0x400004C);
			flatAPI.createLabel(addr, "MOSAIC", true);
			flatAPI.setEOLComment(addr, "Mosaic Size");
			flatAPI.createWord(addr);
			addr = flatAPI.toAddr(0x4000050);
			flatAPI.createLabel(addr, "BLDCNT", true);
			flatAPI.setEOLComment(addr, "Color Special Effects Selection");
			flatAPI.createWord(addr);
			addr = flatAPI.toAddr(0x4000052);
			flatAPI.createLabel(addr, "BLDALPHA", true);
			flatAPI.setEOLComment(addr, "Alpha Blending Coefficients");
			flatAPI.createWord(addr);
			addr = flatAPI.toAddr(0x4000054);
			flatAPI


、普巴尔的便鞋和普巴尔的日记。"}},
[26606] = {"穆克拉的倒下", nil, {"杀死穆克拉王，获得镣铐钥匙。"}},
[26607] = {"他们流下第一滴血", nil, {"将基沙恩的财物交给赤脊山湖畔镇旅店的约翰·J·基沙恩。"}},
[26608] = {"谈判中止", nil, {"回到暮光高地龙喉要塞岸边的石拳将军处。"}},
[26609] = {"血帆海盗", nil, {"大副克拉兹要你侦查一下藏宝海湾北边的海滩。"}},
[26610] = {"血帆的阴谋", nil, {"去向藏宝海湾的大副克拉兹报告你的发现。"}},
[26611] = {"必须警告大财主", nil, {"向大财主里维加兹报告血帆的进攻计划。"}},
[26612] = {"进攻的细节", nil, {"消灭8名血帆水手和8名血帆大法师，把血帆海图和血帆的命令带回来。"}},
[26613] = {"事关鼻烟", nil, {"藏宝海湾的迪格要你给他带15撮鼻烟。"}},
[26614] = {"找眼睛", nil, {"从血帆海盗处夺回迪兹的眼睛。"}},
[26616] = {"战争不会结束", nil, {"乘坐基沙恩的小船前往赤脊山的止水湖营地。"}},
[26617] = {"一名老水手", nil, {"把饱经风霜的硬币带给藏宝海湾的舰队指挥官卡拉·海角。"}},
[26618] = {"恶狼成群", nil, {"杀死12头恐狼。"}},
[26619] = {"你说你想要一场革命", nil, {"溜过前线，去和龙喉哨站的扎伊拉谈谈。"}},
[26620] = {"干烤狼肉串", nil, {"从恐狼身上获得5块狼肉硬肋排。"}},
[26621] = {"起义", nil, {"武装3名龙喉工人或商人，然后消灭10名龙喉执行者和4名龙喉术士。"}},
[26622] = {"莫格霍尔之死", nil, {"杀死龙喉哨站的莫格霍尔酋长。你也可以征召龙喉商人和工人来帮助你。"}},
[26623] = {"黑蟹蛋糕", nil, {"从结网毒蜘蛛身上割下6块暗色肉块。"}},
[26624] = {"同血帆打交道", nil, {"去找藏宝海湾北部瀑布的扬


 15.75f)
        horizontalLineTo(16.9999f)
        curveTo(16.5857f, 15.75f, 16.2499f, 15.4142f, 16.2499f, 15.0f)
        close()
      }
      materialPath(pathFillType = PathFillType.EvenOdd) {
        moveTo(12.2499f, 15.0f)
        curveTo(12.2499f, 14.5858f, 12.5857f, 14.25f, 12.9999f, 14.25f)
        horizontalLineTo(13.9999f)
        curveTo(14.4141f, 14.25f, 14.7499f, 14.5858f, 14.7499f, 15.0f)
        curveTo(14.7499f, 15.4142f, 14.4141f, 15.75f, 13.9999f, 15.75f)
        horizontalLineTo(12.9999f)
        curveTo(12.5857f, 15.75f, 12.2499f, 15.4142f, 12.2499f, 15.0f)
        close()
      }
      materialPath(pathFillType = PathFillType.NonZero) {
        moveTo(8.0f, 10.0f)
        curveTo(8.0f, 10.5523f, 7.5523f, 11.0f, 7.0f, 11.0f)
        curveTo(6.4477f, 11.0f, 6.0f, 10.5523f, 6.0f, 10.0f)
        curveTo(6.0f, 9.4477f, 6.4477f, 9.0f, 7.0f, 9.0f)
        curveTo(7.5523f, 9.0f, 8.0f, 9.4477f, 8.0f, 10.0f)
        close()
      }
      materialPath(pathFillType = PathFillType.EvenOdd) {
        moveTo(7.0f, 9.75f)
        curveTo(6.8619f, 9.75f, 6.75f, 9.8619f, 6.75f, 10.0f)
        curveTo(6.75f, 10.1381f, 6.8619f, 10.25f, 7.0f, 10.25f)
        curveTo(7.1381f, 10.25f, 7.25f, 10.1381f, 7.25f, 10.0f)
        curveTo(7.25f, 9.8619f, 7.1381f, 9.75f, 7.0f, 9.75f)
        close()
        moveTo(5.25f, 10.0f)
        curveTo(5.25f, 9.0335f, 6.0335f, 8.25f, 7.0f, 8.25f)
        curveTo(7.9665f, 8.25f, 8.75f, 9.0335f, 8.75f, 10.0f)
        curveTo(8.75f, 10.9665f, 7.9665f, 11.75f, 7.0f, 11.75f)
        curveTo(6.0335f, 11.75f, 5.25f, 10.9665f, 5.25f, 10.0f)
        close()
      }
    }
    return _contactInformation!!
  }

@Suppress("ktlint:standard:backing-property-naming")
private var _contactInformation: ImageVector? = null
package com.hedvig.android.core.icons.hedvig.normal

import androidx.compose.material.icons.materialIcon
import androidx.compose.material.icons.materialPath
import androidx.compose.ui.graphics.PathFillType
import androidx.compose.ui.graphics.vector.ImageVector
import com.hedvig.android.core.icons.HedvigIcons

@Suppress("UnusedReceiverParameter")
public val HedvigIcons.Arrow


_next(FullRegisterContext*)
    bl scheduler_next

    bl pop_callee_saved_registers

    msr psp, r0
    isb

    ldr r0, =0xfffffffd
    bx r0

.global isr_svcall
.thumb_func
isr_svcall:
    mrs r0, psp
    isb

    bl push_callee_saved_registers

    // FullRegisterContext* syscall(FullRegisterContext*)
    bl syscall

    bl pop_callee_saved_registers

    msr psp, r0
    isb

    ldr r0, =0xfffffffd
    bx r0

// void restore_context_from_thread_mode(FullRegisterContext*)
.global restore_context_from_thread_mode
.thumb_func
restore_context_from_thread_mode:
    bl pop_callee_saved_registers

    mov sp, r0

    // FIXME: This is quite a mess, try to simplify?

    ldr r0, [sp, #0x10]
    mov ip, r0

    ldr r0, [sp, #0x14]
    mov lr, r0

    ldr r0, [sp, #0x1c]
    msr apsr_nzcvq, r0
    isb

    // FIXME: Do pop/str modify APSR?

    pop {r0, r1, r2, r3}
    str r0, [sp, #0]
    str r1, [sp, #4]
    pop {r0, r1}
    pop {pc}


int32_t sum=0;\n"
                + "    for(i=0;i<blepvoices;i++){ // sample\n"
                + "      int16_t *t = oscp[i];\n"
                + "      sum+=(16384-(*t))*vgain[i];\n"
                + "      t+=64;\n"
                + "      if (t>=lastblep) t=lastblep;\n"
                + "      oscp[i]=t;\n"
                + "    }\n"
                + "    //sum = -sum;\n"
                + "    uint32_t g = osc_p;\n"
                + "    outlet_wave[j]=(g>>5)+sum-(1<<26);\n"
                + "  }";
        return o;
    }

    static AxoObject createSawTilde_cheap() {
        AxoObject o = new AxoObject("saw cheap", "saw wave oscillator\nNon-bandwith limited, cheap sound");
        o.outlets.add(new OutletFrac32BufferBipolar("wave", "saw wave, non-anti-aliased"));
        o.inlets.add(new InletFrac32Bipolar("pitch", "pitch"));
        o.params.add(new ParameterFrac32SMapPitch("pitch"));
        o.includes = new LinkedList<>();
        o.sLocalData = "  int32_t osc_p;\n";
        o.sInitCode = "    osc_p=0;\n";
        o.sKRateCode = "  uint32_t freq;\n"
                + "  MTOFEXTENDED(param_pitch + inlet_pitch,freq);\n"
                + "  int j;\n"
                + "  for(j=0;j<BUFSIZE;j++){\n"
                + "    osc_p+=freq;\n"
                + "    outlet_wave[j] = (osc_p)>>5;\n"
                + "  }\n";
        return o;
    }

    static AxoObject createSawTilde_medium() {
        AxoObject o = new AxoObject("saw medium", "saw wave oscillator\nNon-bandwith limited, medium quality");
        o.outlets.add(new OutletFrac32BufferBipolar("wave", "saw wave, non-anti-aliased"));
        o.inlets.add(new InletFrac32Bipolar("pitch", "pitch"));
        o.params.add(new ParameterFrac32SMapPitch("pitch"));
        o.includes = new LinkedList<>();
        o.sLocalData = "  int32_t osc_p;\n";
        o.sInitCode = "    osc_p=0;\n";
        o.sKRateCode = "  uint32_t freq;\n"
                + "  MTOFEXTENDED(param_pitch + inlet_pitch,freq);\n"
                + "  int32_t f0i = 0x7fffffff/(1+((int)freq)>>11);\n"
                + "  int j;\n"
                + "  for(j=0;j<BUFSIZE;j++){\n"
                + "    int32_t p1 = osc_p;\n"
                + "    int32_t p2 = p1 + freq;\n"
                + "    osc_p = p2;\n"
                + "    if ((p2<0)&&(p1>0))\n"
                //                + "      outlet_wave[j] = ___SMMLS(f0i, p2<<1, 0x400)<<14;\n"
                + "outlet_wave[j] = ___SMMLS(f0i, p2&~(1<<31), 0x200)<<15;\n"
                + "    else\n"
                + "      outlet_wave[j] = p2>>7;\n"


 0, 0, 0.5);
  --jp-ui-inverse-font-color3: rgba(0, 0, 0, 0.3);

  /* Content Fonts
   *
   * Content font variables are used for typography of user generated content.
   *
   * The font sizing here is done assuming that the body font size of --jp-content-font-size1
   * is applied to a parent element. When children elements, such as headings, are sized
   * in em all things will be computed relative to that body size.
   */

  --jp-content-line-height: 1.6;
  --jp-content-font-scale-factor: 1.2;
  --jp-content-font-size0: 0.83333em;
  --jp-content-font-size1: 14px; /* Base font size */
  --jp-content-font-size2: 1.2em;
  --jp-content-font-size3: 1.44em;
  --jp-content-font-size4: 1.728em;
  --jp-content-font-size5: 2.0736em;

  /* This gives a magnification of about 125% in presentation mode over normal. */
  --jp-content-presentation-font-size1: 17px;
  --jp-content-heading-line-height: 1;
  --jp-content-heading-margin-top: 1.2em;
  --jp-content-heading-margin-bottom: 0.8em;
  --jp-content-heading-font-weight: 500;

  /* Defaults use Material Design specification */
  --jp-content-font-color0: rgba(255, 255, 255, 1);
  --jp-content-font-color1: rgba(255, 255, 255, 1);
  --jp-content-font-color2: rgba(255, 255, 255, 0.7);
  --jp-content-font-color3: rgba(255, 255, 255, 0.5);
  --jp-content-link-color: var(--md-blue-300);
  --jp-content-font-family: system-ui, -apple-system, blinkmacsystemfont,
    'Segoe UI', helvetica, arial, sans-serif, 'Apple Color Emoji',
    'Segoe UI Emoji', 'Segoe UI Symbol';

  /*
   * Code Fonts
   *
   * Code font variables are used for typography of code and other monospaces content.
   */

  --jp-code-font-size: 13px;
  --jp-code-line-height: 1.3077; /* 17px for 13px base */
  --jp-code-padding: 5px; /* 5px for 13px base, codemirror highlighting needs integer px value */
  --jp-code-font-family-default: menlo, consolas, 'DejaVu Sans Mono', monospace;
  --jp-code-font-family: var(--jp-code-font-family-default);

  /* This gives a magnification of about 125% in presentation mode over normal. */
  --jp-code-presentation-font-size: 16px;

  /* may need to tweak cursor width if you change font size */
  --jp-code-cursor-width0: 1.4px;
  --jp-code-cursor-width1: 2px;
  --jp-code-cursor-width2: 4px;

  /* Layout
   *
   * The following are the main layout colors use in JupyterLab. In a light
   * theme these would go from light to dark.
   */

  --jp-layout-color0: #111;
  --jp-layout-color1: var(--md-grey-900);
  --jp-layout-color2: var(--md-grey-800);
  --jp-layout-color3: var(--md-grey-700);
  --j


                  // vpinsrb    xmm5, xmm5, byte [rsi + rax + 3], 11
	LONG $0x24448b48; BYTE $0x78               // mov    rax, qword [rsp + 120]
	QUAD $0x0c03066c2051e3c4                   // vpinsrb    xmm5, xmm5, byte [rsi + rax + 3], 12
	LONG $0x24448b48; BYTE $0x20               // mov    rax, qword [rsp + 32]
	QUAD $0x0d03066c2051e3c4                   // vpinsrb    xmm5, xmm5, byte [rsi + rax + 3], 13
	LONG $0x3865e3c4; WORD $0x01c0             // vinserti128    ymm0, ymm3, xmm0, 1
	QUAD $0x0001e024847ffdc5; BYTE $0x00       // vmovdqa    yword [rsp + 480], ymm0
	QUAD $0x0000012024848b48                   // mov    rax, qword [rsp + 288]
	QUAD $0x0e0306442051e3c4                   // vpinsrb    xmm0, xmm5, byte [rsi + rax + 3], 14
	QUAD $0x000000f024848b48                   // mov    rax, qword [rsp + 240]
	LONG $0x067cb60f; BYTE $0x09               // movzx    edi, byte [rsi + rax + 9]
	LONG $0xc76e79c5                           // vmovd    xmm8, edi
	WORD $0x8949; BYTE $0xd9                   // mov    r9, rbx
	QUAD $0x0f031e442079e3c4                   // vpinsrb    xmm0, xmm0, byte [rsi + rbx + 3], 15
	LONG $0x387de3c4; WORD $0x01c4             // vinserti128    ymm0, ymm0, xmm4, 1
	QUAD $0x0001c024847ffdc5; BYTE $0x00       // vmovdqa    yword [rsp + 448], ymm0
	QUAD $0x0000010024848b48                   // mov    rax, qword [rsp + 256]
	LONG $0x067cb60f; BYTE $0x09               // movzx    edi, byte [rsi + rax + 9]
	LONG $0xdf6e79c5                           // vmovd    xmm11, edi
	QUAD $0x0001a024846ff9c5; BYTE $0x00       // vmovdqa    xmm0, oword [rsp + 416]
	QUAD $0x0000009824848b48                   // mov    rax, qword [rsp + 152]
	QUAD $0x010406442079e3c4                   // vpinsrb    xmm0, xmm0, byte [rsi + rax + 4], 1
	QUAD $0x000000e824848b48                   // mov    rax, qword [rsp + 232]
	QUAD $0x020406442079e3c4                   // vpinsrb    xmm0, xmm0, byte [rsi + rax + 4], 2
	LONG $0x24448b48; BYTE $0x68               // mov    rax, qword [rsp + 104]
	QUAD $0x030406442079e3c4                   // vpinsrb    xmm0, xmm0, byte [rsi + rax + 4], 3
	QUAD $0x000000a824ac8b4c                   // mov    r13, qword [rsp + 168]
	QUAD $0x04042e442079a3c4                   // vpinsrb    xmm0, xmm0, byte [rsi + r13 + 4], 4
	QUAD $0x000000c8248c8b48                   // mov    rcx, qword [rsp + 200]
	QUAD $0x05040


bb9a2b2"))
        assertNotNull(res)
        assertEquals(TxId("002f3246fa012ded792050f4a834e2eccdd772e1c7dc3a6a88cd6acdcbb9a2b2"), res.txid)
    }

    @Test
    fun `get tx -- mainnet`() = runSuspendTest {
        val client = MempoolSpaceClient(mempoolUrl = OfficialMempoolMainnet, testLoggerFactory)
        val res = client.getTransaction(TxId("8a391488ed266191e3243ea7ac55d358080a3434865b14994747f6cdca38b640"))
        assertNotNull(res)
        assertEquals(TxId("8a391488ed266191e3243ea7ac55d358080a3434865b14994747f6cdca38b640"), res.txid)
    }

    @Test
    fun `get tx confirmations -- testnet4`() = runSuspendTest {
        val client = MempoolSpaceClient(mempoolUrl = OfficialMempoolTestnet4, testLoggerFactory)
        val res = client.getConfirmations(TxId("002f3246fa012ded792050f4a834e2eccdd772e1c7dc3a6a88cd6acdcbb9a2b2"))
        assertNotNull(res)
        assertTrue(res > 0)
    }

    @Test
    fun `get tx confirmations -- mainnet`() = runSuspendTest {
        val client = MempoolSpaceClient(mempoolUrl = OfficialMempoolMainnet, testLoggerFactory)
        val res = client.getConfirmations(TxId("8a391488ed266191e3243ea7ac55d358080a3434865b14994747f6cdca38b640"))
        assertNotNull(res)
        assertTrue(res > 0)
    }

    @Test
    fun `get spending tx -- testnet4`() = runSuspendTest {
        val client = MempoolSpaceClient(mempoolUrl = OfficialMempoolTestnet4, testLoggerFactory)
        val res = client.getOutspend(TxId("002f3246fa012ded792050f4a834e2eccdd772e1c7dc3a6a88cd6acdcbb9a2b2"), 1)
        assertNotNull(res)
        assertEquals(TxId("8bce727fe08fbb79f02682f71d0b1f33a79039cd7a70623a51945bf2dc86d77c"), res.txid)
    }

    @Test
    fun `get spending tx -- mainnet4`() = runSuspendTest {
        val client = MempoolSpaceClient(mempoolUrl = OfficialMempoolMainnet, testLoggerFactory)
        val res = client.getOutspend(TxId("308c09d986000be7f05ba776b38204317bf928b70db65bf175af7f2036951649"), 3)
        assertNotNull(res)
        assertEquals(TxId("8a391488ed266191e3243ea7ac55d358080a3434865b14994747f6cdca38b640"), res.txid)
    }
}package fr.acinq.lightning.blockchain.electrum

import fr.acinq.bitcoin.BlockHash
import fr.acinq.bitcoin.BlockHeader
import fr.acinq.bitcoin.ByteVector32
import fr.acinq.bitcoin.utils.Either
import fr.acinq.lightning.tests.utils.LightningTestSuite
import fr.acinq.lightning.utils.*
import kotlinx.serialization.json.Json
import kotlinx.serialization.json.JsonNull
import kotlin.test.Test
import kotlin.test.assertEquals

class ElectrumRequestTest : LightningTestSuite() {

    @Test
    fun `ServerVersion stringify JSON-RPC format`() {
        assertEquals(buildString {
            append("""{"jsonrpc":"2.0","id":0,"method":"server.version","params":["3.3.6","1.4"]}""")
            appendLine()
        }, ServerVersion().asJsonRPCRequest(0))

        assertEquals(buildString {
            append("""{"jsonrpc":"2.0","id":0,"method":"server.version","params":["lightning-kmp-test","1.4.2"]}""")
            appendLine()
        }, ServerVersion(clientName = "lightning-kmp-test", protocolVersion = "1.4.2").asJsonRPCRequest(0))
    }

    @Test


This function will be directly called in the algorithms.

#### ObjFunc.result()

*Full name:* `pyslvs.metaheuristics.ObjFunc.result`

| self | v | return |
|:----:|:---:|:------:|
| `Self` | `numpy.ndarray` | `FVal` |

The result function. Default is the best variable vector `v`.

### class PSO

*Full name:* `pyslvs.metaheuristics.PSO`

| Bases |
|:-----:|
| `pyslvs.metaheuristics.pso.utility.Algorithm` |

Algorithm base class.

It is used to build the Meta-heuristic Algorithms.

#### PSO.\_\_init\_\_()

*Full name:* `pyslvs.metaheuristics.PSO.__init__`

| self | func | settings | progress_fun | interrupt_fun | return |
|:----:|:----:|:--------:|:------------:|:-------------:|:------:|
| `Self` | `pyslvs.metaheuristics.pso.utility.ObjFunc[pyslvs.metaheuristics.pso.utility.FVal]` | `pyslvs.metaheuristics.pso.config_types.PSOSetting` | Callable[[int, str], None] | None | Callable[[], bool] | None | `Any` |
|   |   |   | `None` | `None` |   |   |

Initialize self.  See help(type(self)) for accurate signature.

### class RGA

*Full name:* `pyslvs.metaheuristics.RGA`

| Bases |
|:-----:|
| `pyslvs.metaheuristics.rga.utility.Algorithm` |

The implementation of Real-coded Genetic Algorithm.

#### RGA.\_\_init\_\_()

*Full name:* `pyslvs.metaheuristics.RGA.__init__`

| self | func | settings | progress_fun | interrupt_fun | return |
|:----:|:----:|:--------:|:------------:|:-------------:|:------:|
| `Self` | `pyslvs.metaheuristics.rga.utility.ObjFunc[pyslvs.metaheuristics.rga.utility.FVal]` | `pyslvs.metaheuristics.rga.config_types.RGASetting` | Callable[[int, str], None] | None | Callable[[], bool] | None | `Any` |
|   |   |   | `None` | `None` |   |   |

Initialize self.  See help(type(self)) for accurate signature.

### class RGASetting

*Full name:* `pyslvs.metaheuristics.RGASetting`

| Bases |
|:-----:|
| `Setting` |

| Members | Type |
|:-------:|:----:|
| `cross` | `float` |
| `delta` | `float` |
| `mutate` | `float` |
| `win` | `float` |

### class Setting

*Full name:* `pyslvs.metaheuristics.Setting`
</


Error(error.errorType, error.message);
  }
};

export const getTextRequest = (url: string, headers?: HeadersInit) => taskEither.tryCatch(
  () => fetchText(url, { headers }) as Promise<string>,
  errIdentity<TypedError>()
);

export const getRequest = <T>(url: string, headers?: HeadersInit) => taskEither.tryCatch(
  () => fetchJson(url, { headers }) as Promise<T>,
  errIdentity<TypedError>()
);

export const postRequest = <T>(url: string, body?: BodyInit, headers?: HeadersInit) => taskEither.tryCatch(
  () => fetchJson(url, { method: "POST", headers, body }) as Promise<T>,
  errIdentity<TypedError>()
);

export const postRequestWithoutResult = (url: string, body?: BodyInit, headers?: HeadersInit) => taskEither.tryCatch(
  () => fetchEmpty(url, { method: "POST", headers, body }),
  errIdentity<TypedError>()
);

export const patchRequest = <T>(url: string, body?: BodyInit, headers?: HeadersInit) => taskEither.tryCatch(
  () => fetchJson(url, { method: "PATCH", headers, body }) as Promise<T>,
  errIdentity<TypedError>()
);

export const patchRequestWithoutResult = (url: string, body?: BodyInit, headers?: HeadersInit) => taskEither.tryCatch(
  () => fetchEmpty(url, { method: "PATCH", headers, body }),
  errIdentity<TypedError>()
);

export const deleteRequest = (url: string, headers?: HeadersInit) => taskEither.tryCatch(
  () => fetchJson(url, { method: "DELETE", headers }),
  errIdentity<TypedError>()
);export interface Sorter {
  property: string,
  direction: 'ASC' | 'DESC',
}

export function sort<T>(data: T[], sorter: Sorter) {
  return data.sort((record1: T, record2: T) => {
    const prop1 = record1[sorter.property],
          prop2 = record2[sorter.property];

    if (sorter.direction === 'DESC') return (prop1 < prop2) ? 1 : ((prop1 > prop2) ? -1 : 0);
    return (prop1 < prop2) ? -1 : ((prop1 > prop2) ? 1 : 0);
  })
}import { isAbsolute } from 'path';

export default function absolutePackageName(specifier: string): string | undefined {
  if (
    // relative paths:
    specifier[0] === '.' ||
    // webpack-specific microsyntax for internal requests:
    specifier[0] === '!' ||
    specifier[0] === '-' ||
    // absolute paths:
    isAbsolute(specifier)
  ) {
    // Does not refer to a package
    return;
  }
  let parts = specifier.split('/');
  if (specifier[0] === '@') {
    return `${parts[0]}/${parts[1]}`;
  } else {
    return parts[0];
  }
}
import * as vscode from 'vscode'
import * as path from 'path';

import { ImportObject } from './import-db';

export class ImportFixer {

    private spacesBetweenBraces;
    private doubleQuotes;
    private useSemiColon;

    constructor() {
        let config = vscode.workspace.getConfiguration('autoimport');

        this.useSemiColon = config.get<boolean>('useSemiColon');
        this.spacesBetweenBraces = config.get<boolean>('spaceBetweenBraces');
        this.doubleQuotes = config.get<boolean>('doubleQuotes');
    }

    public fix(document: vscode.TextDocument, range: vscode.Range,
        context: vscode.CodeActionContext, token: vscode.CancellationToken, imports: Array<ImportObject>): void {

        let edit = this.getTextEdit(document, imports);

        vscode.workspace.applyEdit(edit);
    }

    public getTextEdit(document: vscode.TextDocument, imports


头，这就不好了，不要受人挑拨，这样弄不好会出现更大的曲折，敌人就高兴了。你们不要打内战。要团结起来共同对敌。跟红联站，大家要按协议书办事，俗语说，大水冲了龙王庙。自己人认不得自己人。

   我老家有句俗话，不挨骂长不大，有点道理。骂不外乎两种：一种是自己人骂，另一种是敌人骂，人家骂对了提醒自己警惕，好改；人家骂错了就帮对方改！你们应该以全国的文化大革命全局为重，以山西的文化大革命全局为重，希望各群众组织认真学习毛主席著作，不要听信谣言。不要听马路新闻，听这些东西就上当了。我再说一次有个谣言要辟，有人说叶群同志打电话刘志兰是个好同志，这完全是谣言。这个谣言传单是刘志兰批的，千万不要听信谣言。

   第五个问题，山西省驻军、军区，在支农、支工、支左、军管、军训中是有巨大的成绩的。我们应该看到这一点，不能认为有个别同志犯了错误，有的单位支错了就否定了成绩，那是错误的，支错了的改了就好。部队里要加强教育，消除坏影响。一些人武部不好也要加强教育。教而不听态度要鲜明，对公检法要高度注意，罗瑞卿搞了多年，有很多坏人安插了进去，好人也受到影响。……要帮助公检法的同志肃清过去的坏影响。山西夺权后没有注意这些问题。所以在这方面专政委员会搞的不象话。

   军队支错了的要改，越快越好。但地方上的同志要给予时间。不能一下子就要求改过来，下边同志的错误要做工作，给予改整工作的时间。

   听说红联站下属组织冲了军区，是不是这么回事（红联站答：是），你们要制止。抢的文件要交回来。

   有些地方军队支错了要改，地方的同志要支持他们，要拥军爱民，军队支持左派是最大的爱民，左派受压制是支持他们就是最大的爱民。地


color: $breadcrumb-bg;
  @include border-radius($breadcrumb-border-radius);
}

.breadcrumb-item {
  // The separator between breadcrumbs (by default, a forward-slash: "/")
  + .breadcrumb-item {
    padding-left: $breadcrumb-item-padding;

    &::before {
      display: inline-block; // Suppress underlining of the separator in modern browsers
      padding-right: $breadcrumb-item-padding;
      color: $breadcrumb-divider-color;
      content: $breadcrumb-divider;
    }
  }

  // IE9-11 hack to properly handle hyperlink underlines for breadcrumbs built
  // without `<ul>`s. The `::before` pseudo-element generates an element
  // *within* the .breadcrumb-item and thereby inherits the `text-decoration`.
  //
  // To trick IE into suppressing the underline, we give the pseudo-element an
  // underline and then immediately remove it.
  + .breadcrumb-item:hover::before {
    text-decoration: underline;
  }
  // stylelint-disable-next-line no-duplicate-selectors
  + .breadcrumb-item:hover::before {
    text-decoration: none;
  }

  &.active {
    color: $breadcrumb-active-color;
  }
}
// Container widths
//
// Set the container width, and override it for fixed navbars in media queries.

@if $enable-grid-classes {
  .container {
    @include make-container();
    @include make-container-max-widths();
  }
}

// Fluid container
//
// Utilizes the mixin meant for fixed width containers, but with 100% width for
// fluid, full width layouts.

@if $enable-grid-classes {
  .container-fluid {
    @include make-container();
  }
}

// Row
//
// Rows contain and clear the floats of your columns.

@if $enable-grid-classes {
  .row {
    @include make-row();
  }

  // Remove the negative margin from default .row, then the horizontal padding
  // from all immediate children columns (to prevent runaway style inheritance).
  .no-gutters {
    margin-right: 0;
    margin-left: 0;

    > .col,
    > [class*="col-"] {
      padding-right: 0;
      padding-left: 0;
    }
  }
}

// Columns
//
// Common styles for small and large grid columns

@if $enable-grid-classes {
  @include make-grid-columns();
}
// Embedded icons from Open Iconic.
// Released under MIT and copyright 2014 Waybury.
// https://useiconic.com/open

// Checkboxes and radios
//
// Base class takes care of all the key behavioral aspects.

.custom-control {
  position: relative;
  display: block;
  min-height: $font-size-base * $line-height-base;
  padding-left: $custom-control-gutter + $custom-control-indicator-size;
}

.custom-control-inline {
  display: inline-flex;
  margin-right: $custom-control-spacer-x;
}

.custom-control-input {
  position: absolute;
  z-index: -1; // Put the input behind the label so it doesn't overlay text
  opacity: 0;

  &:checked ~ .custom-control-label::before {
    color: $custom-control-indicator-checked-color;
    border-color: $custom-control-indicator-checked-border-color;
    @include gradient-bg($custom-control-indicator-checked-bg);
    @include box-shadow($custom-control-indicator-checked-box-shadow);
  }

  &:focus ~ .custom-control-label::before {
    // the mixin is not used here to make sure there is feedback
    @if


1
	end

	--
	-- MACRO LEVEL:
	--

	function FN.SIM.simulate_scoring_cards()
		for _, scoring_card in ipairs(FN.SIM.env.scoring_cards) do
			FN.SIM.simulate_card_in_context(scoring_card, G.play)
		end
	end

	function FN.SIM.simulate_held_cards()
		for _, held_card in ipairs(FN.SIM.env.held_cards) do
			FN.SIM.simulate_card_in_context(held_card, G.hand)
		end
	end

	function FN.SIM.simulate_joker_global_effects()
		for _, joker in ipairs(FN.SIM.env.jokers) do
			if joker.edition then -- Foil and Holo:
				if joker.edition.chips then FN.SIM.add_chips(joker.edition.chips) end
				if joker.edition.mult then FN.SIM.add_mult(joker.edition.mult) end
			end

			FN.SIM.simulate_joker(joker, FN.SIM.get_context(G.jokers, { global = true }))

			-- Joker-on-joker effects (eg. Blueprint):
			FN.SIM.simulate_all_jokers(G.jokers, { other_joker = joker })

			if joker.edition then -- Poly:
				if joker.edition.x_mult then FN.SIM.x_mult(joker.edition.x_mult) end
			end
		end
	end

	function FN.SIM.simulate_consumable_effects()
		for _, consumable in ipairs(FN.SIM.env.consumables) do
			if consumable.ability.set == "Planet" and not consumable.debuff then
				if
					G.GAME.used_vouchers.v_observatory
					and consumable.ability.consumeable.hand_type == FN.SIM.env.scoring_name
				then
					FN.SIM.x_mult(G.P_CENTERS.v_observatory.config.extra)
				end
			end
		end
	end

	function FN.SIM.add_base_chips_and_mult()
		local played_hand_data = G.GAME.hands[FN.SIM.env.scoring_name]
		FN.SIM.add_chips(played_hand_data.chips)
		FN.SIM.add_mult(played_hand_data.mult)
	end

	function FN.SIM.simulate_joker_before_effects()
		for _, joker in ipairs(FN.SIM.env.jokers) do
			FN.SIM.simulate_joker(joker, FN.SIM.get_context(G.jokers, { before = true }))
		end
	end

	function FN.SIM.simulate_blind_effects()
		if G.GAME.blind.disabled then return end

		if G.GAME.blind.name == "The Flint" then
			local function flint(data)
				local half_chips = math.floor(data.chips / 2 + 0.5)
				local half_mult = math.floor(data.mult / 2 + 0.5)
				data.chips = mod_chips(math.max(half_chips, 0))
				data.mult = mod_mult(math.max(half_mult, 1))
			end

			flint(FN.SIM.running.min)
			flint(FN.SIM.running.exact)
			flint(FN.SIM.running.max)
		else
			-- Other blinds do not impact scoring; refer to Blind:modify_hand(..)
		end
	end

	function FN.SIM.simulate_deck_effects()
		if FN.SIM.is_deck("b_plasma") then
			local function plasma(data)
				local sum = data.chips + data.mult
				local half_sum = math.floor(sum / 2)
				data.chips = mod_chips(half_sum)
				data.mult = mod_mult(half_sum)
			end

			plasma(FN.SIM.running.min)
			plasma(FN.SIM.running.exact)
			plasma(FN.SIM


 captured by *forward capture* as `partial_pack`.

* The *forward-captured* `xf` from the "parent" lambda is captured *by move* into `yf`. `xf` doesn't need to be forwarded as `FWD_CAPTURE(f)` returns a movable wrapper that either stores an *lvalue reference* or a *value*.

```cpp
return curry
(
    [
        partial_pack = FWD_CAPTURE_PACK_AS_TUPLE(partials),
        yf = std::move(xf)
    ]
    (auto&&... xs) constexpr
        -> decltype(forward_like<TF>(xf.get())(FWD(partials)...,
                                               FWD(xs)...))
    {
        // ...
    }
);
```

The lambda passed to `curry` will accept any number of *forwarding references* in the `xs...` pack that will be used alongside the captured `partials...` to call `f`. The expected function call can be easily understood by the lambda's *trailing return type*:

```cpp
//          Unwrap `f` from the `xf` `FWD_CAPTURE` wrapper and propagate
//          the original function object's value category.
//          vvvvvvvvvvvvvvvvvvvvvvvvv
-> decltype(forward_like<TF>(xf.get())(FWD(partials)..., FWD(xs)...))
//                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
//          Unpack both the `partials` and `xs` argument packs in a
//          single function call to `f`.
```

[`forward_like` is an utility function in my `vrm_core` library](https://github.com/SuperV1234/vrm_core/blob/437a0afb35385250cd75c22babaeeecbfa4dcacc/include/vrm/core/type_traits/forward_like.hpp) that *forwards* the passed argument with the same *value category* of the potentially-unrelated specified type. It basically copies the "*lvalue/rvalue*-ness" of the user-provided template parameter and *applies* it to its argument.

The expression inside the above return type essentially means: *"invoke the original function object by unpacking `partials...` and `xs...` one after another"*.

Lastly, let's analyze the body of the lambda.

```cpp
return apply_fwd_capture([&yf](auto&&... ys) constexpr
    -> decltype(forward_like<TF>(yf.get())(FWD(ys)...))
{
    return forward_like<TF>(yf.get())(FWD(ys)...);
}, partial_pack, FWD_CAPTURE_PACK_AS_TUPLE(xs));
```

Remember: we're trying to call `f` by unpacking both `partials...` and `xs...` **at the same time**. The `partials...` pack is stored in a special wrapper returned by `FWD_CAPTURE_PACK_AS_TUPLE`. The `xs...` pack contains the arguments passed to the lambda.

The `apply_fwd_capture` takes any number of wrapped *forward-capture pack wrappers* and uses them to invoke an user-provided function object. The wrappers are unpacked at the same time, preserving the original value category. Since `xs...` is not wrapped, we're going to explicitly do so by using the `FWD_CAPTURE_PACK_AS_TUPLE` macro.

In short, `apply_fwd_capture` will invoke the *`constexpr` variadic lambda* by expanding `partials...` and `xs...` correctly - those values will be then forwarded to the wrapped callable object `yf`.

**That's it!** Eventually the recursion will end as one of the steps will produce an intermediate function objects t


//===-- Decomposer.h -- Compound directive decomposition ------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
#ifndef FORTRAN_LOWER_OPENMP_DECOMPOSER_H
#define FORTRAN_LOWER_OPENMP_DECOMPOSER_H

#include "Clauses.h"
#include "mlir/IR/BuiltinOps.h"
#include "llvm/Frontend/OpenMP/ConstructCompositionT.h"
#include "llvm/Frontend/OpenMP/ConstructDecompositionT.h"
#include "llvm/Frontend/OpenMP/OMP.h"
#include "llvm/Support/Compiler.h"

namespace llvm {
class raw_ostream;
}

namespace Fortran {
namespace semantics {
class SemanticsContext;
}
namespace lower::pft {
struct Evaluation;
}
} // namespace Fortran

namespace Fortran::lower::omp {
using UnitConstruct = tomp::DirectiveWithClauses<lower::omp::Clause>;
using ConstructQueue = List<UnitConstruct>;

LLVM_DUMP_METHOD llvm::raw_ostream &operator<<(llvm::raw_ostream &os,
                                               const UnitConstruct &uc);

// Given a potentially compound construct with a list of clauses that
// apply to it, break it up into individual sub-constructs each with
// the subset of applicable clauses (plus implicit clauses, if any).
// From that create a work queue where each work item corresponds to
// the sub-construct with its clauses.
ConstructQueue buildConstructQueue(mlir::ModuleOp modOp,
                                   semantics::SemanticsContext &semaCtx,
                                   lower::pft::Evaluation &eval,
                                   const parser::CharBlock &source,
                                   llvm::omp::Directive compound,
                                   const List<Clause> &clauses);

bool isLastItemInQueue(ConstructQueue::iterator item,
                       const ConstructQueue &queue);
} // namespace Fortran::lower::omp

#endif // FORTRAN_LOWER_OPENMP_DECOMPOSER_H


x62, 0x70, 0x66, 0x72, 0x65, 0x63, 0x6f,
	0x72, 0x64, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x22, 0x00, 0x12, 0x5a, 0x0a, 0x12, 0x53, 0x79, 0x73, 0x63, 0x61, 0x6c, 0x6c, 0x73,
	0x46, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x1f, 0x2e, 0x61, 0x70, 0x69,
	0x5f, 0x62, 0x70, 0x66, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2e, 0x50, 0x72, 0x6f,
	0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x70,
	0x69, 0x5f, 0x62, 0x70, 0x66, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2e, 0x53, 0x79,
	0x73, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00,
	0x12, 0x5a, 0x0a, 0x12, 0x41, 0x70, 0x70, 0x61, 0x72, 0x6d, 0x6f, 0x72, 0x46, 0x6f, 0x72, 0x50,
	0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x62, 0x70, 0x66,
	0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x62, 0x70,
	0x66, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2e, 0x41, 0x70, 0x70, 0x61, 0x72, 0x6d,
	0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x12, 0x5a, 0x10,
	0x2f, 0x61, 0x70, 0x69, 0x5f, 0x62, 0x70, 0x66, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x65, 0x72,
	0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_api_grpc_bpfrecorder_api_proto_rawDescOnce sync.Once
	file_api_grpc_bpfrecorder_api_proto_rawDescData = file_api_grpc_bpfrecorder_api_proto_rawDesc
)

func file_api_grpc_bpfrecorder_api_proto_rawDescGZIP() []byte {
	file_api_grpc_bpfrecorder_api_proto_rawDescOnce.Do(func() {
		file_api_grpc_bpfrecorder_api_proto_rawDescData = protoimpl.X.CompressGZIP(file_api_grpc_bpfrecorder_api_proto_rawDescData)
	})
	return file_api_grpc_bpfrecorder_api_proto_rawDescData
}

var file_api_grpc_bpfrecorder_api_proto_msgType


并允许你随时将其取出.")
        return lines
    }

    override fun getMaxLevel(): Int {
        return 1
    }

    override fun onPerkActive(player: Player) {
    }

    override fun onPerkInactive(player: Player) {
    }

    override fun getShopPerkType(): ShopPerkType {
        return ShopPerkType.SHOP
    }
}package cn.charlotte.pit.enchantment.type

import cn.charlotte.pit.enchantment.AbstractEnchantment
import cn.charlotte.pit.enchantment.rarity.EnchantmentRarity
import cn.charlotte.pit.parm.listener.IAttackEntity
import cn.charlotte.pit.parm.listener.IPlayerAssist
import cn.charlotte.pit.parm.listener.IPlayerBeKilledByEntity
import cn.charlotte.pit.parm.listener.IPlayerDamaged
import cn.charlotte.pit.parm.listener.IPlayerKilledEntity
import cn.charlotte.pit.parm.listener.IPlayerShootEntity
import cn.charlotte.pit.util.cooldown.Cooldown
import com.google.common.util.concurrent.AtomicDouble
import org.bukkit.entity.Entity
import org.bukkit.entity.Player
import java.util.concurrent.atomic.AtomicBoolean
import javax.script.ScriptEngine

class JSEnchantment(
    val engine: ScriptEngine,
    val enchantName0: String,
    val internalName0: String,
    val rarity0: EnchantmentRarity,
    private val desc: List<String>,
    allowedItems: Set<String>,
    private val attackFunc: ((Int, Player, Entity, Double, AtomicDouble, AtomicDouble, AtomicBoolean) -> Unit)?,
    private val playerKilledFunc: ((Int, Player, Entity, AtomicDouble, AtomicDouble) -> Unit)?,
    private val shootFunc: ((Int, Player, Entity, Double, AtomicDouble, AtomicDouble, AtomicBoolean) -> Unit)?,
    private val playerAssistFunc: ((Int, Player, Entity, Double, Double, AtomicDouble, AtomicDouble) -> Unit)?,
    private val playerBeKilledFunc: ((Int, Player, Entity, AtomicDouble, AtomicDouble) -> Unit)?,
    private val playerDamagedFunc: ((Int, Player, Entity, Double, AtomicDouble, AtomicDouble, AtomicBoolean) -> Unit)?
): AbstractEnchantment(), IAttackEntity, IPlayerDamaged, IPlayerKilledEntity, IPlayerShootEntity, IPlayerAssist, IPlayerBeKilledByEntity  {

    init {
        if (allowedItems.contains("WEAPON")) {
            weaponOnly = true
        }
        if (allowedItems.contains("ARMOR")) {
            armorOnly = true
        }
        if (allowedItems.contains("BOW")) {
            bowOnly = true
        }
        if (allowedItems.contains("ROD")) {
            rodOnly = true
        }
    }

    override fun getEnchantName(): String {
        return enchantName0
    }

    override fun getMaxEnchantLevel(): Int {
        return 3
    }

    override fun getNbtName(): String {
        return internalName0
    }

    override fun getRarity(): EnchantmentRarity {
        return rarity0
    }

    override fun getCooldown(): Cooldown? {
        return null
    }

    override fun getUsefulnessLore(enchantLevel: Int): String {
        return desc.joinToString("/s")
    }

    override fun handleAttackEntity(
        enchantLevel: Int,
        attacker: Player,
        target: Entity,
        damage: Double,
        finalDamage: AtomicDouble,
        boostDamage: AtomicDouble,
        cancel: AtomicBoolean
    ) {
        attackFunc?.invoke(enchantLevel, attacker, target, damage, finalDamage, boostDamage, cancel)
    }

    override fun handlePlayerKilled(
        enchantLe


      this.flag = false;
            if (this.frame % 15 == 0)
            {
                int pX = this.union == Panel.COLOR.red ? 0 : 5;
                int pY = 2 - this.count;
                Wind wind = new Wind(this.sound, this.parent, pX, pY, this.union, true);
                if (pX == 0)
                    wind.positionDirect.X = 0.0f;
                if (pX == 5)
                    wind.positionDirect.X = 240f;
                this.parent.attacks.Add(wind);
                ++this.count;
                if (this.count >= 3)
                    this.count = 0;
            }
            ++this.frame;
        }

        public override void Render(IRenderer dg)
        {
        }
    }
}


olRegex=/^([^\w]*)(javascript|data|vbscript)/im,i.htmlEntitiesRegex=/&#(\w+)(^\w|;)?/g,i.htmlCtrlEntityRegex=/&(newline|tab);/gi,i.ctrlCharactersRegex=/[\u0000-\u001F\u007F-\u009F\u2000-\u200D\uFEFF]/gim,i.urlSchemeRegex=/^.+(:|:)/gim,i.relativeFirstCharacters=[".","/"],i.BLANK_URL="about:blank"},86208:(s,i,u)=>{"use strict";i.o=void 0;var _=u(57468);i.o=function sanitizeUrl(s){if(!s)return _.BLANK_URL;var i=function decodeHtmlCharacters(s){return s.replace(_.ctrlCharactersRegex,"").replace(_.htmlEntitiesRegex,(function(s,i){return String.fromCharCode(i)}))}(s).replace(_.htmlCtrlEntityRegex,"").replace(_.ctrlCharactersRegex,"").trim();if(!i)return _.BLANK_URL;if(function isRelativeUrlWithoutProtocol(s){return _.relativeFirstCharacters.indexOf(s[0])>-1}(i))return i;var u=i.match(_.urlSchemeRegex);if(!u)return i;var w=u[0];return _.invalidProtocolRegex.test(w)?_.BLANK_URL:i}},25704:(s,i)=>{"use strict";i.byteLength=function byteLength(s){var i=getLens(s),u=i[0],_=i[1];return 3*(u+_)/4-_},i.toByteArray=function toByteArray(s){var i,u,x=getLens(s),j=x[0],P=x[1],B=new w(function _byteLength(s,i,u){return 3*(i+u)/4-u}(0,j,P)),$=0,U=P>0?j-4:j;for(u=0;u<U;u+=4)i=_[s.charCodeAt(u)]<<18|_[s.charCodeAt(u+1)]<<12|_[s.charCodeAt(u+2)]<<6|_[s.charCodeAt(u+3)],B[$++]=i>>16&255,B[$++]=i>>8&255,B[$++]=255&i;2===P&&(i=_[s.charCodeAt(u)]<<2|_[s.charCodeAt(u+1)]>>4,B[$++]=255&i);1===P&&(i=_[s.charCodeAt(u)]<<10|_[s.charCodeAt(u+1)]<<4|_[s.charCodeAt(u+2)]>>2,B[$++]=i>>8&255,B[$++]=255&i);return B},i.fromByteArray=function fromByteArray(s){for(var i,_=s.length,w=_%3,x=[],j=16383,P=0,B=_-w;P<B;P+=j)x.push(encodeChunk(s,P,P+j>B?B:P+j));1===w?(i=s[_-1],x.push(u[i>>2]+u[i<<4&63]+"==")):2===w&&(i=(s[_-2]<<8)+s[_-1],x.push(u[i>>10]+u[i>>4&63]+u[i<<2&63]+"="));return x.join("")};for(var u=[],_=[],w="undefined"!=typeof Uint8Array?Uint8Array:Array,x="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",j=0;j<64;++j)u[j]=x[j],_[x.charCodeAt(j)]=j;function getLens(s){var i=s.length;if(i%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var u=s.indexOf("=");return-1===u&&(u=i),[u,u===i?0:4-u%4]}function encodeChunk(s,i,_){for(var w,x,j=[],P=i;P<_;P+=3)w=(s[P]<<16&16711680)+(s[P+1]<<8&65280)+(255&s[P+2]),j.push(u[(x=w)>>18&63]+u[


(&x.ref6f31fcaf.maxDstExtent))
}

// allocDisplayPlanePropertiesMemory allocates memory for type C.VkDisplayPlanePropertiesKHR in C.
// The caller is responsible for freeing the this memory via C.free.
func allocDisplayPlanePropertiesMemory(n int) unsafe.Pointer {
	mem, err := C.calloc(C.size_t(n), (C.size_t)(sizeOfDisplayPlanePropertiesValue))
	if err != nil {
		panic("memory alloc error: " + err.Error())
	}
	return mem
}

const sizeOfDisplayPlanePropertiesValue = unsafe.Sizeof([1]C.VkDisplayPlanePropertiesKHR{})

// Ref returns the underlying reference to C object or nil if struct is nil.
func (x *DisplayPlaneProperties) Ref() *C.VkDisplayPlanePropertiesKHR {
	if x == nil {
		return nil
	}
	return x.refce3db3f6
}

// Free invokes alloc map's free mechanism that cleanups any allocated memory using C free.
// Does nothing if struct is nil or has no allocation map.
func (x *DisplayPlaneProperties) Free() {
	if x != nil && x.allocsce3db3f6 != nil {
		x.allocsce3db3f6.(*cgoAllocMap).Free()
		x.refce3db3f6 = nil
	}
}

// NewDisplayPlanePropertiesRef creates a new wrapper struct with underlying reference set to the original C object.
// Returns nil if the provided pointer to C object is nil too.
func NewDisplayPlanePropertiesRef(ref unsafe.Pointer) *DisplayPlaneProperties {
	if ref == nil {
		return nil
	}
	obj := new(DisplayPlaneProperties)
	obj.refce3db3f6 = (*C.VkDisplayPlanePropertiesKHR)(unsafe.Pointer(ref))
	return obj
}

// PassRef returns the underlying C object, otherwise it will allocate one and set its values
// from this wrapping struct, counting allocations into an allocation map.
func (x *DisplayPlaneProperties) PassRef() (*C.VkDisplayPlanePropertiesKHR, *cgoAllocMap) {
	if x == nil {
		return nil, nil
	} else if x.refce3db3f6 != nil {
		return x.refce3db3f6, nil
	}
	memce3db3f6 := allocDisplayPlanePropertiesMemory(1)
	refce3db3f6 := (*C.VkDisplayPlanePropertiesKHR)(memce3db3f6)
	allocsce3db3f6 := new(cgoAllocMap)
	allocsce3db3f6.Add(memce3db3f6)

	var ccurrentDisplay_allocs *cgoAllocMap
	refce3db3f6.currentDisplay, ccurrentDisplay_allocs = *(*C.VkDisplayKHR)(unsafe.Pointer(&x.CurrentDisplay)), cgoAllocsUnknown
	allocsce3db3f6.Borrow(ccurrentDisplay_allocs)

	var ccurrentStackIndex_allocs *cgoAllocMap
	refce3db3f6.currentStackIndex, ccurrentStackIndex_allocs = (C.uint32_t)(x.CurrentStackIndex), cgoAllocsUnknown
	allocsce3db3f6.Borrow(ccurrentStackIndex_allocs)

	x.refce3db3f6 = refce3db3f6
	x.allocsce3db3f6 = allocsce3db3f6
	return refce3db3f6, allocsce3db3f6

}

// PassValue does the same as PassRef except that it will try to dereference the returned pointer.
func (x DisplayPlaneProperties) PassValue() (C.


> {
  final TextEditingController _titleController = TextEditingController();

  void searchNotes() {
    context.read<NotesBloc>().add(SearchEvent(_titleController.value.text));
  }

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

  void _handleBackwardPress() {
    final text = _titleController.text;
    if (text.isNotEmpty) {
      _titleController.text = text.substring(0, text.length - 1);
      _titleController.selection = TextSelection.fromPosition(
        TextPosition(offset: _titleController.text.length),
      );
      searchNotes();
    }
  }

  @override
  Widget build(BuildContext context) {
    return SizedBox(
      height: 56,
      width: 508,
      child: MechanixSearchBar(
        controller: _titleController,
        onChanged: (value) => searchNotes(),
        autoFocus: true,
        hintText: "Type Here",
        onBackwardIconPress: _handleBackwardPress,
        onCloseIconPress: () => _titleController.clear(),
      ),
    );
  }
}
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:mechanix_notes/src/commons/icons.dart';
import 'package:mechanix_notes/src/commons/notes_fab_icon.dart';
import 'package:mechanix_notes/src/features/home/bloc/notes_bloc.dart';
import 'package:mechanix_notes/src/features/home/bloc/notes_event.dart';
import 'package:widgets/mechanix.dart';
import 'package:widgets/widgets/floatingActionButton/mechanix_fab_items.dart';

class BottomMenu extends StatefulWidget {
  final bool isSelectionMode;
  final bool isPinnedSelected;
  final List<String> selectedNotes;
  // final VoidCallback onDelete;

  const BottomMenu({
    super.key,
    required this.isSelectionMode,
    required this.selectedNotes,
    required this.isPinnedSelected,
    // required this.onDelete,
  });

  @override
  State<BottomMenu> createState() => _BottomMenuState();
}

class _BottomMenuState extends State<BottomMenu> {
  final LayerLink tagLayer = LayerLink();

  void onDeleteRemoveSelection() {
    context.read<NotesBloc>().add(DeleteNotes(deleteIds: widget.selectedNotes));
    clearSelection();
  }

  void clearSelection() {
    context.read<NotesBloc>().add(ClearSelection());
  }

  @override
  Widget build(BuildContext context) {
    return SizedBox(
      width: 278,
      height: 52,
      child: MechanixFloatingActionMenu(
        height: 52,

        backgroundColor: const Color(0xFF48494B),
        items: [
          MechanixFabItem(
            iconSize: 24,
            iconWidget: NotesFabIcon(
              iconPath:
                  widget.isPinnedSelected
                      ? NotesIcon.unPinnedIcon
                      : NotesIcon.pinIcon,
            ),
            onTap: () {
              context.read<NotesBloc>().add(
                PinnedNotes(
                  noteIds: widget.selectedNotes,
                  isPinned: !widget.isPinnedSelected,
                ),
              );
            },
          ),

          MechanixFabItem(
            iconWidget: NotesFabIcon(iconPath: NotesIcon.deleteIcon),
            onTap: () => onDeleteRemoveSelection(),
          ),
          MechanixFabItem(
            onTap: () => clearSelection(),
            iconWidget: NotesFabIcon(iconPath: NotesIcon.clearSelectionIcon),
          ),
        ],
      ),
    );
  }
}
import 'dart:async';
import 'dart:io';

import 'package:


"ipAddress"],
                                     broker["port"]) for broker in brokers]
            websocket_brokers = response_dict.get("webSocketBrokers")
            if websocket_brokers:
                config.websocket_brokers = [Broker(broker["hostName"],
                                                   broker["guid"],
                                                   broker["ipAddress"],
                                                   broker["port"]) for broker in websocket_brokers]
        except Exception as ex:
            logger.error("Failed to process broker list. Message: %s", ex)
            raise

    def execute(self, args):
        # Prompt the user for any require server credential arguments which
        # were not specified on the command line.
        _prompt_server_args(args)

        config_file = os.path.join(args.config_dir, _DXL_CONFIG_FILE_NAME)

        if not os.path.isfile(config_file):
            raise Exception("Unable to find config file to update: {}".format(
                config_file))

        dxlconfig = DxlClientConfig.create_dxl_config_from_file(config_file)
        svc = ManagementService(args.host, args.port, args.user, args.password,
                                verify=args.truststore)

        self._update_broker_cert_chain(svc, dxlconfig.broker_ca_bundle)
        self._update_broker_config(svc, dxlconfig)

        logger.info("Updating DXL config file at %s", config_file)
        dxlconfig.write(config_file)


down/rsn/rsn50_coco_256x192-72ffe709_20201127.pth) | [log](https://download.openmmlab.com/mmpose/top_down/rsn/rsn50_coco_256x192_20201127.log.json) |
| [2xrsn_50](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/2xrsn50_coco_256x192.py) | 256x192 | 0.745 | 0.899 | 0.818 | 0.809 | 0.939 | [ckpt](https://download.openmmlab.com/mmpose/top_down/rsn/2xrsn50_coco_256x192-50648f0e_20201127.pth) | [log](https://download.openmmlab.com/mmpose/top_down/rsn/2xrsn50_coco_256x192_20201127.log.json) |
| [3xrsn_50](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/3xrsn50_coco_256x192.py) | 256x192 | 0.750 | 0.900 | 0.823 | 0.813 | 0.940 | [ckpt](https://download.openmmlab.com/mmpose/top_down/rsn/3xrsn50_coco_256x192-58f57a68_20201127.pth) | [log](https://download.openmmlab.com/mmpose/top_down/rsn/3xrsn50_coco_256x192_20201127.log.json) |

LiteHRNet (CVPR'2021)

```bibtex
@inproceedings{Yulitehrnet21,
  title={Lite-HRNet: A Lightweight High-Resolution Network},
  author={Yu, Changqian and Xiao, Bin and Gao, Changxin and Yuan, Lu and Zhang, Lei and Sang, Nong and Wang, Jingdong},
  booktitle={CVPR},
  year={2021}
}
```

COCO (ECCV'2014)

```bibtex
@inproceedings{lin2014microsoft,
  title={Microsoft coco: Common objects in context},
  author={Lin, Tsung-Yi and Maire, Michael and Belongie, Serge and Hays, James and Perona, Pietro and Ramanan, Deva and Doll{\'a}r, Piotr and Zitnick, C Lawrence},
  booktitle={European conference on computer vision},
  pages={740--755},
  year={2014},
  organization={Springer}
}
```

Results on COCO val2017 with detector having human AP of 56.4 on COCO val2017 dataset

| Arch  | Input Size | AP | AP50 | AP75 | AR | AR50 | ckpt | log |
| :----------------- | :-----------: | :------: | :------: | :------: | :------: | :------: |:------: |:------: |
| [LiteHRNet-18](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/litehrnet_18_coco_256x192.py)  | 256x192 | 0.643 | 0.868 | 0.720 | 0.706 | 0.912 | [ckpt](https://download.openmmlab.com/mmpose/top_down/litehrnet/litehrnet18_coco_256x192-6bace359_20211230.pth) | [log](


ва режима отображения: обычный и расширенный.
В обычном выводятся элементы: картинка, заголовок. В расширенном добавляется краткое описание новости. Режим отображения должен меняться по тапу на новость.

При выполнении задачи можно использовать сторонние библиотеки.

#### Задание 2: Графики

Реализовать приложение, отображающее график функции. Сверху поле ввода, кнопка перерисовки графика, снизу - сам график. В поле ввода могут быть введены только положительные числа, операции "+", "-", "*", символ "x", символ пробел. Если встречается некорректный символ, нужно показывать алерт с ошибкой. Выражение вводится со скобками, считается, что скобки расставлены верно.

**Примеры:**

- (3 * (2 + x))
- (x*x)

При выполнении задачи можно использовать только стандартные библиотеки.
# Наши процессы

#### Общие моменты
- [Рабочий распорядок](/processes/common/schedule.md)
- [Грейды разработчиков](/processes/common/grades.md)

#### Средства коммуникации
- [Работа со Slack](/processes/communication/slack.md)
- [Работа с Telegram](/processes/communication/telegram.md)

#### Разработка
- [Начало нового проекта](/processes/development/new-project.md)
- [Типовая структура проекта](/processes/development/project-structure.md)
- [Требования к мобильному API](/processes/development/api.md)
- [Передача дизайна](/processes/development/design.md)
- [Выполнение задачи](/processes/development/task.md)
- [Code style](/processes/development/code-style/code-style.md)
- [Документация](/processes/development/documentation.md)
- [Архитектурные подходы](/processes/development/architecture.md)
- [Правила работы с git](/processes/development/git.md)
- [Code review](/processes/development/code-review.md)

#### Автоматизация
- [Continuous integration](/processes/automation/continuous-integration/README.md)
- [Continuous delivery](/processes/automation/continuous-delivery/README.md)

#### Инструменты
- [Используемое ПО](/processes/instruments/instruments.md)
- [Используемые библиотеки](/processes/instruments/third-party-libraries.md)

#### Прочее
- [Работа с open-source](/processes/other/open-so


2cSB: CharArray

        init {
            for (i in b2cStr.indices) {
                if (b2cStr[i] == null) b2c[i] = DoubleByte.B2C_UNMAPPABLE
                else b2c[i] = b2cStr[i]!!.toCharArray()
            }
            b2cSB = b2cSBStr.toCharArray()
        }
    }

    object EncodeHolder {
        val c2b: CharArray = CharArray(0x7f00)
        val c2bIndex: CharArray = CharArray(0x100)

        init {
            val b2cNR =
                "\u0025\n\u454A\u5341\u454C\u5345\u4841\u4E00" +
                        "\u4845\u4E59\u4847\u4E8C\u4849\u4EBA\u484A\u513F" +
                        "\u484B\u5165\u484C\u516B\u4850\u51E0\u4851\u51F5" +
                        "\u4852\u5200\u4853\u529B\u4855\u5315\u4856\u531A" +
                        "\u4858\u5341\u4859\u535C\u485B\u5382\u485D\u53C8" +
                        "\u485E\u53E3\u485F\u56D7\u4860\u571F\u4861\u58EB" +
                        "\u4863\u5915\u4864\u5927\u4865\u5973\u4866\u5B50" +
                        "\u4868\u5BF8\u4869\u5C0F\u486A\u5C22\u486B\u5C38" +
                        "\u486C\u5C6E\u486D\u5C71\u486F\u5DE5\u4870\u5DF1" +
                        "\u4871\u5DFE\u4872\u5E72\u4876\u5EFE\u4877\u5F0B" +
                        "\u4878\u5F13\u487B\u5F73\u487C\u5FC3\u487D\u6208" +
                        "\u487E\u6236\u487F\u624B\u4881\u652F\u4883\u6587" +
                        "\u4884\u6597\u4885\u65A4\u4886\u65B9\u4888\u65E5" +
                        "\u4889\u66F0\u488A\u6708\u488B\u6728\u488C\u6B20" +
                        "\u488D\u6B62\u488E\u6B79\u488F\u6BB3\u4890\u6BCB" +
                        "\u4891\u6BD4\u4892\u6BDB\u4893\u6C0F\u4894\u6C14" +
                        "\u4895\u6C34\u4896\u706B\u4897\u722A\u4898\u7236" +
                        "\u4899\u723B\u489A\u723F\u489B\u7247\u489C\u7259" +
                        "\u489D\u725B\u489E\u72AC\u489F\u7384\u48A0\u7389" +
                        "\u48A1\u74DC\u48A2\u74E6\u48A3\u7518\u48A4\u751F" +
                        "\u48A5\u7528


[this.derniereCase[1]] = this.touchesClavierCodes.get(keyCode);
     }

      let envoyerRequeteServeur = (this.verifierSudoku() && this.grilleEstRemplie());
      if (envoyerRequeteServeur)
      {
           this.comparerGrilleAvecCorrige();
      }
      console.log(this.grilleAEnvoyer);
      console.log(this.grilleTrous);
  }

  grilleEstRemplie(): boolean{
    let grilleRemplie = true;
    for (let ligne of this.grilleAEnvoyer){
      if (ligne.indexOf(null) !== -1){
        grilleRemplie = false;
      }
    }
      return grilleRemplie;
  }

  lancerFinPartieEvenement(temps: Time): void{
    this.partieEstFinie.emit(temps);
  }

  detecterFinPartie(){
    this.terminerPartie = true;
  }

  comparerGrilleAvecCorrige(){
      this.grilleService.verifierGrilleEstCorrecte(this.grilleAEnvoyer).then((estCorrecte: boolean) => {
          if (estCorrecte){
            this.detecterFinPartie();
          }
      });
  }

  obtenirColone(tableau : number[][], col : number){
     let column: any = [];
       for (let i = 0; i < tableau.length; i++){
          column.push(tableau[i][col]);
       }
       return column;
    }

   obtenirBloc(tableau : number[][], ligne : number, col : number) : number[] {
     let ligneArrondi = Math.floor(ligne / 3);
     let colonneArrondi = Math.floor(col / 3);
     let positionDebutBlocLigne: number;
     let positionDebutBlocColonne: number;

     positionDebutBlocLigne = ligneArrondi * 3;
     positionDebutBlocColonne = colonneArrondi * 3;

     let bloc: number[] = [];
     for (let i = positionDebutBlocLigne; i < positionDebutBlocLigne + TAILLEBLOC; i++){
        for (let j = positionDebutBlocColonne; j < positionDebutBlocColonne + TAILLEBLOC; j++){
          bloc.push(tableau[i][j]);
        }
     }
     return bloc;
    }

    trouverPositionSousGrille(i: number, j: number): number {
        return (Math.floor(i / 3)) * 3 + Math.floor(j / 3);
    }

  verifierSudoku(): boolean{
     let verificateurSudoku = new VerificateurSudoku;
     let ligneEstValide = true;
     let colonneEstValide = true;
     let sousGrilleEstValide = true;
     ligneEstValide = verificateurSudoku.verifierBlocValide(this.grilleAEnvoyer[this.derniereCase[0]]);
     colonneEstValide = verificateurSudoku.verifierBlocValide(this.obtenirColone(
                                                        this.grilleAEnvoyer, this.derniereCase[1]));
     sousGrilleEstValide = verificateurSudoku.verifierBlocValide(this.obtenirBloc(
                                              this.grilleAEnvoyer, this.derniereCase[0], this.derniereCase[1]));

     if (!ligneEstValide){
       this.validiteLignes[this.derniereCase[0]] = ERRONNEE;
     }
     else{this.validiteLignes[this.derniereCase[0]] = VALIDE; }

     if (!colonneEstValide){


await NfceController.atualizarDadosNfce(chaveAcesso: _chaveAcesso, statusNota: '4'); // autorizada
    _operacao = 'IMPRIMIR_DANFE';
    _socket!.write('NFE.ImprimirDANFEPDF("'
                  + Sessao.configuracaoNfce!.caminhoSalvarXml!
                  + Biblioteca.formatarDataAAAAMM(DateTime.now())
                  + '\\NFCe\\'
                  + _chaveAcesso!
                  + '-nfe.xml")\r\n.\r\n');
  }

  void _fazerDownloadPdfDanfe() {
    _operacao = 'DOWNLOAD_DANFE';
    _socket!.write('ACBr.EncodeBase64("'
                  + Sessao.configuracaoNfce!.caminhoSalvarPdf!
                  + Biblioteca.formatarDataAAAAMM(DateTime.now())
                  + '\\NFCe\\'
                  + _chaveAcesso!
                  + '-nfe.pdf")\r\n.\r\n');
  }

  Future _tratarRetornoCancelamento() async {
    await NfceController.atualizarDadosNfce(chaveAcesso: _chaveAcesso, statusNota: '5', motivoCancelamento: _motivoCancelamento); // cancelada
    await _funcaoDeCallBack!();
    Sessao.abriuDialogBoxEspera = false;
    Sessao.fecharDialogBoxEspera(_context!);
  }

  void _exibirDanfeNaTela() {
    Sessao.abriuDialogBoxEspera = false;
    Sessao.fecharDialogBoxEspera(_context!);
    if (_contemEndOfText) {
      _funcaoDeCallBack!(_respostaServidor.substring(4, _respostaServidor.length - 1).trim());
    } else {
      _funcaoDeCallBack!(_respostaServidor.substring(4, _respostaServidor.length).trim());
    }
  }

  void _chamarCallbackInutilizarNumero() async {
    Sessao.abriuDialogBoxEspera = false;
    Sessao.fecharDialogBoxEspera(_context!);
    await _funcaoDeCallBack!();
  }

  void _exibirAlerta() {
    Sessao.abriuDialogBoxEspera = false;
    Sessao.fecharDialogBoxEspera(_context!);
    gerarDialogBoxErro(_context, 'Ocorreu um problema ao tentar realizar o procedimento: ' + _respostaServidor);
  }

  Future _tratarErroRetornado() async {
    // se a forma de emissão for 9, então já enviamos o comando para ENVIAR em contingência e ainda assim ocorreu um ERRO, qua vamos apenas mostrar na tela para o usuário
    if(_formaEmissao == '9') {
      Sessao.fecharDialogBoxEspera(_context!);
      Sessao.abriuDialogBoxEspera = false;
      gerarDialogBoxErro(_context, 'Ocorreu um problema ao tentar realizar o procedimento: ' + _respostaServidor);
    } else {
      if (
        _respostaServidor.contains('12002') ||    // TimeOut de Requisição - problemas com o servidor da sefaz
        _rejeicaoServidorFora                     // Rejeição 109 ou 999
      ) {
        if (_operacao == 'CANCELAR' || _operacao == 'TRANSMITIR_CONTINGENCIADA') {
          Sessao.fecharDialogBoxEspera(_context!);
          Sessao.abriuDialogBoxEspera = false;
          gerarDialogBoxErro(_context, 'Ocorreu um problema ao tentar realizar o procedimento: Servidor da SEFAZ está fora.');
        } else {
          if (NfceController.ufPermiteContingenciaOffLine(Sessao.empresa!.uf)) {
            debugPrint('=== PASSANDO O MODO DE EMISSAO PARA CONTINGENCIA');
            gerarDialogBoxConfirmacao(_context,
              'Deseja IMPRIMIR a nota em contingência? OBS: Imprima o DANFE em DUAS VIAS (uma para o consumidor e outra '
              'para ficar a disposição do Fisco no estabelecimento).',
              () async {
                if (await NfceController.gerarDadosNfceContingencia(chaveAcesso: _chaveAcesso)) {


::FOUR_BY_TWO);
const GOD_LEVEL_IMG: Rect = Rect::indexed(Point(0, 3), Rect::TWO_BY_TWO);

#[rustfmt::skip]
pub const BEGINNING_TUTORIAL: &[Screen] = &[
    Screen::new(PHEW_ICON, NO_IMG,
"Hello there! My name is Gloop and I'm
here to show you around. Use the ARROW
KEYS to move and the SPACEBAR to do
pretty much anything else",
    ),
    Screen::new(NORMAL_ICON, NO_IMG,
"I'll be waiting for you in level 0, so
follow me there! Press SPACE to enter the
level.",
    ),
];

#[rustfmt::skip]
pub const LEVEL_0_0_TUTORIAL: &[Screen] = &[
    Screen::new(NORMAL_ICON, COW_IMG,
"Helcome to the Logically Executed
Automatic Pasture! We have discovered
that COWs are happier when they're given
something to do.",
    ),
    Screen::new(PHEW_ICON, COW_IMG,
"Oh, did you think I said cow?
I Actually meant COW. That stands for
Carry On Walking. Our COW's will always
carry on walking. I guarantee it.",
    ),
    Screen::new(HMM_ICON, COW_IMG,
"Well I suppose all of our COWs happen
to be cows as well. Nothing can be done
about that I'm afraid.",
    ),
    Screen::new(NORMAL_ICON, COW_IMG,
"It's hard to say Logically Executed
Automatic Pasture. I like to say LEAP for
short. It's your job to make sure all of
our COWs do exactly what they are told
whilst in their pasture."
    ),
    Screen::new(NORMAL_ICON, COW_IMG,
"To make sure all of our COWs behave
correctly in the LEAP, we have used
BOWNDs"
    ),
    Screen::new(NORMAL_ICON, TIED_COW_IMG,
"BOWNDS are Bovine OWNership Devices. We
use them to allow one COW to control
another."
    ),
    Screen::new(PHEW_ICON, TIED_COW_IMG,
"Whoops, did I say BOWNDs?
I actually meant bounds. We just tie our
COWs together with rope. It's very high
tech, and three times cheaper.",
    ),
    Screen::new(INDICATE_ICON, RED_GREEN_IMG,
"Your aim is to get every COW into the
GREEN area without letting any COW reach
the RED area.",
    ),
    Screen::new(NORMAL_ICON, RED_GREEN_IMG,
"To do that use the arrow keys to move
and the SPACE bar to wait.",
    ),
    Screen::new(NORMAL_ICON, RED_GREEN_IMG,
"To see any of these tutorials again, you
can re-enter the level after you have
completed it.",
    ),
    Screen::new(NORMAL_ICON, RED_GREEN_IMG,
"Allright, That's enough training for now.
See if you can get some COWs walking!",
    ),
];

const ARROWS_IMG: Rect = Rect::indexed(Point(2, 1), Rect::FOUR_BY_TWO);

#[rustfmt::skip]
pub const LEVEL_0_1_TUTORIAL: &[Screen] = &[
    Screen::new(NORMAL_ICON, BROWN_COW_IMG,
"If a COW is not bound to another, then
it is said to be \"Not OWned\" or NOW for
short",
    ),
Screen::new(EXCITED_ICON, BROWN_COW_IMG,
"If a COW can OWN another COW it is said
to \"Have OWnership\" or HOW for short.",
    ),
    Screen::new(HMM_ICON, BROWN_COW_IMG,
"Brown cows are both not owned, and can
have ownership of other cows. In other
words: HOW NOW brown COW


 spans.
				// This is not an issue because we refresh before tracking their
				// spans.
				keybase := strings.Repeat("a", 1024)
				maxRefreshBytes := kvcoord.MaxTxnRefreshSpansBytes.Get(&s.ClusterSettings().SV)
				scanToExceed := int(maxRefreshBytes) / len(keybase)
				b := txn.NewBatch()
				// Hit the uncertainty error at the beginning of the batch.
				b.Get("a")
				for i := 0; i < scanToExceed; i++ {
					key := roachpb.Key(fmt.Sprintf("%s%10d", keybase, i))
					b.Scan(key, key.Next())
				}
				return txn.Run(ctx, b)
			},
			filter: newUncertaintyFilter(roachpb.Key([]byte("a"))),
			// Expect a transaction coord retry, which should succeed.
			txnCoordRetry: true,
		},
		{
			// Even if accounting for the refresh spans would have exhausted the
			// limit for tracking refresh spans and our transaction's timestamp
			// has been pushed, if we successfully commit then we won't hit an
			// error. This is the case even if the final batch itself causes a
			// no-op refresh because the txn has no refresh spans.
			name: "forwarded timestamp with too many refreshes in batch commit " +
				"with no-op refresh",
			refreshSpansCondenseFilter: disableCondensingRefreshSpans,
			afterTxnStart: func(ctx context.Context, db *kv.DB) error {
				_, err := db.Get(ctx, "a") // set ts cache
				return err
			},
			retryable: func(ctx context.Context, txn *kv.Txn) error {
				// Advance timestamp.
				if err := txn.Put(ctx, "a", "put"); err != nil {
					return err
				}
				// Make the final batch large enough such that if we accounted
				// for all of its spans then we would exceed the limit on
				// refresh spans. This is not an issue because we never need to
				// account for them. The txn has no refresh spans, so it can
				// forward its timestamp while committing.
				keybase := strings.Repeat("a", 1024)
				maxRefreshBytes := kvcoord.MaxTxnRefreshSpansBytes.Get(&s.ClusterSettings().SV)
				scanToExceed := int(maxRefreshBytes) / len(keybase)
				b := txn.NewBatch()
				for i := 0; i < scanToExceed; i++ {
					key := roachpb.Key(fmt.Sprintf("%s%10d", keybase, i))
					b.Scan(key, key.Next())
				}
				return txn.CommitInBatch(ctx, b)
			},
			txnCoordRetry: true,
		},
		{
			// Even if accounting for the refresh spans would have exhausted the
			// limit for tracking refresh spans and our transaction's timestamp
			// has been pushed, if we successfully commit then we won't hit an
			// error. This is the case even if the final batch itself causes a
			// real refresh.
			name: "forwarded timestamp with too many refreshes in batch commit " +
				"with refresh",
			refreshSpansCondenseFilter: disableCondensingRefreshSpans,
			afterTxnStart: func(ctx context.Context, db *kv.DB) error {
				_, err := db.Get(ctx, "a") // set ts cache
				return err
			},
			retryable: func(ctx context.Context, txn *kv.Txn) error {
				// Advance timestamp. This also creates a refresh span which
				// will prevent the txn from committing without a refresh.
				if err := txn.DelRange(ctx, "a", "b"); err


har_h},
	[40]	= {symbol['<'], ded_char_w, ded_char_h},
	[41]	= {symbol['>'], ded_char_w, ded_char_h},
	[42]	= {symbol['['], ded_char_w, ded_char_h},
	[43]	= {symbol[']'], ded_char_w, ded_char_h},
	[44]	= {symbol['+'], ded_char_w, ded_char_h},
	[45]	= {symbol['-'], ded_char_w, ded_char_h},
	[46]	= {symbol['*'], ded_char_w, ded_char_h},
	[47]	= {symbol['/'], ded_char_w, ded_char_h},
	[48]	= {symbol['='], ded_char_w, ded_char_h},
	[49]	= {symbol['$'], ded_char_w, ded_char_h},	-- degrees
	[50]	= {symbol['|'], ded_char_w, ded_char_h},
	[51]	= {latin['d'], ded_char_w, ded_char_h},	-- arrow down
	[52]	= {latin['u'], ded_char_w, ded_char_h},	-- arrow up
	[53]	= {symbol['.'], ded_char_w, ded_char_h},
	[54]	= {symbol[','], ded_char_w, ded_char_h},
	[55]	= {symbol['!'], ded_char_w, ded_char_h},
	[56]	= {symbol['?'], ded_char_w, ded_char_h},
	[57]	= {symbol[':'], ded_char_w, ded_char_h},
	[58]	= {symbol[';'], ded_char_w, ded_char_h},
	[59]	= {symbol['&'], ded_char_w, ded_char_h},
	[60]	= {symbol['_'], ded_char_w, ded_char_h},
	[61]	= {symbol['\''], ded_char_w, ded_char_h},
	[62]	= {symbol['"'], ded_char_w, ded_char_h},
	[63]	= {symbol['%'], ded_char_w, ded_char_h},
	[64]	= {symbol['#'], ded_char_w, ded_char_h},
	[65]	= {symbol['@'], ded_char_w, ded_char_h},
	[66]	= {symbol[' '], ded_char_w, ded_char_h},
	[67]	= {symbol[' '], ded_char_w, ded_char_h},
	[68]	= {symbol[' '], ded_char_w, ded_char_h},
	[69]	= {symbol[' '], ded_char_w, ded_char_h},
	[70]	= {symbol[' '], ded_char_w, ded_char_h},
	[71]	= {symbol[' '], ded_char_w, ded_char_h},
	[72]	= {symbol[' '], ded_char_w, ded_char_h},

    [73]	= {latin['A']+32, ded_char_w, ded_char_h},
	[74]	= {latin['B']+32, ded_char_w, ded_char_h},
	[75]	= {latin['C']+32, ded_char_w, ded_char_h},
	[76]	= {latin['D']+32, ded_char_w, ded_char_h},
	[77]	= {latin['E']+32, ded_char_w, ded_char_h},
	[78]	= {latin['F']+32, ded_char_w, ded_char_h},
	[79]	= {latin['G']+32, ded_


class Employee:
    a=1

class Programmer(Employee):
    b=2

class Manager(Programmer):
    c=3

# Employee cannot access b, because Employee has no idea about B but programmer can use A.
# Manager can use both A and B because of th hierarchical structure..
m = Manager()
print(m.a)


er)
	require.NoError(err)
	typedCosmos := deser.(*cosmostxinput.TxInput)
	require.NotNil(typedCosmos)
	expected := inputCosmos
	require.Equal(expected, typedCosmos)

	// Bitcoin
	inputBtc := bitcointxinput.NewTxInput()
	inputBtc.UnspentOutputs = []bitcointxinput.Output{
		{
			Outpoint: bitcointxinput.Outpoint{
				Index: 1,
			},
			Value: xc.NewAmountBlockchainFromUint64(100),
		},
		{
			Outpoint: bitcointxinput.Outpoint{
				Index: 2,
			},
			Value: xc.NewAmountBlockchainFromUint64(200),
		},
	}
	btcBz, err := drivers.MarshalTxInput(inputBtc)
	require.NoError(err)
	inputBtc2, err := drivers.UnmarshalTxInput(btcBz)
	require.NoError(err)

	require.Equal(inputBtc.UnspentOutputs[0].Value.String(), "100")
	require.Equal(inputBtc.UnspentOutputs[1].Value.String(), "200")
	require.EqualValues(inputBtc2.(*bitcointxinput.TxInput).UnspentOutputs[0].Outpoint.Index, 1)
	require.EqualValues(inputBtc2.(*bitcointxinput.TxInput).UnspentOutputs[1].Outpoint.Index, 2)
	require.Equal(inputBtc2.(*bitcointxinput.TxInput).UnspentOutputs[0].Value.String(), "100")
	require.Equal(inputBtc2.(*bitcointxinput.TxInput).UnspentOutputs[1].Value.String(), "200")
}
package telemetry

import (
	"context"
	"fmt"
	"log/slog"
	"net"
	"net/url"
	"os"
	"strings"
	"sync"
	"time"

	"go.opentelemetry.io/otel"
	"go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc"
	"go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp"
	"go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc"
	"go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp"
	"go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc"
	"go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp"
	"go.opentelemetry.io/otel/propagation"
	sdklog "go.opentelemetry.io/otel/sdk/log"
	sdkmetric "go.opentelemetry.io/otel/sdk/metric"
	"go.opentelemetry.io/otel/sdk/resource"
	sdktrace "go.opentelemetry.io/otel/sdk/trace"
	semconv "go.opentelemetry.io/otel/semconv/v1.24.0"
	"google.golang.org/grpc"
)

var (
	configuredSpanExporter     sdktrace.SpanExporter
	configuredSpanExporterOnce sync.Once
)

func ConfiguredSpanExporter(ctx context.Context) (sdktrace.SpanExporter, bool) {
	ctx = context.WithoutCancel(ctx)

	configuredSpanExporterOnce.Do(func() {
		var err error

		// handle protocol first so we can guess the full uri from a top-level OTLP endpoint
		var proto string
		if v := os.Getenv("OTEL_EXPORTER_OTLP_TRACES_PROTOCOL"); v != "" {
			proto = v
		} else if v := os.Getenv("OTEL_EXPORTER_OTLP_PROTOCOL"); v != "" {
			proto = v
		} else {
			// https://github.com/open


="#cite_ref-heister_54-1">b Heisterkamp, Friedrich; Tadeu Carneiro (2001). "Niobium: Future Possibilities – Technology and the Market Place" (PDF). In Minerals, Metals and Materials Society, Metals and Materials Society Minerals. Niobium Science & Technology: Proceedings of the International Symposium Niobium 2001 (Orlando, Florida, USA) (Niobium 2001 Ltd, 2002). ISBN 978-0-9712068-0-9.<span title="ctx_ver=Z39.88-2004&rfr_id=info%3Asid%2Fen.wikipedia.org%3ANiobium&rft.atitle=Niobium%3A+Future+Possibilities+%E2%80%93+Technology+and+the+Market+Place&rft.aufirst=Friedrich&rft.au=Heisterkamp%2C+Friedrich&rft.aulast=Heisterkamp&rft.date=2001&rft.genre=article&rft_id=http%3A%2F%2Fwww.cbmm.com.br%2Fportug%2Fsources%2Ftechlib%2Fscience_techno%2Ftable_content%2Fimages%2Fpdfs%2Fclosing.pdf&rft.isbn=978-0-9712068-0-9&rft.jtitle=Niobium+Science+%26+Technology%3A+Proceedings+of+the+International+Symposium+Niobium+2001+%28Orlando%2C+Florida%2C+USA%29&rft.pub=Niobium+2001+Ltd%2C+2002&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal" class="Z3988">  Cite uses deprecated parameters (help)

^ Eggert, Peter; Priem, Joachim; Wettig, Eberhard (1982). "Niobium: a steel additive with a future". Economic Bulletin 19 (9): 8–11. doi:10.1007/BF02227064.<span title="ctx_ver=Z39.88-2004&rfr_id=info%3Asid%2Fen.wikipedia.org%3ANiobium&


import pandas as pd
from src.handle_missing_values import (
    DropMissingValuesStrategy,
    FillMissingValuesStrategy,
    MissingValueHandler,
)
from zenml import step

@step
def handle_missing_values_step(df: pd.DataFrame, strategy: str = "mean") -> pd.DataFrame:
    """Handles missing values using MissingValueHandler and the specified strategy."""

    if strategy == "drop":
        handler = MissingValueHandler(DropMissingValuesStrategy(axis=0))
    elif strategy in ["mean", "median", "mode", "constant"]:
        handler = MissingValueHandler(FillMissingValuesStrategy(method=strategy))
    else:
        raise ValueError(f"Unsupported missing value handling strategy: {strategy}")

    cleaned_df = handler.handle_missing_values(df)
    return cleaned_df


.8438 210.6328 -6.0312 L209.5547 -6.1406 Q209.6641 -7.3594 210.3828 -7.9844 Q211.1172 -8.625 212.3516 -8.625 Q213.5859 -8.625 214.3047 -7.9375 Q215.0234 -7.25 215.0234 -6.2344 Q215.0234 -5.7188 214.8047 -5.2188 Q214.6016 -4.7344 214.1016 -4.1719 Q213.6172 -3.625 212.4922 -2.6719 Q211.5391 -1.875 211.2578 -1.5781 Q210.9922 -1.2969 210.8203 -1.0156 L215.0391 -1.0156 ZM218.2285 2.3906 L215.9004 2.3906 L215.9004 1.5156 L217.166 1.5156 L217.166 -7.7188 L215.9004 -7.7188 L215.9004 -8.5938 L218.2285 -8.5938 L218.2285 2.3906 Z" style="stroke:none; clip-path:url(#clipPath22_d959a4f7-1bcd-49b1-99b6-05406f5000de);"/></g><g style="font-family:sans-serif; text-rendering:optimizeLegibility;" transform="matrix(1.3333,0,0,1.3333,-120,92.7282) translate(235.4048,759.9697)"><path d="M0.8125 2.3906 L0.8125 -8.5938 L3.1406 -8.5938 L3.1406 -7.7188 L1.875 -7.7188 L1.875 1.5156 L3.1406 1.5156 L3.1406 2.3906 L0.8125 2.3906 ZM8.2871 -3.375 L8.2871 -4.375 L11.9121 -4.3906 L11.9121 -1.2031 Q11.084 -0.5312 10.1934 -0.1875 Q9.3027 0.1406 8.3652 0.1406 Q7.0996 0.1406 6.0527 -0.3906 Q5.0215 -0.9375 4.4902 -1.9531 Q3.9746 -2.9844 3.9746 -4.25 Q3.9746 -5.5156 4.4902 -6.5938 Q5.0215 -7.6875 6.0059 -8.2031 Q6.9902 -8.7344 8.2715 -8.7344 Q9.209 -8.7344 9.959 -8.4375 Q10.709 -8.1406 11.1309 -7.5938 Q11.5684 -7.0625 11.7871 -6.1875 L10.7715 -5.9062 Q10.5684 -6.5625 10.2715 -6.9375 Q9.9902 -7.3125 9.459 -7.5312 Q8.9277 -7.7656 8.2871 -7.7656 Q7.5059 -7.7656 6.9277 -7.5312 Q6.3652 -7.2969 6.0059 -6.9062 Q5.6621 -6.5156 5.4746 -6.0469 Q5.1465 -5.25 5.1465 -4.3281 Q5.1465 -3.1719 5.5371 -2.3906 Q5.9434 -1.625 6.6934 -1.25 Q7.4434 -0.875 8.3027 -0.875 Q9.0371 -0.875 9.7402 -1.1562 Q10.4434 -1.4531 10.8027 -1.7656 L10.8027 -3.375 L8.2871 -3.375 ZM17.5273 -0.7656 Q16.9336 -0.2656 16.3867 -0.0625 Q15.8555 0.1406 15.2305 0.1406 Q14.1992 0.1406 13.6523


jsonStr2);
    let keysOb1  = Object.keys(jsonOb1);
    let keysOb2  = Object.keys(jsonOb2);
    let matchedArr:KeyValuePair[] = new Array();
    let conflictArr:KeyValuePair[] = new Array();
    let extraValuesArr:KeyValuePair[] = new Array();
    if(keysOb1 && keysOb1.length>0 && keysOb2 && keysOb2.length>0)
    {
        for(let entry of keysOb1)
        {
           if(jsonOb1[entry]===jsonOb2[entry]){
            matchedArr.push(new KeyValuePair(entry,jsonOb1[entry]));
           }
           else if(jsonOb2[entry] !== undefined)
           {
                let arr = [jsonOb1[entry],jsonOb2[entry]];
                conflictArr.push(new KeyValuePair(entry,arr));
           }
           else{
               //let arr = [jsonOb1[entry],jsonOb2[entry]];
               extraValuesArr.push(new KeyValuePair(entry,jsonOb1[entry]));
               //conflictArr.push(new KeyValuePair(entry,jsonOb2[entry]));

           }
        }

        var excessInKey2 = keysOb2.filter(function(key){
            return keysOb1.indexOf(key) === -1;
        });

       // console.log(excessInKey2);

        if(excessInKey2 && excessInKey2.length>0)
        {
            for(let key of excessInKey2)
            {
                extraValuesArr.push(new KeyValuePair(key,jsonOb2[key]));
            }
        }

    }
    let result = new ResultJson(matchedArr,conflictArr,extraValuesArr);
    //console.log(result);

    //console.log(extraValuesArr);
    return JSON.stringify(result);

}
/**
 * Demonstrates delayed event queueing.
 *
 * For more information, see https://github.com/regal/regal.
 */

import { on, enqueue } from "regal";

const hitGround = (item: string) =>
    on(`HIT GROUND <${item}>`, game => {
        game.output.write(`${item} hits the ground. Thud!`);
    });

const fall = (item: string) =>
    on(`FALL <${item}>`, game => {
        game.output.write(`${item} falls.`);
        return enqueue(hitGround(item));
    });

const drop = on("DROP ITEMS", game => {
        let q = enqueue();
        for (let item of game.state.items) {
            q = q.enqueue(fall(item));
        }
        return q;
    });

const prepDelay = on("PREP DELAY", game => {
    game.state.items = ["Hat", "Duck", "Spoon"];
});

export default prepDelay.then(drop);import * as path from "path";
const jetpack = require("fs-jetpack");

/**
 * Finds the directory of the parent module's package descriptor file. If the
 * directory is undefined (the default case), then it is set to the directory
 * name of the parent module's filename. If no package.json file is found, then
 * the parent directories are recursively searched until the file is found or
 * the root directory is reached.
 * https://gist.github.com/fhellwig/3355047
 */
export async function findPackageDir(directory: string): Promise<string> {
    const packageFile = path.resolve(directory, "package.json");
    const type = await jetpack.existsAsync(packageFile);
    if (type === "file") {
        return directory;
    }

    const parent = path.resolve(directory, "..");
    if (parent === directory) {
        throw new Error("Parent module package file was not found.");
    }

    return await findPackageDir(parent);
}
import crea


Checksum)
	// Write compression metadata
	binary.Write(buf, ByteOrder, cf.header.DefaultCompression)
	binary.Write(buf, ByteOrder, cf.header.LeafCompression)
	binary.Write(buf, ByteOrder, cf.header.InternalCompression)
	binary.Write(buf, ByteOrder, cf.header.StringCompression)
	binary.Write(buf, ByteOrder, cf.header.BitmapCompression)
	binary.Write(buf, ByteOrder, cf.header.CompressionLevel)
	binary.Write(buf, ByteOrder, cf.header.CompressionFlags)
	binary.Write(buf, ByteOrder, cf.header.DeletedBitmapOffset)

	// Also write column metadata page IDs after the header
	// For now, we know metadata starts at page 1
	binary.Write(buf, ByteOrder, uint64(1)) // First metadata page

	headerPage.Header.DataSize = uint32(buf.Len())
	return cf.pageManager.WritePage(headerPage)
}

// readHeader reads the file header
func (cf *ColumnarFile) readHeader() error {
	headerPage, err := cf.pageManager.ReadPage(0)
	if err != nil {
		return err
	}

	if headerPage.Header.PageType != PageTypeFileHeader {
		return ErrInvalidPageType
	}

	buf := bytes.NewReader(headerPage.Data[:])
	cf.header = &FileHeader{}

	// Read header fields
	binary.Read(buf, ByteOrder, &cf.header.MagicNumber)
	binary.Read(buf, ByteOrder, &cf.header.MajorVersion)
	binary.Read(buf, ByteOrder, &cf.header.MinorVersion)
	binary.Read(buf, ByteOrder, &cf.header.FileSize)
	binary.Read(buf, ByteOrder, &cf.header.PageSize)
	binary.Read(buf, ByteOrder, &cf.header.RowCount)
	binary.Read(buf, ByteOrder, &cf.header.ColumnCount)
	binary.Read(buf, ByteOrder, &cf.header.MetadataOffset)
	binary.Read(buf, ByteOrder, &cf.header.PageDirectoryOffset)
	binary.Read(buf, ByteOrder, &cf.header.ValueStorageOffset)
	binary.Read(buf, ByteOrder, &cf.header.CreationTimestamp)
	binary.Read(buf, ByteOrder, &cf.header.TotalPages)
	binary.Read(buf, ByteOrder, &cf.header.CompressionType)
	binary.Read(buf, ByteOrder, &cf.header.HeaderChecksum)
	// Read compression metadata (may not exist in older files)
	if buf.Len() >= 7 { // Check if we have compression metadata
		binary.Read(buf, ByteOrder, &cf.header.DefaultCompression)
		binary.Read(buf, ByteOrder, &cf.header.LeafCompression)
		binary.Read(buf, ByteOrder, &cf.header.InternalCompression)
		binary.Read(buf, ByteOrder, &cf.header.StringCompression)
		binary.Read(buf, ByteOrder, &cf.header.BitmapCompression)
		binary.Read(buf, ByteOrder, &cf.header.CompressionLevel)
		binary.Read(buf, ByteOrder, &cf.header.CompressionFlags)

		// Read deleted bitmap offset (may not exist in older files)
		if buf.Len() >= 8 {
			binary.Read(buf, ByteOrder, &cf.header.DeletedBitmapOffset)
		}
	}

	// Validate magic number
	if cf.header.MagicNumber != MagicNumber {
		return ErrInvalidMagicNumber
	}

	// Validate version
	if cf.header.MajorVersion != MajorVersion {
		return ErrInvalidVersion
	}

	return nil
}

// writeColumnMetadata writes column metadata
func (cf *ColumnarFile) writeColumnMetadata() error {
	// Store metadata page IDs for each column
	metadataPageIDs := make(map[string]uint64)

	// Don't hardcode page IDs - let the page manager allocate them
	for _, colName := range cf.columnOrder {
		col := cf


   startTime();
  }

  @override
  Widget build(BuildContext context) {
    return Text(getTx(), style: tx14.copyWith(color: Colors.white));
  }

  @override
  void dispose() {
    time.cancel();
    super.dispose();
  }
}
import 'package:experiments_with_web/bloc_example/api/github.api.dart';
import 'package:experiments_with_web/bloc_example/bloc/search.bloc.dart';
import 'package:experiments_with_web/bloc_example/bloc/states.bloc.dart';

import 'package:flutter_test/flutter_test.dart';
import 'package:mockito/mockito.dart';

import 'package:test/test.dart' show TypeMatcher;

class MockGithubSearchImpl extends Mock implements GithubApi {}

void main() {
  SearchBloc searchBloc;
  MockGithubSearchImpl mockGithubSearch;

  setUp(() {
    mockGithubSearch = MockGithubSearchImpl();
    searchBloc = SearchBloc(mockGithubSearch);
  });

  tearDown(() {
    searchBloc?.dispose();
  });

  group('Search bloc', () {
    test('throws AssertionError if contract is null', () {
      expect(
        () => SearchBloc(null),
        throwsA(isAssertionError),
      );
    });

    test('initial state should be NoTerm', () async {
      await expectLater(searchBloc.state, emitsInOrder([noTerm]));
    });

    test('hardcoded empty term', () async {
      expect(searchBloc.state, emitsInOrder([noTerm, empty]));
      searchBloc.onTextChanged.add('');

      /// OR

      // scheduleMicrotask(() {
      //   searchBloc.onTextChanged.add('');
      // });

      // expect(
      //   searchBloc.state,
      //   emitsInOrder([noTerm, empty]),
      // );
    });

    test('api returns results', () async {
      final term = 'aseem';

      when(searchBloc.api.search(term)).thenAnswer((_) async {
        return SearchResult([SearchResultItem('aseem wangoo', 'xyz', 'abc')]);
      });

      expect(searchBloc.state, emitsInOrder([noTerm, loading, populated]));
      searchBloc.onTextChanged.add(term);
    });

    test('emit empty state if no results', () async {
      final term = 'aseem';

      when(searchBloc.api.search(term)).thenAnswer(
        (_) async => SearchResult([]),
      );

      expect(searchBloc.state, emitsInOrder([noTerm, loading, empty]));
      searchBloc.onTextChanged.add(term);
    });

    test('emit error state if API is down', () async {
      final term = 'aseem';

      when(searchBloc.api.search(term)).thenThrow(Exception());

      expect(searchBloc.state, emitsInOrder([noTerm, loading, error]));
      searchBloc.onTextChanged.add(term);
    });

    test('stream is closed', () async {
      when(searchBloc.dispose());

      expect(searchBloc.state, emitsInOrder([noTerm, emitsDone]));
    });
  });
}

const noTerm = TypeMatcher<SearchNoTerm>();
const loading = TypeMatcher<SearchLoading>();
const empty = TypeMatcher<SearchEmpty>();
const populated = TypeMatcher<SearchPopulated>();
const error = TypeMatcher<SearchError>();

// Run the test
// flutter test test/bloc_example/search_bloc_test.dart
// https://github.com/ResoCoder/flutter-tdd-clean-architecture-course/tree/master/test/features/number_trivia/presentation/bloc
// https://medium.com/flutter-community/unit-testing-with-bloc-b94de9655d86


::random_dna(len);
            let dna = DnaString::from_bytes(&dna);

            // use lexicographic ordering
            let scanner = Scanner::new(&dna, score, k);
            let slices = scanner.scan();
            check_msp_slices(k, &dna, slices, score);

            // use AT count ordering
            let at_score = |p: &P| p.at_count() as usize;
            let scanner = Scanner::new(&dna, at_score, k);
            let slices = scanner.scan();
            check_msp_slices(k, &dna, slices, at_score);
        }

        for i in 0..(4 * k) {
            let len = i;
            if len < k {
                continue;
            }

            let dna = DnaString::blank(i);

            let scanner = Scanner::new(&dna, score, k);
            let slices = scanner.scan();
            check_msp_slices(k, &dna, slices, score);
        }
    }

    #[test]
    fn test_msp_scanner() {
        for k in 16..64 {
            test_new_slicer::<Kmer5>(k);
            test_new_slicer::<Kmer8>(k);
            test_new_slicer::<Kmer10>(k);
            test_new_slicer::<Kmer12>(k);
            test_new_slicer::<Kmer14>(k);
            test_new_slicer::<Kmer15>(k);
            test_new_slicer::<Kmer16>(k);
        }
    }

    #[test]
    fn test_sample() {
        // for testing MSP on specific error cases

        // let v1 : Vec<u8> = vec![3, 0, 3, 0, 3, 2, 3, 1, 0, 0, 2, 0, 0, 1, 1, 3, 0, 2, 0, 3, 2, 3, 3, 1, 2, 0, 2, 2, 3, 1, 0, 1, 2, 1, 2, 3, 2, 1, 0, 2, 1, 0, 2, 2, 1, 0, 2, 3, 0, 3, 2, 3, 0, 2, 0, 0, 1, 0, 2, 3, 1, 3, 2, 0, 2, 2, 2, 2, 1, 2, 0, 2, 1, 0, 0, 1, 3, 0, 0, 0, 2, 2, 3, 0, 0, 3, 2, 3, 1, 2, 0, 2, 0, 3, 2, 1, 3, 2, 2, 3, 3, 1, 2, 3, 0, 3, 1, 1, 2, 2, 2, 3, 1, 1, 2, 0, 2, 3, 3, 2, 0, 3, 1, 1, 1, 1, 3, 3, 3, 0, 1, 0, 0, 3, 0, 2, 3, 2, 2, 2, 3, 2, 3, 1, 0, 2, 3, 0, 2, 2, 2, 1, 0, 2, 3, 3, 3, 2, 2, 1, 3, 1, 0, 2, 0, 1, 0, 1, 2, 2, 2, 2, 2, 3, 0, 3, 3,


Print(this, &printout, true))
    {
        if (wxPrinter::GetLastError() == wxPRINTER_ERROR)
        {
            wxMessageBox( _("There was a problem with printing.\n"
                            "Perhaps your current printer is not correctly setup?"),
                          _("Print error"), wxOK|wxICON_ERROR, this);
            return false;
        }
    }

    *printData = printer.GetPrintDialogData().GetPrintData();
    return true;
#endif //STE_USE_HTML_PRINT
}

bool wxSTEditor::ShowPrintPreviewDialog()
{
#if STE_USE_HTML_PRINT
    wxHtmlEasyPrinting htmlPrint(wxT("Preview document"));
    *htmlPrint.GetPrintData()     = *wxSTEditorPrintout::GetPrintData(true);
    *htmlPrint.GetPageSetupData() = *wxSTEditorPrintout::GetPageSetupData(true);
    wxSTEditorExporter steExport(this);
    bool ret = htmlPrint.PreviewText(steExport.RenderAsHTML());
    if (ret)
    {
        *wxSTEditorPrintout::GetPrintData(true)     = *htmlPrint.GetPrintData();
        *wxSTEditorPrintout::GetPageSetupData(true) = *htmlPrint.GetPageSetupData();
    }
    return ret;

#else //!STE_USE_HTML_PRINT
    wxPrintData *printData = wxSTEditorPrintout::GetPrintData(true);

    wxPrintDialogData printDialogData( *printData );
    wxPrintPreview *preview = new wxPrintPreview(new wxSTEditorPrintout(this),
                                                 new wxSTEditorPrintout(this),
                                                 &printDialogData);
    if (!preview->Ok())
    {
        delete preview;
        wxMessageBox( _("There was a problem with previewing.\n"
                        "Perhaps your current printer is not correctly setup?"),
                      _("Preview error"), wxOK|wxICON_ERROR, this);
        return false;
    }

#if wxCHECK_VERSION(2,5,0)
    wxPreviewFrame *frame = new wxPreviewFrame(preview, this, _("Print Preview"));
#else
    // The wxPreviewFrame wants a wxFrame as a parent in 2.4.x
    wxFrame *previewParent = NULL;
    wxWindow *parent = GetParent();

    while (parent)
    {
        if (wxDynamicCast(parent, wxFrame) != NULL)
        {
            previewParent = wxDynamicCast(parent, wxFrame);
            break;
        }

        parent = parent->GetParent();
    }

    wxPreviewFrame *frame = new wxPreviewFrame(preview, previewParent, _("Print Preview"));
#endif // wxCHECK_VERSION(2,5,0)

    wxRect rect = wxGetClientDisplayRect();
    rect.Intersect(wxRect(rect.x, rect.y, 600, 700));
    rect.Deflate(20,20);
    frame->SetSize(rect);

    frame->Centre(wxBOTH);
    frame->Initialize();
    frame->Show(true);
    return true;
#endif //STE_USE_HTML_PRINT
}

bool wxSTEditor::ShowPrintSetupDialog()
{
    wxPrintData *printData = wxSTEditorPrintout::GetPrintData(true);

    // Nah, these are separate things
    //if (GetEditorPrefs().Ok())
    //    printData->SetColour(GetEditorPrefs().GetPrefInt(STE_PREF_PRINTCOLOURMODE) != wxSTC_PRINT_BLACKONWHITE);

    wxPrintDialogData printDialogData(*printData);
    wxPrintDialog printerDialog(this, &printDialogData);

#if !wxCHECK_VERSION(2,6,3)
    printerDialog.GetPrintDialogData().SetSetupDialog(true);
#endif //!wxCHECK_VERSION(2,7,0)

    int ret = printerDialog.ShowModal();

    if (ret != wxID_CANCEL)
    {
        *printData = p