  }

        public async Task Save(IFileSystem fileSystem, UPath savePath, SaveContext saveContext)
        {
            Stream fileStream = await fileSystem.OpenFileAsync(savePath, FileMode.Create, FileAccess.Write);

            switch (_version)
            {
                case FontVersion.V1:
                    _fontv1.Save(_characters, fileStream, fileSystem, savePath.GetDirectory());
                    break;

                case FontVersion.V2:
                    _fontv2.Save(_characters, fileStream, fileSystem, savePath.GetDirectory());
                    break;

                default:
                    throw new InvalidOperationException($"Invalid font version {_version}.");
            }
        }

        private bool IsContentChanged()
        {
            return _characters.Any(x => x.ContentChanged);
        }

        public CharacterInfo CreateCharacterInfo(char codePoint)
        {
            return new CharacterInfo
            {
                CodePoint = codePoint,
                BoundingBox = new Size(15, 15),
                GlyphPosition = Point.Empty
            };
        }

        public bool AddCharacter(CharacterInfo characterInfo)
        {
            _characters.Add(characterInfo);
            return true;
        }

        public bool RemoveCharacter(CharacterInfo characterInfo)
        {
            return _characters.Remove(characterInfo);
        }

        public void RemoveAll()
        {
            _characters.Clear();
        }
    }
}


）
                var validResults = entry.Value.Skip(1).ToList();
                if (validResults.Count > 0)
                {
                    double avgEncryptTime = validResults.Average(r => r.CompressEncryptTime);
                    double avgDecryptTime = validResults.Average(r => r.DecryptDecompressTime);
                    double avgRatio = validResults.Average(r => r.CompressRatio);

                    // 计算速度 (MB/s)
                    double encSpeed = dataSize / 1024.0 / 1024.0 / (avgEncryptTime / 1000.0);
                    double decSpeed = dataSize / 1024.0 / 1024.0 / (avgDecryptTime / 1000.0);

                    summaryResults.Add((entry.Key, avgEncryptTime, avgDecryptTime, avgRatio, encSpeed, decSpeed));
                }
            }

            // 按加密+压缩速度排序
            foreach (var result in summaryResults.OrderByDescending(r => r.EncSpeed))
            {
                report.AppendLine($"| {result.Combo,-10} | {result.EncryptTime,-14:F2} | {result.DecryptTime,-14:F2} | {result.Ratio,-6:P2} | {result.EncSpeed,-21:F2} | {result.DecSpeed,-21:F2} |");
            }

            // 保存报告
            string reportPath = Path.Combine(Directory.GetCurrentDirectory(), "压缩加密组合性能测试报告.md");
            File.WriteAllText(reportPath, report.ToString(), Encoding.UTF8);

            Console.WriteLine($"压缩加密组合性能报告已保存至: {reportPath}");
            Assert.True(File.Exists(reportPath));
        }

        /// <summary>
        /// 生成具有一定可压缩性的随机数据
        /// </summary>
        /// <param name="size">数据大小（字节）</param>
        /// <returns>随机生成的数据</returns>
        private byte[] GenerateCompressibleData(int size)
        {
            byte[] data = new byte[size];
            Random random = new Random(42); // 使用固定种子以确保结果可复现

            // 创建一些重复模式以增加压缩率
            byte[] pattern = new byte[1024];
            random.NextBytes(pattern);

            for (int i = 0; i < size; i++)
            {
                // 70%的数据使用重复模式，30%完全随机
                if (random.NextDouble() < 0.7)
                {
                    data[i] = pattern[i % pattern.Length];
                }
                else
                {
                    data[i] = (byte)random.Next(256);
                }
            }

            return data;
        }
    }

    /// <summary>
    /// 测试加密算法性能
    /// </summary>
    public class EncryptionPerformanceTests : BaseTests
    {
        [Fact]
        public void TestEncryptionPerformance()
        {
            // 配置测试参数
            int[] sizes = { 1 * 1024 * 1024, 5 * 1024 * 1024, 10 * 1024 * 1024, 20 * 1024 * 1024 };
            int iterations = 3;
            var algorithms = new Dictionary<string, Func<byte[], string, byte[]>>
            {
                ["AES256-GCM"] = (data, key) => EncryptionHelper.EncryptWithAES256GCM(data, key),
                ["ChaCha20-Poly1305"] = (data, key) => EncryptionHelper.EncryptWithChaCha20Poly1305(data, key)
            };

            var decryptionAlgorithms = new Dictionary<string, Func<byte[], string, byte[]>>
            {
                ["AES256-GCM"] = (data, key) => EncryptionHelper.DecryptWithAES256GCM(data, key),
                ["ChaCha20-Poly1305"] = (data, key) => EncryptionHelper.DecryptWithChaCha20Poly1305(data, key)
            };

            string encryptionKey


parser)
    }
}

struct ArrayMapDeserializer<'d, 'de, 'sig, 'f, B>(ArrayDeserializer<'d, 'de, 'sig, 'f, B>);

impl<'d, 'de, 'sig, 'f, B> MapAccess<'de> for ArrayMapDeserializer<'d, 'de, 'sig, 'f, B>
where
    B: byteorder::ByteOrder,
{
    type Error = Error;

    fn next_key_seed<K>(&mut self, seed: K) -> Result<Option<K::Value>>
    where
        K: DeserializeSeed<'de>,
    {
        let sig_parser = self.0.de.0.sig_parser.clone();
        self.0.next_element(seed, sig_parser)
    }

    fn next_value_seed<V>(&mut self, seed: V) -> Result<V::Value>
    where
        V: DeserializeSeed<'de>,
    {
        let mut sig_parser = self.0.de.0.sig_parser.clone();
        // Skip key signature (always 1 char)
        sig_parser.skip_char()?;
        self.0.next(seed, sig_parser)
    }
}

#[derive(Debug)]
struct StructureDeserializer<'d, 'de, 'sig, 'f, B> {
    de: &'d mut Deserializer<'de, 'sig, 'f, B>,
}

impl<'d, 'de, 'sig, 'f, B> SeqAccess<'de> for StructureDeserializer<'d, 'de, 'sig, 'f, B>
where
    B: byteorder::ByteOrder,
{
    type Error = Error;

    fn next_element_seed<T>(&mut self, seed: T) -> Result<Option<T::Value>>
    where
        T: DeserializeSeed<'de>,
    {
        let v = seed.deserialize(&mut *self.de).map(Some);

        if self.de.0.sig_parser.next_char() == STRUCT_SIG_END_CHAR {
            // Last item in the struct
            self.de.0.sig_parser.skip_char()?;
        }

        v
    }
}

#[derive(Debug)]
struct ValueDeserializer<'d, 'de, 'sig, 'f, B> {
    de: &'d mut Deserializer<'de, 'sig, 'f, B>,
    stage: ValueParseStage,
    sig_start: usize,
}

impl<'d, 'de, 'sig, 'f, B> ValueDeserializer<'d, 'de, 'sig, 'f, B>
where
    B: byteorder::ByteOrder,
{
    fn new(de: &'d mut Deserializer<'de, 'sig, 'f, B>) -> Self {
        let sig_start = de.0.pos;
        ValueDeserializer::<B> {
            de,
            stage: ValueParseStage::Signature,
            sig_start,
        }
    }
}

impl<'d, 'de, 'sig, 'f, B> SeqAccess<'de> for ValueDeserializer<'d, 'de, 'sig, 'f, B>
where
    B: byteorder::ByteOrder,
{
    type Error = Error;

    fn next_element_seed<T>(&mut self, seed: T) -> Result<Option<T::Value>>
    where
        T: DeserializeSeed<'de>,
    {
        match self.stage {
            ValueParseStage::Signature => {
                self.stage = ValueParseStage::Value;

                seed.deserialize(&mut *self.de).map(Some)
            }
            ValueParseStage::Value => {
                self.stage = ValueParseStage::Done;

                let sig_len = self.de.0.bytes[self.sig_start] as usize;
                // skip length byte
                let sig_start = self.sig_start + 1;
                let sig_end = sig_start + sig_len;
                // Skip trailing nul byte
                let value_start = sig_end + 1;

                let slice = &self.de.0.bytes[sig_start..sig_end];


",
		"4. negyedév"
	],
	"field-weekOfMonth-narrow": "hónap hete",
	"dateFormatItem-y": "y.",
	"field-minute-relative+0": "ebben a percben",
	"field-year-short-relative+0": "ez az év",
	"dateFormatItem-EBhms": "E B h:mm:ss",
	"field-year-short-relative+1": "következő év",
	"field-weekday": "hét napja",
	"dayPeriods-format-narrow-pm": "du.",
	"field-tue-narrow-relative+-1": "előző kedd",
	"dateFormatItem-yMEd": "y. MM. dd., E",
	"dayPeriods-standAlone-wide-night1": "éjjel",
	"dayPeriods-standAlone-wide-night2": "hajnal",
	"field-year-narrow-relative+-1": "előző év",
	"field-sat-relative+-1": "előző szombat",
	"dayPeriods-format-abbr-midnight": "éjfél",
	"dayPeriods-format-narrow-morning1": "reggel",
	"dayPeriods-format-narrow-morning2": "de.",
	"dayPeriods-format-wide-morning1": "reggel",
	"dayPeriods-format-wide-morning2": "délelőtt",
	"dayPeriods-standAlone-abbr-midnight": "éjfél",
	"dayPeriods-standAlone-narrow-pm": "du.",
	"dayPeriods-standAlone-wide-morning1": "reggel",
	"field-mon-narrow-relative+0": "ez a hétfő",
	"dayPeriods-standAlone-wide-morning2": "délelőtt",
	"field-mon-narrow-relative+1": "következő hétfő",
	"field-second": "másodperc",
	"dateFormatItem-yMMMEd": "y. MMM d., E",
	"field-year-relative+-1": "előző év",
	"field-weekdayOfMonth-short": "hónap hétköznapja",
	"dateFormat-short": "y. MM. dd.",
	"eraNames": [
		"Krisztus előtt",
		"időszámításunk szerint"
	],
	"field-second-short": "másodperc",
	"field-thu-short-relative+-1": "előző csütörtök",
	"field-zone": "időzóna",
	"field-dayperiod-narrow": "napszak",
	"field-sun-short-relative+-1": "előző vasárnap",
	"dayPeriods-standAlone-narrow-morning1": "reggel",
	"dayPeriods-standAlone-narrow-morning2": "de.",
	"eraAbbr": [
		"i. e.",
		"i. sz."
	],
	"field-week-short": "hét",
	"dayPeriods-standAlone-abbr-am": "de.",
	"dayPeriods-standAlone-wide-pm": "du.",
	"dateFormatItem-ms": "mm:ss",
	"field-day-relative+0": "ma",
	"field-day-relative+1": "holnap",
	"field-day-relative+2": "holnapután",
	"field-day-short-relative+0": "ma",
	"field-dayOfYear-short": "év napja",
	"field-day-short-relative+1": "holnap",
	"dateFormat-long": "y. MM


untangleVerticallyButton, untangleHorizontallyButton);

        }

        private static ImageSource RetriveImage(string imagePath)
        {
            Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(imagePath);

            switch (imagePath.Substring(imagePath.Length - 3))
            {
                case "jpg":
                    var jpgDecoder = new System.Windows.Media.Imaging.JpegBitmapDecoder(stream, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.Default);
                    return jpgDecoder.Frames[0];
                case "bmp":
                    var bmpDecoder = new System.Windows.Media.Imaging.BmpBitmapDecoder(stream, Bit


);
        tcod.root.print_ex(
            constants::gui::SCREEN_WIDTH / 2,
            constants::gui::SCREEN_HEIGHT / 2 - 4,
            BackgroundFlag::None,
            TextAlignment::Center,
            constants::GAME_TITLE,
        );
        tcod.root.print_ex(
            constants::gui::SCREEN_WIDTH / 2,
            constants::gui::SCREEN_HEIGHT - 2,
            BackgroundFlag::None,
            TextAlignment::Center,
            main::AUTHOR_LINE,
        );

        // show options and wait for the players choice
        let choices = &[main::NEW_GAME, main::CONTINUE, main::QUIT];
        let choice = menu(
            main::MENU_NO_HEADER,
            choices,
            main::START_MENU_WIDTH,
            &mut tcod,
        );

        match choice {
            Some(0) => {
                // new game
                let (objects, mut game) = new_game(tcod);
                play_game(objects, &mut game, tcod);
            }
            Some(1) => match load_game() {
                Ok((objects, mut game)) => {
                    initialize_fov(&game, tcod);
                    play_game(objects, &mut game, tcod);
                }
                Err(_e) => {
                    msgbox("\nNo saved game to load.\n", 24, &mut tcod);
                    continue;
                }
            },
            Some(2) => {
                // quit
                break;
            }
            _ => {}
        }
    }
}

fn msgbox(text: &str, width: i32, mut tcod: &mut Tcod) {
    let options: &[&str] = &[];
    menu(text, options, width, &mut tcod);
}

fn save_game(objects: &[GameObject], game: &Game) -> Result<(), Box<Error>> {
    let save_data = serde_json::to_string(&(objects, game))?;
    let mut file = File::create(constants::SAVE_FILE_NAME)?;
    file.write_all(save_data.as_bytes())?;
    Ok(())
}

fn load_game() -> Result<(Vec<GameObject>, Game), Box<Error>> {
    let mut json_save_state = String::new();
    let mut file = File::open(constants::SAVE_FILE_NAME)?;
    file.read_to_string(&mut json_save_state)?;
    let result = serde_json::from_str::<(Vec<GameObject>, Game)>(&json_save_state)?;
    Ok(result)
}

fn main() {
    let root = Root::initializer()
        .font(constants::FONT_PATH, FontLayout::Tcod)
        .font_type(FontType::Greyscale)
        .size(constants::gui::SCREEN_WIDTH, constants::gui::SCREEN_HEIGHT)
        .title(constants::gui::menus::main::GAME_CONSOLE_HEADER)
        .init();

    tcod::system::set_fps(LIMIT_FPS);

    let mut tcod = Tcod {
        root,
        con: Offscreen::new(constants::gui::MAP_WIDTH, constants::gui::MAP_HEIGHT),
        panel: Offscreen::new(constants::gui::SCREEN_WIDTH, constants::gui::PANEL_HEIGHT),
        fov: FovMap::new(constants::gui::MAP_WIDTH, constants::gui::MAP_HEIGHT),
        mouse: Default::default(),
    };

    main_menu(&mut tcod);
}
use bytes::{BufMut, BytesMut};
use nom::AsBytes;

use crate::utils::bytes::double_hex_to_bytes;

use super::ObjectMode;

// tree <content length><NUL><file mode> <filen


ct string
	SourceImage        string
	DebSrcs            []string
}

func installCuttlefishDebs(project, zone, insName string, debSrcs []string) error {
	dstSrcs := []string{}
	for _, src := range debSrcs {
		dst := "/tmp/" + filepath.Base(src)
		dstSrcs = append(dstSrcs, dst)
		if err := gce.UploadFile(project, zone, insName, src, dst); err != nil {
			return fmt.Errorf("error uploading %s: %v", src, err)
		}
	}
	list := []struct {
		dstname string
		content string
	}{
		{"fill_available_disk_space.sh", scripts.FillAvailableDiskSpace},
		{"mount_attached_disk.sh", scripts.MountAttachedDisk},
		{"install.sh", scripts.InstallCuttlefishPackages},
	}
	for _, s := range list {
		if err := gce.UploadBashScript(project, zone, insName, s.dstname, s.content); err != nil {
			return fmt.Errorf("error uploading bash script: %v", err)
		}
	}
	args := strings.Join(dstSrcs, " ")
	if err := gce.RunCmd(project, zone, insName, "./install.sh "+args); err != nil {
		return err
	}
	return nil
}

func cleanupDeleteDisk(h *gce.GceHelper, disk string) {
	log.Printf("cleanup: deleting disk %q...", disk)
	if err := h.DeleteDisk(disk); err != nil {
		log.Printf("cleanup: error deleting disk: %v", err)
	} else {
		log.Println("cleanup: disk deleted")
	}
}

func cleanupDeleteInstance(h *gce.GceHelper, ins string) {
	log.Printf("cleanup: deleting instance %q...", ins)
	if err := h.DeleteInstance(ins); err != nil {
		log.Printf("cleanup: error deleting instance: %v", err)
	} else {
		log.Println("cleanup: instance deleted")
	}
}

func cleanupDetachDisk(h *gce.GceHelper, ins, disk string) {
	log.Printf("cleanup: detaching disk %q from instance %q...", ins, disk)
	if err := h.DetachDisk(ins, disk); err != nil {
		log.Printf("cleanup: error detaching disk: %v", err)
	} else {
		log.Println("cleanup: disk detached")
	}
}

func amendImageMain(project, zone string, opts amendImageOpts) error {
	h, err := gce.NewGceHelper(project, zone)
	if err != nil {
		return fmt.Errorf("failed to create GCE helper: %w", err)
	}
	insName := outImageName
	attachedDiskName := fmt.Sprintf("%s-attached-disk", insName)

	log.Println("creating disk...")
	createDiskOpts := gce.CreateDiskOpts{SizeGb: 32}
	_, err = h.CreateDisk(
		opts.SourceImageProject, opts.SourceImage, attachedDiskName, createDiskOpts)
	if err != nil {
		return fmt.Errorf("failed to create disk: %w", err)
	}
	log.Printf("disk created: %q", attachedDiskName)
	defer cleanupDeleteDisk(h, attachedDiskName)

	log.Println("creating instance...")
	_, err = h.CreateInstance(insName)
	if err != nil {
		return fmt.Errorf("failed to create instance: %w", err)
	}
	log.Printf("instance created: %q", insName)
	defer cleanupDeleteInstance(h, insName)

	log.Println("attaching disk...")
	if err := h.AttachDisk(insName, attachedDiskName); err != nil {
		log.Fatalf("failed to attach disk %q to instance %q: %v", attachedDiskName, insName, err)
	}
	log.Println("disk attached")
	defer cleanupDetachDisk


maximum fractional units
        res_frac_units = MAX_FRAC_UNITS;
    }
    let liu = lhs.intg_units();
    let lfu = lhs.frac_units();
    let riu = rhs.intg_units();
    let rfu = rhs.frac_units();
    // because result fractional part may be truncated, we need to calculate
    // how many units has to be shifted and can be ignored in calculation.
    // 1. If lhsIdx + rhsIdx - shiftUnits < -1, we can ignore the result
    //    of left.lsu[lhsIdx]*right.lsu[rhsIdx].
    // 2. If lhsIdx + rhsIdx - shiftUnits = -1, we need to take care of the
    //    carry and add to result.lsu[0].
    // 3. If lhsIdx + rhsIdx - shiftUnits >= 0, follow normal calcuation.
    let shift_units = (lfu + rfu - res_frac_units) as isize;
    let mut carry: i64 = 0;
    // let mut res_idx: isize = 0;
    for (rhs_idx, rv) in rhs.lsu[..(riu + rfu) as usize].iter().enumerate() {
        let mut res_idx = -1;
        for (lhs_idx, lv) in lhs.lsu[..(liu + lfu) as usize].iter().enumerate() {
            res_idx = (lhs_idx + rhs_idx) as isize - shift_units;
            if res_idx < -1 {
                continue;
            }
            if res_idx == -1 {
                let v = (*lv as i64) * (*rv as i64);
                if v < UNIT as i64 {
                    continue;
                }
                carry = v / UNIT as i64; // we only need the carry for lsu of result
                continue;
            }
            // calculate product and sum with previous result and carry
            let v = *lv as i64 * *rv as i64 + res.lsu[res_idx as usize] as i64 + carry;
            carry = v / UNIT as i64;
            res.lsu[res_idx as usize] = (v - carry * UNIT as i64) as i32;
        }
        debug_assert!(res_idx >= 0);
        if res_idx + 1 < MAX_UNITS as isize {
            res.lsu[(res_idx + 1) as usize] = carry as i32;
        } else if carry > 0 {
            return Err(Error::Overflow);
        }
        carry = 0
    }
    res.frac = res_frac_digits.min((res_frac_units * DIGITS_PER_UNIT) as i8);
    res.intg = (res_intg_units * DIGITS_PER_UNIT) as i8;
    Ok(())
}

/// Divides two decimals' absolute values.
/// It's implementation of Knuth's Algorithm 4.3.1 D, with support on fractional numbers.
#[allow(clippy::many_single_char_names)]
fn div_abs(
    lhs: &FixedDecimal,
    rhs: &FixedDecimal,
    res: &mut FixedDecimal,
    mut incr_frac: isize,
) -> Result<()> {
    res.set_zero(); // always clear result first
    let lhs_intg = lhs.intg();
    let liu = get_units(lhs_intg);
    let lhs_frac = lhs.frac();
    let lfu = get_units(lhs_frac);
    let lhs_ext_frac = (lfu * DIGITS_PER_UNIT) as isize; // extended frac with unit size
    let rhs_intg = rhs.intg();
    let riu = get_units(rhs_intg);
    let rhs_frac = rhs.frac();
    let rfu = get_units(rhs_frac);
    let rhs_ext_frac


       "@botkube help",
			ClusterName: "foo",
			Filter:      "",
		},
		{
			Name:        "Whitespace",
			Input:       "@botkube help --cluster-name foo",
			Cmd:         "@botkube help",
			ClusterName: "foo",
			Filter:      "",
		},
		{
			Name:        "Combination",
			Input:       "@botkube help --cluster-name \"foo1\"",
			Cmd:         "@botkube help",
			ClusterName: "foo1",
			Filter:      "",
		},
		{
			Name:        "Kubectl",
			Input:       "@botkube kc get po --cluster-name foo -n default",
			Cmd:         "@botkube kc get po -n default",
			ClusterName: "foo",
			Filter:      "",
		},
		{
			Name:        "Remove empty cluster name with equals sign",
			Input:       "@botkube help --cluster-name=",
			Cmd:         "@botkube help",
			ClusterName: "",
			Filter:      "",
		},
		{
			Name:        "Combination cluster name and filter",
			Input:       "@botkube help --cluster-name \"foo1\" --filter=api",
			Cmd:         "@botkube help",
			ClusterName: "foo1",
			Filter:      "api",
		},
		{
			Name:        "Combination cluster name and filter + quotes",
			Input:       "@botkube help --cluster-name \"foo1\" --filter=\"api\"",
			Cmd:         "@botkube help",
			ClusterName: "foo1",
			Filter:      "api",
		},
		{
			Name:        "Extract double quoted text filter with special characters",
			Input:       `@botkube help --cluster-name="api" --filter="botkube.   . [] *?   ^  ===== /test/"`,
			Cmd:         "@botkube help",
			ClusterName: "api",
			Filter:      "botkube.   . [] *?   ^  ===== /test/",
		},
		{
			Name:        "Extract double quoted text filter with a file path",
			Input:       `@botkube help --cluster-name="api" --filter="=./Users/botkube/somefile.txt [info]"`,
			Cmd:         "@botkube help",
			ClusterName: "api",
			Filter:      "=./Users/botkube/somefile.txt [info]",
		},
		{
			Name:        "Handle even number of single quotes with text filter and cluster name extraction",
			Input:       `@botkube ai I'm not sure if it's what's best for us, but let's give it a try.   --cluster-name='api' --filter="=./Users/botkube/somefile.txt"`,
			Cmd:         `@botkube ai I'm not sure if it's what's best for us, but let's give it a try.  `,
			ClusterName: "api",
			Filter:      "=./Users/botkube/somefile.txt",
		},
		{
			Name:        "Handle odd number of single quotes with text filter and cluster name extraction",
			Input:       `@botkube ai are there any failing pods? It's what's been keeping me energized lately  --cluster-name='api' --filter="=./Users/botkube/somefile.txt"`,
			Cmd:         `@botkube ai are there any failing pods? It's what's been keeping me energized lately `,
			ClusterName: "api",
			Filter:      "=./Users/botkube/somefile.txt",
		},
	}
	for _, tc := range testCases {
		t.Run(tc.Name, func(t *testing.T) {
			p, err := ParseFlags(tc.Input)
			require.NoError(t


H_ = null;
        }
        return mCKHNMONINHBuilder_;
      }

      private emu.grasscutter.net.proto.GCGZoneOuterClass.GCGZone cAMJHCAMMIM_;
      private com.google.protobuf.SingleFieldBuilderV3<
          emu.grasscutter.net.proto.GCGZoneOuterClass.GCGZone, emu.grasscutter.net.proto.GCGZoneOuterClass.GCGZone.Builder, emu.grasscutter.net.proto.GCGZoneOuterClass.GCGZoneOrBuilder> cAMJHCAMMIMBuilder_;
      /**
       * .GCGZone CAMJHCAMMIM = 10;
       * @return Whether the cAMJHCAMMIM field is set.
       */
      public boolean hasCAMJHCAMMIM() {
        return cAMJHCAMMIMBuilder_ != null || cAMJHCAMMIM_ != null;
      }
      /**
       * .GCGZone CAMJHCAMMIM = 10;
       * @return The cAMJHCAMMIM.
       */
      public emu.grasscutter.net.proto.GCGZoneOuterClass.GCGZone getCAMJHCAMMIM() {
        if (cAMJHCAMMIMBuilder_ == null) {
          return cAMJHCAMMIM_ == null ? emu.grasscutter.net.proto.GCGZoneOuterClass.GCGZone.getDefaultInstance() : cAMJHCAMMIM_;
        } else {
          return cAMJHCAMMIMBuilder_.getMessage();
        }
      }
      /**
       * .GCGZone CAMJHCAMMIM = 10;
       */
      public Builder setCAMJHCAMMIM(emu.grasscutter.net.proto.GCGZoneOuterClass.GCGZone value) {
        if (cAMJHCAMMIMBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          cAMJHCAMMIM_ = value;
          onChanged();
        } else {
          cAMJHCAMMIMBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .GCGZone CAMJHCAMMIM = 10;
       */
      public Builder setCAMJHCAMMIM(
          emu.grasscutter.net.proto.GCGZoneOuterClass.GCGZone.Builder builderForValue) {
        if (cAMJHCAMMIMBuilder_ == null) {
          cAMJHCAMMIM_ = builderForValue.build();
          onChanged();
        } else {
          cAMJHCAMMIMBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .GCGZone CAMJHCAMMIM = 10;
       */
      public Builder mergeCAMJHCAMMIM(emu.grasscutter.net.proto.GCGZoneOuterClass.GCGZone value) {
        if (cAMJHCAMMIMBuilder_ == null) {
          if (cAMJHCAMMIM_ != null) {
            cAMJHCAMMIM_ =
              emu.grasscutter.net.proto.GCGZoneOuterClass.GCGZone.newBuilder(cAMJHCAMMIM_).mergeFrom(value).buildPartial();
          } else {
            cAMJHCAMMIM_ = value;
          }
          onChanged();
        } else {
          cAMJHCAMMIMBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .GCGZone CAMJHCAMMIM = 10;
       */
      public Builder clearCAMJHCAMMIM() {
        if (cAMJHCAMMIMBuilder_ == null) {
          cAMJHCAMMIM_ = null;
          onChanged();
        } else {
          cAMJHCAMMIM_ = null;
          cAMJHCAMMIMBuilder_ = null;


 .save_mem = {dst_field.offset, dst_field.type, dst_swap}}
            );
        } else if (is_set(dst_field.flags, DataStruct::Flags::default_)) {
            // Set default value.
            code.push_back({.type = Op::Type::load_imm, .reg = 0, .load_imm = {dst_field.default_value}});
            code.push_back({.type = Op::Type::cast, .reg = 0, .cast = {DataStruct::Type::float64, dst_field.type}});
            code.push_back(
                {.type = Op::Type::save_mem, .reg = 0, .save_mem = {dst_field.offset, dst_field.type, dst_swap}}
            );
        } else {
            SGL_THROW("Field \"{}\" not found in source struct.", dst_field.name);
        }
    }

    return code;
}

/// Interface for conversion programs.
struct Program {
    virtual ~Program() = default;
    virtual void execute(const void* src, void* dst, size_t count) const = 0;
};

/// Conversion program for the virtual machine.
struct VMProgram : public Program {
    std::vector<Op> code;
    size_t src_size;
    size_t dst_size;

    void execute(const void* src, void* dst, size_t count) const override
    {
        VM vm;
        vm.src = static_cast<const uint8_t*>(src);
        vm.dst = static_cast<uint8_t*>(dst);

        for (size_t i = 0; i < count; ++i) {
            vm.run(code);
            vm.src += src_size;
            vm.dst += dst_size;
        }
    }

    static std::unique_ptr<Program> compile(const DataStruct& src_struct, const DataStruct& dst_struct)
    {
        auto program = std::make_unique<VMProgram>();
        program->code = generate_code(src_struct, dst_struct);
        program->src_size = src_struct.size();
        program->dst_size = dst_struct.size();
        return program;
    }
};

#if SGL_HAS_ASMJIT

/// Conversion program running just-in-time compiled X86 code.
struct X86Program : public Program {
    using ConvertFunc = void (*)(const void* src, void* dst, size_t count);

    ConvertFunc func;

    void execute(const void* src, void* dst, size_t count) const override { func(src, dst, count); }

    static std::unique_ptr<Program> compile(const DataStruct& src_struct, const DataStruct& dst_struct)
    {
        asmjit::CodeHolder code;
        code.init(runtime().environment(), runtime().cpuFeatures());

#if SGL_LOG_JIT_ASSEMBLY
        log_info("Compiling x86 program for converting from {} to {}", src_struct.to_string(), dst_struct.to_string());
        asmjit::StringLogger logger;
        logger.setFlags(asmjit::FormatFlags::kMachineCode);
        code.setLogger(&logger);
#endif
        asmjit::x86::Compiler c(&code);

        Builder builder(c);
        builder.build(src_struct, dst_struct);

        asmjit::Error err = c.finalize();
        if (err != asmjit::kErrorOk) {
            SGL_THROW("AsmJit failed: {}", asmjit::DebugUtils::errorAsString(err));
        }

#if SGL_LOG_JIT_ASSEMBLY
        log_info(logger.content().data());
#endif

        ConvertFunc func;
        runtime().add(&func, &code);

        auto program = std::make_unique<X86Program>();
        program->func = func;
        return program;
    }

private:
    /// Helper class to build X86 co


/*******************************************************************************
 *  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
 *  Licensed under the Apache License, Version 2.0 (the "License"). You may not use
 *  this file except in compliance with the License. A copy of the License is located at
 *
 *  http://aws.amazon.com/apache2.0
 *
 *  or in the "license" file accompanying this file.
 *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
 *  CONDITIONS OF ANY KIND, either express or implied. See the License for the
 *  specific language governing permissions and limitations under the License.
 * *****************************************************************************
 *
 *  AWS Tools for Windows (TM) PowerShell (TM)
 *
 */

using System;
using System.Collections.Generic;
using System.Linq;
using System.Management.Automation;
using System.Text;
using Amazon.PowerShell.Common;
using Amazon.Runtime;
using System.Threading;
using Amazon.IoTSiteWise;
using Amazon.IoTSiteWise.Model;

#pragma warning disable CS0618, CS0612
namespace Amazon.PowerShell.Cmdlets.IOTSW
{
    /// <summary>
    /// Retrieves information about a project.
    /// </summary>
    [Cmdlet("Get", "IOTSWProject")]
    [OutputType("Amazon.IoTSiteWise.Model.DescribeProjectResponse")]
    [AWSCmdlet("Calls the AWS IoT SiteWise DescribeProject API operation.", Operation = new[] {"DescribeProject"}, SelectReturnType = typeof(Amazon.IoTSiteWise.Model.DescribeProjectResponse))]
    [AWSCmdletOutput("Amazon.IoTSiteWise.Model.DescribeProjectResponse",
        "This cmdlet returns an Amazon.IoTSiteWise.Model.DescribeProjectResponse object containing multiple properties."
    )]
    public partial class GetIOTSWProjectCmdlet : AmazonIoTSiteWiseClientCmdlet, IExecutor
    {

        protected override bool IsGeneratedCmdlet { get; set; } = true;
        private readonly CancellationTokenSource _cancellationTokenSource = new CancellationTokenSource();

        #region Parameter ProjectId
        /// <summary>
        /// <para>
        /// <para>The ID of the project.</para>
        /// </para>
        /// </summary>
        #if !MODULAR
        [System.Management.Automation.Parameter(Position = 0, ValueFromPipelineByPropertyName = true, ValueFromPipeline = true)]
        #else
        [System.Management.Automation.Parameter(Position = 0, ValueFromPipelineByPropertyName = true, ValueFromPipeline = true, Mandatory = true)]
        [System.Management.Automation.AllowEmptyString]
        [System.Management.Automation.AllowNull]
        #endif
        [Amazon.PowerShell.Common.AWSRequiredParameter]
        public System.String ProjectId { get; set; }
        #endregion

        #region Parameter Select
        /// <summary>
        /// Use the -Select parameter to control the cmdlet output. The default value is '*'.
        /// Specifying -Select '*' will result in the cmdlet returning the whole service response (Amazon.IoTSiteWise.Model.DescribeProjectResponse).
        /// Specifying the name of a property of type Amazon.IoTSiteWise.Model.DescribeProjectResponse will result in that property being returned.
        /// Specifying -Select '^ParameterName' will result in the cmdlet returning the selected cmdlet parameter value.
        /// </summary>
        [System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
        public string Select { get; set; } = "*";
        #endregion

        protected override void StopProcessing()
        {
            base.StopProcessing();
            _cancellationTokenSource.Cancel();
        }
        protected override void ProcessRecord()
        {
            base.ProcessRecord();

            var context = new CmdletContext();

            // allow for


ramq != null))
    {
      localcr.a(null);
      localcr.j(paramq);
      localcr.a(E);
    }
  }

  private void a(Thread paramThread)
  {
    aI();
    com.estrongs.android.pop.utils.ad.d();
    Object localObject;
    if (com.estrongs.android.pop.utils.cl.a())
    {
      av = com.estrongs.android.ui.pcs.u.a();
      localObject = k.af();
      if (localObject != null)
      {
        if (!"pcs_temp_mode".equals(k.ae())) {
          break label120;
        }
        av.a(2);
      }
    }
    int i2;
    for (;;)
    {
      av.a((String)localObject);
      T();
      i2 = -1;
      if (au().c() != 0) {
        break label569;
      }
      aJ();
      i1 = 0;
      while (i1 < au().c())
      {
        au().c(i1).a(true);
        i1 += 1;
      }
      label120:
      av.a(1);
    }
    int i1 = -1;
    for (;;)
    {
      i2 = i1;
      if (i1 < 0) {
        if (au().a() <= 0) {
          break label1091;
        }
      }
      label560:
      label569:
      label976:
      label1079:
      label1085:
      label1091:
      for (i2 = au().a();; i2 = 0)
      {
        if ((i2 >= 0) && (i2 < au().c()))
        {
          h.setCurrentScreen(i2);
          aL.f(i2);
          localObject = au().c(i2);
          if (localObject != null) {
            E.a(((com.estrongs.android.ui.d.h)localObject).a(), true);
          }
        }
        if (com.estrongs.android.util.ap.bk(P())) {
          com.estrongs.android.pop.app.f.a.a().c();
        }
        localObject = O();
        if ((localObject != null) && ((localObject instanceof com.estrongs.android.pop.app.diskusage.h))) {
          ((com.estrongs.android.view.cr)localObject).l();
        }
        aZ();
        if (!com.estrongs.android.pop.ad.a(this).Y())
        {
          com.estrongs.android.pop.ad.a(this).Z();
          com.estrongs.android.pop.ad.a(this).i(true);
        }
        aF();
        aE();
        localObject = getIntent().getStringExtra("archive_file_name");
        if (localObject != null) {
          if (bg.o((String)localObject))
          {
            com.estrongs.io.archive.sevenzip.f.a(new v(this, (String)localObject), com.estrongs.io.archive.sevenzip.f.a);
            if ((!com.estrongs.android.pop.z.ai) && (!cu.d(this)))
            {
              if ((!t) && (!u)) {
                break label976;
              }
              if (k.ao())
              {
                localObject = O();
                if ((localObject == null) || (!(localObject instanceof com.estrongs.android.ui.c.e))) {
                  break label1085;
                }
              }
            }
          }
        }
        for (boolean bool = false;; bool


е",
	"tool.continue new checkbox":  "Флажок продолжить создание",
	"tool.reset button":           "Кнопка сброса",
	"tool.back button":            "Кнопка назад",
	"tool.generate":               "Сгенерировать",
	"tool.generated tables":       "Сгенерированные таблицы",
	"tool.description":            "Описание",
	"tool.label":                  "Метка",
	"tool.image":                  "Изображение",
	"tool.bool":                   "Логическое значение",
	"tool.link":                   "Ссылка",
	"tool.fileSize":               "Размер файла",
	"tool.date":                   "Дата",
	"tool.icon":                   "Иконка",
	"tool.dot":                    "Точка",
	"tool.progressBar":            "Индикатор выполнения",
	"tool.loading":                "Загрузка",
	"tool.downLoadable":           "Можно скачать",
	"tool.copyable":               "Можно копировать",
	"tool.carousel":               "Карусель",
	"tool.qrcode":                 "QR-код",
	"tool.field hide":             "Скрыть поле",
	"tool.field display":          "Отобразить поле",
	"tool.table permission":       "Сгенерировать права доступа",
	"tool.extra code":             "Дополнительный код",
	//
	"tool.field display normal":     "Обычный",
	"tool.field diplay hide":        "Скрыт",
	"tool.field diplay edit hide":   "Скрыть при редактировании",
	"tool.field diplay create hide": "Скрыть при создании",

	"tool.generate table model success": "Успешно сгенерирована модель таблицы",
	"tool.generate table model fail":    "Не удалось сгенерировать модель таблицы",

	"tool.detail display":             "Отображение деталей",
	"tool.detail info":                "Информация о деталях",
	"tool.follow list page":           "Следовать за страницей списка",
	"tool.inherit from list page":     "Наследовать от страницы списка",
	"tool.independent from list page": "Независимо от страницы списка",

	"generator.query":                 "Запрос",
	"generator.show edit form page":   "Показать страницу формы редактирования",
	"generator.show create form page": "Показать страницу формы создания",
	"generator.edit":                  "Редактировать",
	"generator.create":                "Создать",
	"generator.delete":                "Удалить",
	"generator.export":                "Экспортировать",

	"plugin.plugin":                         "Плагин",
	"plugin.plugin detail":                  "Детали плагина",
	"plugin.introduction":                   "Введение",
	"plugin.website":                        "Веб-сайт",
	"plugin.version":                        "Версия",
	"plugin.created at":                     "Дата создания",
	"plugin.updated at":                     "Дата обновления",


ff80ab}.mdui-theme-layout-auto.mdui-theme-accent-purple .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon{background-color:rgba(234,128,252,.5)}.mdui-theme-layout-auto.mdui-theme-accent-purple .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon::before{background-color:#ea80fc}.mdui-theme-layout-auto.mdui-theme-accent-red .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon{background-color:rgba(255,138,128,.5)}.mdui-theme-layout-auto.mdui-theme-accent-red .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon::before{background-color:#ff8a80}.mdui-theme-layout-auto.mdui-theme-accent-teal .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon{background-color:rgba(167,255,235,.5)}.mdui-theme-layout-auto.mdui-theme-accent-teal .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon::before{background-color:#a7ffeb}.mdui-theme-layout-auto.mdui-theme-accent-yellow .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon{background-color:rgba(255,255,141,.5)}.mdui-theme-layout-auto.mdui-theme-accent-yellow .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon::before{background-color:#ffff8d}.mdui-theme-layout-auto .mdui-switch input[type=checkbox]:focus+.mdui-switch-icon::before,.mdui-theme-layout-auto .mdui-switch:active input[type=checkbox]+.mdui-switch-icon::before{-webkit-box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12),0 0 0 15px rgba(255,255,255,.1);box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12),0 0 0 15px rgba(255,255,255,.1)}.mdui-theme-layout-auto .mdui-switch input[type=checkbox]:disabled+.mdui-switch-icon{background-color:rgba(255,255,255,.1)!important}.mdui-theme-layout-auto .mdui-switch input[type=checkbox]:disabled+.mdui-switch-icon::before{background-color:#424242!important}}.mdui-slider{position:relative;display:block;width:100%;height:36px}.mdui-slider input[type=range]{position:absolute;top:50%;z-index:2;width:100%;height:20px;margin-top:-10px;cursor:pointer;opacity:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.mdui-slider-fill,.mdui-slider-track{position:absolute;top:50%;-webkit-box-sizing:border-box;box-sizing:border-box;height:2px;margin-top:-1px}.mdui-slider-fill::before,.mdui-slider-track::before{display:block;width:100%;height:100%;content:' '}.mdui-slider-track{right:0}.mdui-slider-track::before{background-color:#bdbdbd;-webkit-transition:background-color .3s cubic-bezier(.4,0,.2,1);transition:ba


message-container .message-list .message-item {
	margin-top: 20px;
	border-bottom: 1px solid #EEEEEE;
}

.message-container .message-list .message-item .username-container {
	font-size: 18px;
}

.message-container .message-list .message-item .username-container .avator {
	width: 60px;
	height: 60px;
	border-radius: 50%;
}

.message-container .message-list .message-item .content {
	margin: 10px;
}

.message-container .message-list .message-item .replay {
	background: #EEEEEE;
	margin: 10px;
	padding: 20px;
	border-radius: 20px;
}

/* 论坛 */
.forum-container {
	width: 980px;
	margin: 0 auto;
	text-align: center;
}

.forum-container .forum-list {
	text-align: left;
	margin-top: 20px;
}

.forum-container .forum-list .forum-item {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 20px;
	border-bottom: 3px dotted #EEEEEE;
	border-top: 3px dotted #EEEEEE;
}

.forum-container .forum-list .forum-item.line {
	background: #EEEEEE;
}

.forum-container .forum-list .forum-item .h2 {
	font-size: 14px;
}

.forum-container .forum-list .forum-item .create-time {
	font-size: 14px;
}

.forum-container {
	margin-top: 20px;
}

.forum-container .title {
	font-size: 22px;
	font-weight: bold;
}

.forum-container .content {
	width: 980px;
	margin: 0 auto;
	text-align: left;
	margin-top: 30px;
	font-size: 16px;
	line-height: 30px;
}

.forum-container .auth-container {
	margin-top: 20px;
	color: #888888;
	border-bottom: 1px dotted #888888;
	padding-bottom: 20px;
}

.forum-container .bottom-container {
	display: flex;
	justify-content: space-between;
	width: 980px;
	margin: 0 auto;
	background: #EEEEEE;
	height: 60px;
	line-height: 60px;
	margin-top: 30px;
}

.forum-container .bottom-container .title {
	margin-left: 30px;
	font-size: 20px;
	color: #515151;
}

.forum-container .bottom-container .btn {
	font-size: 20px;
	padding: 0 20px;
}

.forum-container .message-list {
	text-align: left;
}

.forum-container .message-list .message-item {
	margin-top: 20px;
	border-bottom: 1px solid #EEEEEE;
}

.forum-container .message-list .message-item .username-container {
	font-size: 18px;
}

.forum-container .message-list .message-item .username-container .avator {
	width: 60px;
	height: 60px;
	border-radius: 50%;
}

.forum-container .message-list .message-item .content {
	margin: 10px;
}

.forum-container .message-list .message-item .replay {
	background: #EEEEEE;
	margin: 10px;
	padding: 20px;
	border-radius: 20px;
}

/* 考试 */
.paper-container {
	width


          "https://flutter.dev/",
          "https://flutter.dev/",
          Platform.isAndroid ? true : false,
          false,
        ),
      ]);

      expect(
        context.pageFinishedEvents.length,
        anyOf(
          greaterThanOrEqualTo(1), // on Android CI
          greaterThanOrEqualTo(2),
        ),
      );
      expect(
          context.pageFinishedEvents,
          anyOf(
            equals([
              // Android CI
              WebViewEvent.pageFinished(
                "about:blank",
                "about:blank",
                false,
                false,
              ),
            ]),
            equals([
              WebViewEvent.pageFinished(
                "about:blank",
                "about:blank",
                false,
                false,
              ),
              WebViewEvent.pageFinished(
                "https://flutter.dev/",
                "https://flutter.dev/",
                true,
                false,
              ),
            ]),
            equals([
              // PageFinished of www.google.com may come twice on Android.
              WebViewEvent.pageFinished(
                "about:blank",
                "about:blank",
                false,
                false,
              ),
              WebViewEvent.pageFinished(
                "https://flutter.dev/",
                "https://flutter.dev/",
                true,
                false,
              ),
              WebViewEvent.pageFinished(
                "https://flutter.dev/",
                "https://flutter.dev/",
                true,
                false,
              ),
            ]),
          ));
    });

    testWebView('with headers', (tester, context) async {
      await tester.pumpFrames(
        WebView(
          initialUrl: 'about:blank',
          onWebViewCreated: context.onWebViewCreated,
          shouldOverrideUrlLoading: context.shouldOverrideUrlLoading,
          onPageStarted: context.onPageStarted,
          onWebResourceError: context.onWebResourceError,
          onProgressChanged: context.onProgressChanged,
          onPageFinished: context.onPageFinished,
        ),
      );
      final controller = await context.webviewController.future;
      final headers = <String, String>{'test_header': 'flutter_test_header'};
      await controller.loadUrl(
        'https://flutter-header-echo.herokuapp.com/',
        headers: headers,
      );
      await sleep();

      final content = await controller.evaluateJavascript(
        '(() => document.documentElement.innerText)()',
      );
      expect(content.contains('flutter_test_header'), isTrue);
    });
  });

  group("JavascriptHandler", () {
    testWebView("messages received", (tester, context) async {
      final argumentsReceived = <List<dynamic>>[];

      await tester.pumpFrames(
        WebView(
          initialUrl: 'about:blank',
          onWebViewCreated: (controller) {
            controller.addJavascriptHandler("hoge",


 ㈕; ㈕; (아); (아); ) PARENTHESIZED HANGUL IEUNG A
3216;3216;3216;0028 C790 0029;0028 110C 1161 0029; # (㈖; ㈖; ㈖; (자); (자); ) PARENTHESIZED HANGUL CIEUC A
3217;3217;3217;0028 CC28 0029;0028 110E 1161 0029; # (㈗; ㈗; ㈗; (차); (차); ) PARENTHESIZED HANGUL CHIEUCH A
3218;3218;3218;0028 CE74 0029;0028 110F 1161 0029; # (㈘; ㈘; ㈘; (카); (카); ) PARENTHESIZED HANGUL KHIEUKH A
3219;3219;3219;0028 D0C0 0029;0028 1110 1161 0029; # (㈙; ㈙; ㈙; (타); (타); ) PARENTHESIZED HANGUL THIEUTH A
321A;321A;321A;0028 D30C 0029;0028 1111 1161 0029; # (㈚; ㈚; ㈚; (파); (파); ) PARENTHESIZED HANGUL PHIEUPH A
321B;321B;321B;0028 D558 0029;0028 1112 1161 0029; # (㈛; ㈛; ㈛; (하); (하); ) PARENTHESIZED HANGUL HIEUH A
321C;321C;321C;0028 C8FC 0029;0028 110C 116E 0029; # (㈜; ㈜; ㈜; (주); (주); ) PARENTHESIZED HANGUL CIEUC U
321D;321D;321D;0028 C624 C804 0029;0028 110B 1169 110C 1165 11AB 0029; # (㈝; ㈝; ㈝; (오전); (오전); ) PARENTHESIZED KOREAN CHARACTER OJEON
321E;321E;321E;0028 C624 D6C4 0029;0028 110B 1169 1112 116E 0029; # (㈞; ㈞; ㈞; (오후); (오후); ) PARENTHESIZED KOREAN CHARACTER O HU
3220;3220;3220;0028 4E00 0029;0028 4E00 0029; # (㈠; ㈠; ㈠; (一); (一); ) PARENTHESIZED IDEOGRAPH ONE
3221;3221;3221;0028 4E8C 0029;0028 4E8C 0029; # (㈡; ㈡; ㈡; (二); (二); ) PARENTHESIZED IDEOGRAPH TWO
3222;3222;3222;0028 4E09 0029;0028 4E09 0029; # (㈢; ㈢; ㈢; (三); (三); ) PARENTHESIZED IDEOGRAPH THREE
3223;3223;3223;0028 56DB 0029;0028 56DB 0029; # (㈣; ㈣; ㈣; (四); (四); ) PARENTHESIZED IDEOGRAPH FOUR
3224;3224;3224;0028 4E94 0029;0028 4E94 0029; # (㈤; ㈤; ㈤; (五); (五); ) PARENTHESIZED IDEOGRAPH FIVE
3225;3225;3225;0028 516D 0029;0028 516D 0029; # (㈥; ㈥; ㈥; (六); (六); ) PARENTHESIZED IDEOGRAPH SIX
3226;3226;3226;0028 4E03 0029;002


lic class Patch_DismissAnything
    {
        public static bool Prefix(UnitEntityData caster, Vector3 target, ref AreaEffectEntityData __result)
        {
            if (caster == null)
                return true;

            foreach (var areaEffect in Game.Instance.State.AreaEffects)
            {
                if (areaEffect.Context.ParentContext is AbilityExecutionContext && areaEffect.View.Contains(target))
                {
                    __result = areaEffect;
                    return false;
                }
            }

            __result = null;
            return false;
        }
    }
}


:HOME:GOSUB 2600: GOSUB 10:GOSUB 19:PRINT
;'
;' Now these points of data\nmake a beautiful line.
;'
;418 T$="Now ":F=152:GOSUB 8
;420 T$="these ":F=143:GOSUB 8
;422 T$="points ":D=108:F=128:GOSUB 8
;424 T$="of ":F=96:GOSUB 8
;426 T$="da":D=54:F=102:GOSUB 8
;428 T$="ta"+C$:F=114:GOSUB 8
;430 T$="make ":GOSUB 8
;432 T$="a ":F=128:GOSUB 8
;434 T$="beau":F=114:GOSUB 8
;436 T$="ti":F=128:GOSUB 8
;438 T$="ful ":D=108:F=128:GOSUB 8
;440 T$="line."+C$:F=128:GOSUB 8
;'
;' And we're out of beta.\nWe're releasing on time.
;'
;442 T$="And ":D=54:F=152:GOSUB 8
;444 T$="we're ":F=143:GOSUB 8
;446 T$="out ":D=108:F=128:GOSUB 8
;448 T$="of ":F=96:GOSUB 8
;450 T$="be":D=54:F=85:GOSUB 8
;452 T$="ta."+C$:F=96:GOSUB 8
;454 T$="We're ":F=102:GOSUB 8
;456 T$="re":F=114:GOSUB 8
;458 T$="lea":GOSUB 8
;460 T$="sing ":F=102:GOSUB 8
;462 T$="on ":D=108:F=96:GOSUB 8
;464 T$="time."+C$:F=96:GOSUB 8
;'
;' EXPLOSION
;466 GOSUB 18:GOSUB 15:HOME:GOSUB 2400: GOSUB 10:GOSUB 19:PRINT
;'
;' So I'm GLaD. I got burned.
;'
;468 T$="So ":D=54:F=85:GOSUB 8
;470 T$="I'm ":F=76:GOSUB 8
;472 T$="GLaD. ":F=72:GOSUB 8
;474  T$="I ":GOSUB 8
;476 T$="got ": D=108:F=76:GOSUB 8
;478 T$="burned."+C$:F=85:GOSUB 8
;'
;' ATOM
;'
;480 GOSUB 18:GOSUB 15:HOME:GOSUB 2200: GOSUB 10:GOSUB 19:PRINT
;'
;' Think of all the things we learned
;'
;482 T$="Think ":D=54:F=96:GOSUB 8
;484 T$="of ":F=85:GOSUB 8
;486 T$="all ":F=76:GOSUB 8
;488 T$="the ":GOSUB 8
;490 T$="things ":F=85:GOSUB 8
;492 T$="we ":F=96:GOSUB 8
;494 T$="learned"+C$:D=108:F=96:GOSUB 8
;'
;' APERTURE SCIENCE LOGO
;'
;496 GOSUB 18:GOSUB 15:HOME:GOSUB 2000: GOSUB 10:GOSUB 19:PRINT
;'
;' for the people who are
;'
;498 T$="for ":D=54:F=114:GOSUB 8
;500 T$="the ":F=128:GOSUB 8
;502 T$="peo":F=114:GOSUB 8
;504 T$="ple ":F=96:GOSUB 8
;506 T$="who ":GOSUB 8
;510 T$="are"+C$: D=108:F=102:GOSUB 8
;'
;' still alive


"Bairro": "Morada do Sol",
                    "IdTipoDeEndereco": 13,
                    "IdTipoDeLogradouro": null,
                    "CEP": 38740000,
                    "Cidade": "Patrocínio",
                    "UF": "MG",
                    "EnderecoCompleto": "Av. Faria Pereira, Nº: 20, Bairro: Morada do Sol, Cidade: Patrocínio"
                }
            },
            "Vaga": {
                "IdVaga": 9010,
                "DescricaoVaga": "EXECUTAR MANUTENÇÃO ELÉTRICA CORRETIVA E PREVENTIVA DE MÁQUINAS AGRÍCOLAS, DISPONIBILDADE PARA TRABALHO NOTURNO.",
                "Requisitos": "RESIDIR EM PATROCÍNIO -MG- ENSINO MÉDIO - NR 10.\nEnviar currículo para: rh.minas@daterracoffee.com.br Ou entregar na filial: Av. Faria Pereira, 110 - Morada do Sol - Patrocínio - MG",
                "IdTipoVaga": 3049,
                "IdCargo": 1281,
                "IdEscolaridadeNecessaria": 166,
                "IdDescricaoArea": 1604,
                "IdEmpresa": 154952,
                "TempoExperienciaMesesArea": 0,
                "TempoExperienciaMesesGeral": 0,
                "QuantidadeReferenciaProfissional": 0,
                "QuantidadeCandidatos": null,
                "PercentualConclusaoCursoMinimo": null,
                "PercentualConclusaoCursoMaximo": null,
                "Nome": "ELETRICISTA INDUSTRIAL - PATROCÍNIO - MG",
                "CursosEspecificos": null,
                "Cargo": {
                    "IdTabelaDescritivaConteudo": 1281,
                    "IdTabelaDescritiva": 30,
                    "Descricao": "Eletricista Industrial",
                    "TabelaDescritiva": null,
                    "Ordem": null
                },
                "EscolaridadeNecessaria": {
                    "IdTabelaDescritivaConteudo": 166,
                    "IdTabelaDescritiva": 5,
                    "Descricao": "Ensino Fundamental Completo",
                    "TabelaDescritiva": null,
                    "Ordem": 3
                },
                "TipoVaga": {
                    "IdTabelaDescritivaConteudo": 3049,
                    "IdTabelaDescritiva": 1,
                    "Descricao": "CLT",
                    "TabelaDescritiva": null,
                    "Ordem": null
                },
                "AreaProfissional": {
                    "IdTabelaDescritivaConteudo": 1604,
                    "Descricao": "Agronegócios",
                    "IdTabelaDescritiva": 1
                },
                "Empresa": {
                    "IdEmpresa": 154952,
                    "IdSubClasseCnae": 42,
                    "Descricao": null,
                    "Site": null,
                    "IdDocumentoLogo": 112196,
                    "IdSituacaoCadastro": null,
                    "Missao": null,
                    "Visao": null,
                    "IdNumeroFuncionarios": null,
                    "Ativa": true,
                    "SubclasseCnae": null,
                    "Pessoa": {
                        "IdPessoa": 154952,
                        "Nome": "DATERRA COFFEE - ATIVIDADES RURAIS LTDA",
                        "CpfCnpj": 51894202001218,
                        "TipoPessoa": "PJ",
                        "PessoaUsuario": null
                    },
                    "OrgaoPublico": false,
                    "IdDocumento": null,
                    "NomeFantasia": [

                    ],
                    "Representante": [

                    ],
                    "EmpresaCurso": [


 solid;
    border-width: 0 1px 0 0;
    margin: 0 .3em 0 .1em;
    padding: 0 0 0 1px;
    font-size: 1.3em;
}

.k-editor-toolbar .k-break
{
    display: block;
    height: 1px;
    font-size: 0;
    line-height: 0;
}

.k-editor-toolbar .k-dropdown,
.k-editor-toolbar .k-combobox,
.k-editor-toolbar .k-selectbox,
.k-editor-toolbar .k-colorpicker
{
    vertical-align: middle;
}

.k-button-group .k-tool {
    margin: 1px -1px 1px 0;
    width: @editor-icon-size;
    height: @editor-icon-size;
    border-width: 1px;
    border-style: solid;
    line-height: @editor-icon-size;
    position: relative;
    display: inline-block;
    vertical-align: middle;

    &:focus,
    &.k-state-hover {
        z-index: 1;
    }
}

.k-button-group .k-tool-icon {
    width: 24px;
    height: 24px;
    vertical-align: middle;
    .disable-high-contrast();
}

// default tool widths
.k-fontName { width: 110px; }
.k-fontSize { width: 124px; }
.k-formatBlock { width: 147px; }

.k-editortoolbar-dragHandle
{
    float:left;
    margin: 1px 0 0;
}

.k-editor-toolbar .k-button-group
{
    padding: 1px;
}

.k-editor .k-editor-toolbar .k-row-break
{
    display: block;
    height: 0;
    font-size: 0;
    line-height: 0;
}

.k-editor-toolbar .k-i-login {
    transform: scaleX(-1);
}

.k-editor-toolbar {

    .k-button-group .k-state-disabled,
    .k-button-group.k-state-disabled
    {
        display: none !important;
    }

    .k-button-group .k-state-hover,
    .k-button-group .k-state-active
    {
        vertical-align: middle;
    }

    .k-button-group .k-state-disabled
    {
        filter: alpha(opacity=30);
        opacity: .3;
    }

}

.k-editor .k-editable-area
{
    width: 100%;
    height: 100%;
    outline: 0;
}

.k-editor.k-resizable .k-editable-area
{
    padding-bottom: 16px;
}

.k-editor .k-content
{
    display: block;
    width: 100%;
    height: 100%;
    border-width: 0;
    margin: 0;
    padding: 0;
    background: #fff;
}

.k-editor .k-editable-area .k-content {
    box-sizing: border-box;
    border-width: 1px;
    border-style: solid;
}

a.k-tool {
    color: inherit;
    outline: 0;
}

.k-editor iframe.k-content
{
    display: inline;
    vertical-align: top; // fixes missing top border caused by the inline display
}

.k-editor .k-raw-content
{
    border: 0;
    margin: 0;
    padding: 0;
}

.k-editor .k-raw-content,
.k-editor-dialog .k-editor-textarea
{
    font-size: inherit;
    font-family: consolas, "courier new", monospace;
}

.k-editor-dialog
{
    padding: 1em;
    width: 400px;

    .k-edit-label
    {
        width: 25%;
    }

    .k-edit-field
    {
        width: 66%;

        .k-textbox
        {
            width: 96%;
        }
    }
}


	mov r0, r0, lsr #0x10
	cmp r1, #0x48
	bgt _0238B1AC
	bge _0238B1C8
	cmp r1, #0x2d
	bgt _0238B1E4
	cmp r1, #0x2c
	blt _0238B1E4
	cmpne r1, #0x2d
	beq _0238B1C8
	b _0238B1E4
_0238B1AC:
	cmp r1, #0x4b
	bgt _0238B1E4
	cmp r1, #0x49
	blt _0238B1E4
	cmpne r1, #0x4a
	cmpne r1, #0x4b
	bne _0238B1E4
_0238B1C8:
	ldr r1, _0238BD40 ; =OVERLAY18_UNKNOWN_POINTER__NA_238D620
	ldr r2, [r1]
	add r1, r2, #0x300
	ldrsh r1, [r1, #0x8c]
	orr r1, r1, #0x20000
	str r1, [r2, #0x14]
	b _0238B1EC
_0238B1E4:
	mov r1, #0x1fc
	str r1, [r3, #0x14]
_0238B1EC:
	ldr r1, _0238BD40 ; =OVERLAY18_UNKNOWN_POINTER__NA_238D620
	ldr r3, [r1]
	ldr r2, [r3, #0x78]
	cmp r2, #0x4b
	addls pc, pc, r2, lsl #2
	b _0238B468
_0238B204: ; jump table
	b _0238B334 ; case 0
	b _0238B468 ; case 1
	b _0238B468 ; case 2
	b _0238B360 ; case 3
	b _0238B360 ; case 4
	b _0238B36C ; case 5
	b _0238B468 ; case 6
	b _0238B468 ; case 7
	b _0238B374 ; case 8
	b _0238B374 ; case 9
	b _0238B380 ; case 10
	b _0238B380 ; case 11
	b _0238B38C ; case 12
	b _0238B38C ; case 13
	b _0238B398 ; case 14
	b _0238B398 ; case 15
	b _0238B468 ; case 16
	b _0238B468 ; case 17
	b _0238B468 ; case 18
	b _0238B3BC ; case 19
	b _0238B3BC ; case 20
	b _0238B468 ; case 21
	b _0238B468 ; case 22
	b _0238B468 ; case 23
	b _0238B468 ; case 24
	b _0238B3A4 ; case 25
	b _0238B3A4 ; case 26
	b _0238B468 ; case 27
	b _0238B468 ; case 28
	b _0238B468 ; case 29
	b _0238B468 ; case 30
	b _0238B468 ; case 31
	b _0238B468 ; case 32
	b _0238B468 ; case 33
	b _0238B3C8 ; case 34
	b _0238B3C8 ; case 35
	b _0238B3D4 ; case 36
	b _0238B468 ; case 37
	b _0238B468 ; case 38
	b _0238B3DC ; case 39
	b _0238B468 ; case 40
	b _0238B468 ; case 41
	b


cc] aside+*,[data-v-002affcc] figure+*{margin-top:1.6em}[data-v-002affcc] img{display:block;margin:1.6em auto;max-width:100%}[data-v-002affcc] ol,[data-v-002affcc] ul{margin-top:.8em;margin-left:2rem}[data-v-002affcc] ol li:not(:first-child),[data-v-002affcc] ul li:not(:first-child){margin-top:.8em}@media only screen and (max-width:735px){[data-v-002affcc] ol,[data-v-002affcc] ul{margin-left:1.25rem}}[data-v-002affcc]+dl,[data-v-002affcc] dl+*,[data-v-002affcc] dt:not(:first-child){margin-top:.8em}[data-v-002affcc] dd{margin-left:2em}.abstract[data-v-702ec04e]{font-size:1.23529rem;line-height:1.38095;font-weight:400;letter-spacing:.011em;font-family:Helvetica Neue,Helvetica,Arial,sans-serif}@media only screen and (max-width:735px){.abstract[data-v-702ec04e]{font-size:1.11765rem;line-height:1.42105;font-weight:400;letter-spacing:.012em;font-family:Helvetica Neue,Helvetica,Arial,sans-serif}}[data-v-702ec04e] p:last-child{margin-bottom:0}.contenttable[data-v-1a780186]{background:var(--color-content-table-content-color);padding:3rem 0}.container[data-v-1a780186]{margin-left:auto;margin-right:auto;width:980px}@media only screen and (max-width:1068px){.container[data-v-1a780186]{width:692px}}@media only screen and (max-width:735px){.container[data-v-1a780186]{width:87.5%}}.title[data-v-1a780186]{font-size:1.88235rem;line-height:1.125;font-weight:400;letter-spacing:.013em;font-family:Helvetica Neue,Helvetica,Arial,sans-serif}@media only screen and (max-width:1068px){.title[data-v-1a780186]{font-size:1.64706rem;line-height:1.14286;font-weight:400;letter-spacing:.007em;font-family:Helvetica Neue,Helvetica,Arial,sans-serif}}@media only screen and (max-width:735px){.title[data-v-1a780186]{font-size:1.41176rem;line-height:1.16667;font-weight:400;letter-spacing:.009em;font-family:Helvetica Neue,Helvetica,Arial,sans-serif}}.contenttable-section[data-v-bedf02be]{border-top-color:var(--color-grid);border-top-style:solid;border-top-width:1px;align-items:baseline;display:flex;margin:2rem 0;padding-top:2rem}.contenttable-section[data-v-bedf02be]:last-child{margin-bottom:0}.section-content[data-v-bedf02be]{padding-left:1rem}[data-v-bedf02be] .title{font-size:1.41176rem;line-height:1.16667;font-weight:400;letter-spacing:.009em;font-family:Helvetica Neue,Helvetica,Arial,sans-serif}@media only screen and (max-width:1068px){[data-v-bedf02be] .title{font-size:1.23529rem;line-height:1.19048;font-weight:400;letter-spacing:.011em;font-family:Helvetica Neue,Helvetica,Arial,sans-serif}}@media only screen and


//-----------------------------------------------------------------------------
// Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//-----------------------------------------------------------------------------
// Interlib Definitions
//-----------------------------------------------------------------------------

#ifndef __COMMON_H
#define __COMMON_H

#include <stdint.h>
#include <stddef.h>
#include <stdbool.h>
#include "util.h"       // FILE_PATH_SIZE

#ifdef _WIN32
#define ABOVE "../"
#define PATHSEP "/"
#else
#define ABOVE "../"
#define PATHSEP "/"
#endif

#ifndef MIN
# define MIN(a, b) (((a) < (b)) ? (a) : (b))
#endif

#ifndef MAX
# define MAX(a, b) (((a) > (b)) ? (a) : (b))
#endif

#ifndef ABS
# define ABS(a) ( ((a)<0) ? -(a) : (a) )
#endif

#ifndef ROTR
# define ROTR(x,n) (((uintmax_t)(x) >> (n)) | ((uintmax_t)(x) << ((sizeof(x) * 8) - (n))))
#endif

#ifndef PM3_ROTL
# define PM3_ROTL(x,n) (((uintmax_t)(x) << (n)) | ((uintmax_t)(x) >> ((sizeof(x) * 8) - (n))))
#endif

// endian change for 64bit
#ifdef __GNUC__
#ifndef BSWAP_64
#define BSWAP_64(x) __builtin_bswap64(x)
#endif
#else
#ifdef _MSC_VER
#ifndef BSWAP_64
#define BSWAP_64(x) _byteswap_uint64(x)
#endif
#else
#ifndef BSWAP_64
#define BSWAP_64(x) \
    (((uint64_t)(x) << 56) | \
     (((uint64_t)(x) << 40) & 0xff000000000000ULL) | \
     (((uint64_t)(x) << 24) & 0xff0000000000ULL) | \
     (((uint64_t)(x) << 8)  & 0xff00000000ULL) | \
     (((uint64_t)(x) >> 8)  & 0xff000000ULL) | \
     (((uint64_t)(x) >> 24) & 0xff0000ULL) | \
     (((uint64_t)(x) >> 40) & 0xff00ULL) | \
     ((uint64_t)(x)  >> 56))
#endif
#endif
#endif

// endian change for 32bit
#ifdef __GNUC__
#ifndef BSWAP_32
#define BSWAP_32(x) __builtin_bswap32(x)
#endif
#else
#ifdef _MSC_VER
#ifndef BSWAP_32
#define BSWAP_32(x) _byteswap_ulong(x)
#endif
#else
#ifndef BSWAP_32
# define BSWAP_32(x) \
    ((((x) & 0xff000000) >> 24) | (((x) & 0x00ff0000) >>  8) | \
     (((x) & 0x0000ff00) <<  8) | (((x) & 0x000000ff) << 24))
#endif
#endif
#endif

// convert 2 bytes to U16 in little endian
#ifndef BYTES2UINT16
# define BYTES2UINT16(x) ((x[1] << 8) | (x[0]))
#endif
// convert 4 bytes to U32 in little endian
#ifndef BYTES2UINT32
# define BYTES2UINT32(x) ((x[3] << 24) | (x[2] << 16) | (x[1] << 8) | (x[0]))
#endif

// convert 4 bytes to U32 in big endian
#ifndef BYTES2UINT32_BE
# define BYTES2UINT32_BE(x) ((x[0] << 24) | (x[1] << 16) | (x[2] << 8) | (x[3]))
#endif

#define EVEN                        0
#define ODD                         1

// Nibble logic
#ifndef NIBBLE_HIGH
# define NIBBLE_HIGH(b) ( ((b) & 0xF0) >> 4 )
#endif

#ifndef NIBBLE_LOW
# define NIBBLE_LOW(b)  ((b) & 0x0F )
#endif

#ifndef CRUMB
# define CRUMB(b,p)    (((b & (0x3 << p) ) >> p ) & 0xF)
#endif

#ifndef SWAP_NIBBLE
# define SWAP_NIBBLE(b)  ( (NIBBLE_LOW(b)<< 4) | NIBBLE_HIGH(b))
#endif
#endif


x5C ) ) |= USBFSH_PORTMODE_DEV_ENABLE_MASK;
        /* disable usb0 host clock */
        CLOCK_DisableClock( kCLOCK_Usbhsl0 );
    #endif

    BOARD_InitDebugConsole();

    /* Initialize FLASH driver */
    mflash_drv_init();

    xLoggingTaskInitialize( mainLOGGING_TASK_STACK_SIZE, mainLOGGING_TASK_PRIORITY, mainLOGGING_QUEUE_LENGTH );

    vTaskStartScheduler();

    for( ; ; )
    {
    }
}

/*-----------------------------------------------------------*/

void vApplicationDaemonTaskStartupHook( void )
{
    if( SYSTEM_Init() == pdPASS )
    {
        prvWifiConnect();

        /* A simple example to demonstrate key and certificate provisioning in
         * microcontroller flash using PKCS#11 interface. This should be replaced
         * by production ready key provisioning mechanism. */
        vDevModeKeyProvisioning();

        /* Create the task to run tests. */
        xTaskCreate( TEST_RUNNER_RunTests_task, "TestRunner", mainTEST_RUNNER_TASK_STACK_SIZE, NULL,
                     tskIDLE_PRIORITY + 1, NULL );
    }
}

/*-----------------------------------------------------------*/

static void prvWifiConnect( void )
{
    WIFINetworkParams_t xNetworkParams;
    WIFIReturnCode_t xWifiStatus;
    WIFIIPConfiguration_t xIPConfig;
    uint8_t * pucIP4 = NULL;

    /* Initialize Network params. */
    xNetworkParams.ucSSIDLength = strnlen( clientcredentialWIFI_SSID, wificonfigMAX_SSID_LEN );
    memcpy( xNetworkParams.ucSSID, clientcredentialWIFI_SSID, xNetworkParams.ucSSIDLength );
    xNetworkParams.xPassword.xWPA.ucLength = strnlen( clientcredentialWIFI_PASSWORD, wificonfigMAX_PASSPHRASE_LEN );
    memcpy( xNetworkParams.xPassword.xWPA.cPassphrase, clientcredentialWIFI_PASSWORD, xNetworkParams.xPassword.xWPA.ucLength );
    xNetworkParams.xSecurity = clientcredentialWIFI_SECURITY;
    xNetworkParams.ucChannel = 0;

    configPRINTF( ( "Starting Wi-Fi...\r\n" ) );

    xWifiStatus = WIFI_On();

    if( xWifiStatus == eWiFiSuccess )
    {
        configPRINTF( ( "Wi-Fi module initialized. Connecting to AP %.*s...\r\n", xNetworkParams.ucSSIDLength, xNetworkParams.ucSSID ) );
    }
    else
    {
        configPRINTF( ( "Wi-Fi module failed to initialize.\r\n" ) );

        /* Delay to allow the lower priority logging task to print the above status. */
        vTaskDelay( pdMS_TO_TICKS( mainLOGGING_WIFI_STATUS_DELAY ) );

        while( 1 )
        {
        }
    }

    xWifiStatus = WIFI_ConnectAP( &xNetworkParams );

    if( xWifiStatus == eWiFiSuccess )
    {
        configPRINTF( ( "Wi-Fi connected to AP %.*s.\r\n", xNetworkParams.ucSSIDLength, xNetworkParams.ucSSID ) );

        xWifiStatus = WIFI_GetIPInfo( &xIPConfig );

        if( eWiFiSuccess == xWifiStatus )
        {
            pucIP4 = ( uint8_t * ) &xIPConfig.xIPAddress.ulAddress[ 0 ];
            configPRINTF( ( "IP Address acquired %d.%d.%d.%d\r\n",
            		       pucIP4[ 0 ],
            		       pucIP4[ 1 ],
            		       pucIP4[ 2 ],
            		       pucIP4[ 3 ] ) );
        }
    }
    else
    {
        configPRINTF( ( "Wi-Fi failed to connect to AP %.*s.\r\n", xNetworkParams.ucSSIDLength, xNetworkParams.ucSSID ) );

        /* Delay to allow the lower priority logging task to print the above status. */
        vTaskDelay( pdMS_TO_TICKS( mainLOGGING_WIFI_STATUS_DELAY ) );

        while( 1 )
        {
        }
    }
}

/*-----------------------------------------------------------*/

void * pvPortCalloc( size_t xNum,
                     size_t xSize )
{
    void * pvReturn;

    pvReturn = pvPortMalloc( xNum * xSize );

    if( pvReturn != NULL )
    {
        memset( pvReturn, 0x00, xNum * xSize );
    }

    return pvReturn;
}


@media (prefers-color-scheme: dark){.test-result-counter{background:var(--color-scale-gray-3)}}@media only screen and (max-width: 600px){.test-result{padding:0!important}}.test-file-test{line-height:32px;align-items:center;padding:2px 10px;overflow:hidden;text-overflow:ellipsis}.test-file-test:hover{background-color:var(--color-canvas-subtle)}.test-file-title{font-weight:600;font-size:16px}.test-file-details-row{padding:0 0 6px 8px;margin:0 0 0 15px;line-height:16px;font-weight:400;color:var(--color-fg-muted);display:flex;align-items:center}.test-file-path{text-overflow:ellipsis;overflow:hidden;color:var(--color-fg-muted)}.test-file-path-link{margin-right:10px}.test-file-test-outcome-skipped{color:var(--color-fg-muted)}.test-file-test-status-icon{flex:none}.test-file-header-info{display:flex;align-items:center;gap:8px;color:var(--color-fg-muted)}#root{color:var(--color-fg-default);font-size:14px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";-webkit-font-smoothing:antialiased}.metadata-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;margin-left:8px;color:var(--color-fg-default)}.metadata-view{border:1px solid var(--color-border-default);border-radius:6px;margin-top:8px}.metadata-view .metadata-section{margin:8px 10px 8px 32px}.metadata-view span:not(.copy-button-container),.metadata-view a{display:inline-block;line-height:24px}.metadata-properties{display:flex;flex-direction:column;align-items:normal;gap:8px}.metadata-properties>div{height:24px}.metadata-separator{height:1px;border-bottom:1px solid var(--color-border-default)}.metadata-view a{color:var(--color-fg-default)}.copyable-property{white-space:pre}.copyable-property>span{display:flex;align-items:center}
</style>


%, 56% 74.5%, 55.75% 74.75%, 55.75% 75%, 55.25% 75.5%, 55.25% 75.75%, 55% 76%, 55% 76.25%, 54.5% 76.75%, 54.5% 77.25%, 54.75% 77.5%, 55% 77.25%, 55.25% 77.25%, 55.5% 77%, 55.5% 76.75%, 55.75% 76.5%, 55.75% 76.25%, 56.25% 75.75%, 56.25% 75.5%, 56.75% 75%, 56.75% 74.75%, 57.25% 74.25%, 57.25% 73.75%, 57% 73.5%);
    background-color: rgb(245, 167, 36)
    }
.component-144 {
    clip-path: polygon(57% 74.25%, 56.5% 74.75%, 56.5% 75%, 56% 75.5%, 56% 75.75%, 55.5% 76.25%, 55.5% 76.5%, 55.25% 76.75%, 55.25% 77%, 55% 77.25%, 55% 77.75%, 55.25% 78%, 55.25% 78.25%, 55.5% 78.5%, 55.5% 78.75%, 55.75% 79%, 56% 78.75%, 56% 78.5%, 56.25% 78.25%, 55.75% 77.75%, 55.75% 77.5%, 56% 77.25%, 56% 76.75%, 56.5% 76.25%, 56.5% 75.75%, 56.75% 75.5%, 57.25% 76%, 57.5% 76%, 57.75% 75.75%, 57.75% 75.25%, 57.5% 75%, 57.5% 74.5%, 57.25% 74.25%);
    background-color: rgb(198, 42, 5)
    }
.component-145 {
    clip-path: polygon(55.25% 78.25%, 55% 78.5%, 55% 79%, 55.5% 79.5%, 55.5% 79.75%, 55.75% 80%, 56% 79.75%, 56% 79%, 55.75% 78.75%, 55.75% 78.5%, 55.5% 78.25%);
    background-color: rgb(250, 181, 30)
    }
.component-146 {
    clip-path: polygon(56.75% 75.25%, 56.25% 75.75%, 56.25% 76.25%, 55.75% 76.75%, 55.75% 77%, 55.25% 77.5%, 55.5% 77.75%, 55.5% 78%, 55.75% 78.25%, 55.75% 79%, 56.25% 79.5%, 56.25% 79.75%, 56.5% 80%, 56.5% 80.25%, 56.75% 80.5%, 56.75% 80.75%, 57% 81%, 57.5% 81%, 57.75% 80.75%, 57.75% 80.5%, 58.5% 79.75%, 58.5% 79.5%, 58.75% 79.25%, 58.75% 78.5%, 58.5% 78.25%, 58.5% 77.5%, 58.25% 77.25%, 58.25% 77%, 58% 76.75%, 58% 76.25%, 57.5% 75.75%, 57.25% 75.75%);
    background-color: rgb(218, 18, 9)
    }
.component-147 {
    clip-path: polygon(57.5% 31.5%, 56.25% 32.75%, 56% 32.5%, 55.5% 33%, 55.75% 33.25%, 56% 33.25%, 56.25% 33.5%, 56.5% 33.5%, 56.75% 33.25%, 57.25% 33.25%, 57.5% 33%, 57.5% 32.75%, 57.75% 32.5%, 57.75% 31.75%);
    background-color: rgb(154, 142, 133)
    }
.component-148 {
    clip-path: polygon(56% 79.25%, 55.75% 79.5%, 55.75% 79.75%, 56% 80%, 56% 80.75%, 56.


/* sys/msg.h
   Written by Conrad Scott <conrad.scott@dsl.pipex.com>

This file is part of Cygwin.

This software is a copyrighted work licensed under the terms of the
Cygwin license.  Please consult the file "CYGWIN_LICENSE" for
details. */

#ifndef _CYGWIN_MSG_H
#define _CYGWIN_MSG_H

#include <cygwin/ipc.h>

#ifdef __cplusplus
extern "C"
{
#endif

/* Message operation flags:
 */
#define MSG_NOERROR 0x01	/* No error if big message. */

#ifdef _KERNEL
/* Command definitions for the semctl () function:
 */
#define MSG_STAT   0x2000	/* For ipcs(8) */
#define MSG_INFO   0x2001	/* For ipcs(8) */
#endif /* _KERNEL */

/* Used for the number of messages in the message queue.
 */
typedef uint32_t msgqnum_t;

/* Used for the number of bytes allowed in a message queue.
 */
typedef uint32_t msglen_t;

struct msqid_ds
{
  struct ipc_perm msg_perm;	/* Operation permission structure. */
  msglen_t        msg_cbytes;	/* Number of bytes currently on queue. */
  msgqnum_t       msg_qnum;	/* Number of messages currently on queue. */
  msglen_t        msg_qbytes;	/* Maximum number of bytes allowed on queue. */
  pid_t           msg_lspid;	/* Process ID of last msgsnd (). */
  pid_t           msg_lrpid;	/* Process ID of last msgrcv (). */
  timestruc_t     msg_stim;	/* Time of last msgsnd (). */
  timestruc_t     msg_rtim;	/* Time of last msgrcv (). */
  timestruc_t     msg_ctim;	/* Time of last change. */
#ifdef _KERNEL
  struct msg     *msg_first;
  struct msg     *msg_last;
#else
  long            msg_spare4[2];
#endif /* _KERNEL */
};

#define msg_stime msg_stim.tv_sec
#define msg_rtime msg_rtim.tv_sec
#define msg_ctime msg_ctim.tv_sec

#ifdef _KERNEL
/* Buffer type for msgctl (IPC_INFO, ...) as used by ipcs(8).
 */
struct msginfo
{
  int32_t msgmax;	/* Maximum number of bytes per
			   message. */
  int32_t msgmnb;	/* Maximum number of bytes on any one
			   message queue. */
  int32_t msgmni;	/* Maximum number of message queues,
			   system wide. */
  int32_t msgtql;	/* Maximum number of messages, system
			   wide. */
  int32_t msgssz;	/* Size of a message segment, must be
			   small power of 2 greater than 4. */
  int32_t msgseg;	/* Number of message segments */
  int32_t msg_spare[2];
};

/* Buffer type for msgctl (MSG_INFO, ...) as used by ipcs(8).
 */
struct msg_info
{
  int32_t msg_ids;		/* Number of allocated queues. */
  int32_t msg_num;		/* Number of messages, system wide. */
  int32_t msg_tot;		/* Size in bytes of messages, system wide. */
};
#endif /* _KERNEL */

int     msgctl (int msqid, int cmd, struct msqid_ds *buf);
int     msgget (key_t key, int msgflg);
ssize_t msgrcv (int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg);
int     msgsnd (int msqid, const void *msgp, size_t msgsz, int msgflg);

#ifdef __cplusplus
}
#endif

#endif /* _CYGWIN_MSG_H */


 these libraries:
```xml
<ItemGroup>
  <NativeLibrary Include="/path/to/libsodium" Condition="!$(RuntimeIdentifier.StartsWith('win'))" />
  <DirectPInvoke Include="libsodium" />

  <NativeLibrary Include="/path/to/opus" Condition="!$(RuntimeIdentifier.StartsWith('win'))" />
  <DirectPInvoke Include="opus" />
</ItemGroup>
```

Since you're statically linking, you won't need to place any of these files in the runtime directory. The necessary code from the libraries will be included directly in your application.

***

#### Installation External Links

| Library   | Installation Link                      |
|-----------|----------------------------------------|
| Libsodium | https://doc.libsodium.org/installation |
| Opus      | https://opus-codec.org/downloads       |
---
uid: events
---

# Intents

## What are intents?
Intents allow you to subscribe Discord events, such as @NetCord.Gateway.GatewayClient.MessageCreate and @NetCord.Gateway.GatewayClient.GuildUserAdd. If you don't specify certain intent, you will not subscribe certain events.

## Privileged intents
Privileged intents are intents that you need to enable in [Discord Developer Portal](https://discord.com/developers/applications).
![Shows 'Privileged Gateway Intents' section in 'Bot' section](../../images/intents_Privileged.webp){width=850px}

## How to specify intents in NetCord?

Intents in NetCord are handled by @NetCord.Gateway.GatewayIntents.
You specify them like this:

## [.NET Generic Host](#tab/generic-host)
[!code-cs[Program.cs](IntentsHosting/Program.cs?highlight=4#L8-L12)]

## [Bare Bones](#tab/bare-bones)
[!code-cs[Program.cs](Intents/Program.cs?highlight=3#L4-L7)]

***

If you have done this, you will receive guild and direct messages.

> [!NOTE]
> `MessageContent` is a special, privileged intent that allows you to receive @NetCord.Rest.RestMessage.Content, @NetCord.Rest.RestMessage.Embeds, @NetCord.Rest.RestMessage.Attachments, @NetCord.Rest.RestMessage.Components and @NetCord.Rest.RestMessage.Poll of messages in events. Otherwise they are empty.
# First Events

## [.NET Generic Host](#tab/generic-host)

The preferred way to receive events with the .NET Generic Host is by implementing appropriate @"NetCord.Hosting.Gateway.IGatewayHandler"s. An example of such an interface is @NetCord.Hosting.Gateway.IMessageCreateGatewayHandler.

Use @NetCord.Hosting.Gateway.GatewayHandlerServiceCollectionExtensions.AddGatewayHandlers(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Reflection.Assembly) to add all event handlers in an assembly.
[!code-cs[Program.cs](FirstEventsHosting/Program.cs?highlight=17)]

### MessageCreate Event
Now it's time to implement your MessageCreate event handler!
[!code-cs[Program.cs](FirstEventsHosting/MessageCreateHandler.cs)]

When you run this code, when someone sends a message, the message will be printed on a console!

### MessageReactionAdd Event
We will also implement a MessageReactionAdd event handler!
[!code-cs[Program.cs](FirstEventsHosting/MessageReactionAddHandler.cs)]

When you run this code, when someone reacts to a message, the bot will notify everyone about it!

### Other Events
Other events work similar to these. You can play with them if you want!

> [!NOTE]
> When using @NetCord.Gateway.ShardedGatewayClient, you need to implement @NetCord.Hosting.Gateway.IShardedGatewayHandler instead. An example of such an interface is @NetCord.Hosting.Gateway.IMessageCreateShardedGatewayHandler. You also need to use @NetCord.Hosting.Gateway.GatewayHandlerServiceCollectionExte


etter outside of a service scope will result in an error.
/// See the `package:gcloud/service_scope.dart` library for more information.
PubSub get pubsubService => ss.lookup(_pubsubKey) as PubSub;

/// Registers the [pubsub] object within the current service scope.
///
/// The provided `pubsub` object will be available via the top-level
/// `pubsubService` getter.
///
/// Calling this function outside of a service scope will result in an error.
/// Calling this function more than once inside the same service scope is not
/// allowed.
void registerPubSubService(PubSub pubsub) {
  ss.register(_pubsubKey, pubsub);
}

/// A Cloud Pub/Sub client.
///
/// Connects to the Cloud Pub/Sub service and gives access to its operations.
///
/// Google Cloud Pub/Sub is a reliable, many-to-many, asynchronous messaging
/// service from Google Cloud Platform. A detailed overview is available on
/// [Pub/Sub docs](https://developers.google.com/pubsub/overview).
///
/// To access Pub/Sub, an authenticate HTTP client is required. This client
/// should as a minimum provide access to the scopes `PubSub.Scopes`.
///
/// The following example shows how to access Pub/Sub using a service account
/// and pull a message from a subscription.
///
///     import 'package:http/http.dart' as http;
///     import 'package:googleapis_auth/auth_io.dart' as auth;
///     import 'package:gcloud/pubsub.dart';
///
///     Future<http.Client> createClient() {
///       // Service account credentials retrieved from Cloud Console.
///       String creds =
///           r'''
///           {
///             "private_key_id": ...,
///             "private_key": ...,
///             "client_email": ...,
///             "client_id": ...,
///             "type": "service_account"
///           }''';
///       return auth.clientViaServiceAccount(
///           new auth.ServiceAccountCredentials.fromJson(creds),
///           PubSub.Scopes);
///     }
///
///     main() {
///       var project = 'my-project';
///       var client;
///       var pubsub;
///       createClient().then((c) {
///         client = c;
///         pubsub = new PubSub(client, project);
///         return pubsub.lookupSubscription('my-subscription');
///       })
///       .then((Subscription subscription) => subscription.pull())
///       .then((PullEvent event) => print('Message ${event.message.asString}'))
///       .whenComplete(() => client.close());
///     }
///
/// When working with topics and subscriptions they are referred to using
/// names. These names can be either relative names or absolute names.
///
/// An absolute name of a topic starts with `projects/` and has the form:
///
///     projects/<project-id>/topics/<relative-name>
///
/// When a relative topic name is used, its absolute name is generated by
/// pre-pending `projects/<project-id>/topics/`, where `<project-id>` is the
/// project id passed to the constructor.
///
/// An absolute name of a subscription starts with `projects/` and has the
/// form:
///
///     projects/<


ddition} from "./addition";

describe ('addition unit test', () => {

    it('s should add 2+2=4',() =>{

      // pattern AAA (Arrange - Act - Assert)
      // Arrange
      let result = 0;
      //Act
        result = addition(0,-2);
      //Assert
        expect (result).toBe(-2);
    })

    it(' should add 5+5=10 ',() =>{

            // Arrange
            let result = 0;
            // Act
            result = addition(5,5);
            // Asset
            expect (result).toBe(10);
        })
    it(' should add 4+2=6 ',() =>{

            // Arrange
            let result = 0;
            // Act
            result = addition(4,2);
            // Asset
            expect (result).toBe(6);
        })
    it(' should add 5.3+5.3=10.6',() =>{

            // Arrange
            let result = 0;
            // Act
            result = addition(5.3,5.3);
            // Asset
            expect (result).toBe(10.6);
        })
})
import appData from "./appData";

const inputValue = <HTMLInputElement>document.querySelector("#task");
const tasksContainer = <HTMLLIElement>document.querySelector(".cards");
const card = <HTMLElement>document.querySelector(".cards__card");

// from input 🍊

function renderNewCard() {
  //creating elements
  const cardContainer: HTMLDivElement = document.createElement("div");
  const cardTitle: HTMLElement = document.createElement("p");
  const cardButtonsDiv: HTMLDivElement = document.createElement("div");
  const cardStartButton: HTMLButtonElement = document.createElement("button");
  const cardFinishButton: HTMLButtonElement = document.createElement("button");
  const cardEditButton: HTMLButtonElement = document.createElement("button");
  const cardDeleteButton: HTMLButtonElement = document.createElement("button");
  const deleteIcon: HTMLImageElement = document.createElement("img");

  // appending childs to parents
  cardContainer.appendChild(cardTitle);
  cardContainer.appendChild(cardButtonsDiv);
  cardButtonsDiv.appendChild(cardStartButton);
  cardButtonsDiv.appendChild(cardFinishButton);
  cardButtonsDiv.appendChild(cardEditButton);
  cardButtonsDiv.appendChild(cardDeleteButton);
  cardDeleteButton.appendChild(deleteIcon);

  // adding class names and attrs
  cardContainer.classList.add("cards__card");
  cardContainer.setAttribute("id", `${appData.length}`);
  cardContainer.setAttribute("data-status", "todo");
  cardTitle.classList.add("cards__title");
  cardButtonsDiv.classList.add("cards__buttons");
  cardStartButton.classList.add("cards__btn");
  cardStartButton.classList.add("start-btn");
  cardFinishButton.classList.add("cards__btn");
  cardFinishButton.classList.add("finish-btn");
  cardDeleteButton.classList.add("cards__btn");
  cardDeleteButton.classList.add("delete");
  cardDeleteButton.classList.add("icon-btn");
  deleteIcon.classList.add("cards__icon");

  // adding values
  cardTitle.innerText = `${inputValue.value}🌼${cardContainer.getAttribute(
    "data-status"
  )} `;
  cardStartButton.innerText = "start";
  cardFinishButton.innerText = "done";
  deleteIcon.src = "./assets/trash.svg";
  deleteIcon.alt = "delete";

  //adding the card to parent
  tasksContainer.appendChild(cardContainer);

  const newEl: { id: any; taskStatus: string; title: string } = {
    id: cardContainer.getAttribute("id"),
    taskStatus: "todo",
    title: inputValue.value,
  };
  appData.push(newEl);
  inputValue.value = "";


),
    return_qs: bool = False,
) -> Union[np.ndarray, Tuple[torch.Tensor, torch.Tensor]]:
    np.set_printoptions(precision=2)

    # Convert to namespace for easy reference
    if isinstance(metrics, dict):
        metrics = Namespace(**metrics)
    metrics.t_err = np.array(metrics.t_err, dtype=np.float32)
    metrics.R_err = np.array(metrics.R_err, dtype=np.float32)
    n_queries = metrics.n_queries
    pose_mask = (metrics.t_err > -1) & (metrics.R_err > -1)
    failed = int(len(metrics.t_err) - pose_mask.sum())

    # Query statis
    _logger.info(
        f"Query total={n_queries} "
        f"evaluated={len(metrics.t_err)} "
        f"failed={failed}"
    )

    # Match statis
    _logger.info(
        f"Mean n2d={np.mean(metrics.n2d):.0f} "
        f"n3d={np.mean(metrics.n3d):.0f} "
        f"n_matches={np.mean(metrics.n_matches):.0f}"
    )

    # Pose errors
    quantile_ratios = torch.tensor([0.25, 0.5, 0.75])
    t_qs = torch.quantile(torch.from_numpy(metrics.t_err[pose_mask]), quantile_ratios)
    R_qs = torch.quantile(torch.from_numpy(metrics.R_err[pose_mask]), quantile_ratios)
    _logger.info(
        f"R_qs={R_qs.data.numpy()} t_qs={t_qs.data.numpy()}m/{t_qs.data.numpy()*100}cm"
    )

    # Localization recall
    localized = [
        100
        * np.sum(
            (np.array(metrics.t_err[pose_mask]) < t_th)
            & (np.array(metrics.R_err[pose_mask]) < R_th)
        )
        / n_queries
        for t_th, R_th in pose_thresholds
    ]
    _logger.info(
        "Localize recall@(<5cm5deg/0.25m2deg/0.5m5deg/1m10deg): "
        f"{localized[0]:.2f}/{localized[1]:.2f}/{localized[2]:.2f}/{localized[3]:.2f} %"
    )

    # Check distribution
    reproj_hists = check_data_hist(
        metrics.reproj_gt3d_estpose,
        bins=[0, 0.5, 1, 5, 10, 20, 100, 1000],
        tag=f"Reproj",
    )
    _logger.info(f"\n{reproj_hists}")

    # Compute reproj, recall AUC
    mean_reproj_errs = [np.mean(errs) for errs in metrics.reproj_gt3d_estpose]
    nsamples = len(mean_reproj_errs)

    # Add vals for failed samples
    mean_reproj_errs += [np.inf] * (n_queries - len(mean_reproj_errs))
    reproj_auc = 100 * cal_error_auc(mean_reproj_errs, auc_thresholds)
    _logger.info(
        f"\nReprojThres={auc_thresholds}px AUC={reproj_auc} nsamples={nsamples}"
    )

    # Runtime
    if "match_time" in metrics:
        sample_match_time = 1e3 * np.sum(metrics.match_time) / n_queries
        _logger.info(f"Matching time (per pair):{sample_match_time:.2f} ms")

    if return_qs:
        return (t_qs, R_qs)
    return reproj_auc


�茵生命决定迅速组织一个更大规模、更专业的联合科考队伍，再次进入无尽冰原。这次行动的核心目标，除了深入研究那朵神秘的花朵及其代表的现象外，更重要的是前往冰原深处接应仍然独自前行的马里亚姆主任，希望能将这位传奇般的探索者带回，并让他亲自为那朵由他发现的未知植物命名。麦哲伦也坚持要加入这支队伍，誓要找到她的老师。

总而言之，马里亚姆主任虽然在“眠于树影之中”的剧情中只是一个未曾露面的幕后人物，但他通过失踪、幸存、发现以及最终的选择，成为了整个事件的灵魂人物。他的故事展现了一位科学家对于探索和求知的极致追求，同时也为泰拉世界的神秘区域——无尽冰原，以及其中隐藏的邪魔和未知现象，增添了新的维度和悬念。他的命运，以及他在冰原深处可能遭遇或发现的一切，将是未来剧情中备受关注的焦点。
## 剧情高光
*   莱茵生命科考科成员向麦哲伦透露马里亚姆主任队伍失踪的消息，并强调搜救是最高优先级：
    科考科成员:（轻声）马里亚姆主任的队伍在冰原失踪了。
    麦哲伦:欸？！玛丽老师怎——
    科考科成员:（轻声）小点声！
    ......
    科考科成员:（轻声）你这次去，搜救主任的队伍是最优先事项。
    科考科成员:（轻声）探索协会那边已经在组织搜救队了，但你也知道，那帮人效率一直不怎么样。
    科考科成员:（轻声）主任他们......就只能先靠你了。
*   麦哲伦通过科考站设备确认了马里亚姆的讯号：
    麦哲伦:玛丽老师自己发送的讯号，也就是说他本人还在那里！
*   麦哲伦在幻听中“见到”马里亚姆主任：
    麦哲伦:真、真的是玛丽老师吗？！
    麦哲伦:（啊！真的是！太好了，找到你们了！我就知道你们没事！）
    ......
    科考科主任？:麦哲伦。
*   艾尔启通过提丰转交了马里亚姆的设备箱和他的信息：
    提丰:——拿着，麦哲伦。
    麦哲伦:欸？
    提丰:这个


�藏本站喔。本文目录一览：1、猫咪内驱外驱多久一次,猫咪内外驱..

养狗人容易带什么病菌（养狗的人容易得什么妇科病吗）

摘要：       今天给各位分享养狗人容易带什么病菌的知识，其中也会对养狗的人容易得什么妇科病吗进行解释，如果能碰巧解决你现在面临的问题，别忘了关注本站，现在开始吧！本文目录一览：1、经常在家里养.

「2月20日」最高速度18M/S，2025年HiddifyNext每天更新免费节点订阅链接

这一次的节点更新覆盖了韩国、加拿大、美国、香港、欧洲、新加坡、日本等地区,最高速度可达18 M/S。只需复制下方的Clash/v2ray订阅链接,在客户端添加后即可正常使用。


: OooO0OO  reason: collision with root package name */
    public final boolean f2829OooO0OO;

    /* renamed from: OooO0Oo  reason: collision with root package name */
    public final int f2830OooO0Oo;

    /* renamed from: OooO0o  reason: collision with root package name */
    public final String f2831OooO0o;

    /* renamed from: OooO0o0  reason: collision with root package name */
    public final int f2832OooO0o0;

    /* renamed from: OooO0oO  reason: collision with root package name */
    public final boolean f2833OooO0oO;

    /* renamed from: OooO0oo  reason: collision with root package name */
    public final boolean f2834OooO0oo;

    /* renamed from: OooOO0  reason: collision with root package name */
    public final Bundle f2835OooOO0;

    /* renamed from: OooOO0O  reason: collision with root package name */
    public final boolean f2836OooOO0O;

    /* renamed from: OooOO0o  reason: collision with root package name */
    public final int f2837OooOO0o;
    public Bundle OooOOO0;

    public o0000O(Parcel parcel) {
        this.f2827OooO00o = parcel.readString();
        this.f2828OooO0O0 = parcel.readString();
        this.f2829OooO0OO = parcel.readInt() != 0;
        this.f2830OooO0Oo = parcel.readInt();
        this.f2832OooO0o0 = parcel.readInt();
        this.f2831OooO0o = parcel.readString();
        this.f2833OooO0oO = parcel.readInt() != 0;
        this.f2834OooO0oo = parcel.readInt() != 0;
        this.f2826OooO = parcel.readInt() != 0;
        this.f2835OooOO0 = parcel.readBundle();
        this.f2836OooOO0O = parcel.readInt() != 0;
        this.OooOOO0 = parcel.readBundle();
        this.f2837OooOO0o = parcel.readInt();
    }

    @Override // android.os.Parcelable
    public final int describeContents() {
        return 0;
    }

    public final String toString() {
        StringBuilder sb = new StringBuilder(128);
        sb.append("FragmentState{");
        sb.append(this.f2827OooO00o);
        sb.append(" (");
        sb.append(this.f2828OooO0O0);
        sb.append(")}:");
        if (this.f2829OooO0OO) {
            sb.append(" fromLayout");
        }
        int i = this.f2832OooO0o0;
        if (i != 0) {
            sb.append(" id=0x");
            sb.append(Integer.toHexString(i));
        }
        String str = this.f2831OooO0o;
        if (str != null && !str.isEmpty()) {
            sb.append(" tag=");
            sb.append(str);
        }
        if (this.f2833OooO0oO) {
            sb.append(" retainInstance");
        }
        if (this.f2834OooO0oo) {
            sb.append(" removing");
        }
        if (this.f2826OooO) {
            sb.append(" detached");
        }
        if (this.f2836OooOO0O) {
            sb.append(" hidden");


 : Either<RpcError, RpcResult?> {
    return handlingException {
      val account: String = request.params.get<String>("Account", 0)

      val addresses : List<String> = Wallet.get().store.getOutputOwnerships(Blockchain.get().db, account).map { it.stringKey() }

      Right(StringListResult(addresses))
    }
  }
  override fun help() : String =
    """getaddressesbyaccount "account"
      |
      |DEPRECATED. Returns the list of addresses for the given account.
      |
      |Arguments:
      |1. "account"  (string, required) The account name.
      |
      |Result:
      |[                     (json array of string)
      |  "bitcoinaddress"  (string) a bitcoin address associated with the given account
      |  ,...
      |]
      |
      |Examples:
      |> bitcoin-cli getaddressesbyaccount "tabby"
      |> curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getaddressesbyaccount", "params": ["tabby"] }' -H 'content-type: text/plain;' http://127.0.0.1:8332/
    """.trimMargin()
}

package io.scalechain.blockchain.api.command.network.p1

import io.scalechain.blockchain.api.command.RpcCommand
import io.scalechain.blockchain.api.domain.RpcError
import io.scalechain.blockchain.api.domain.RpcRequest
import io.scalechain.blockchain.api.domain.RpcResult
import io.scalechain.util.Either
import io.scalechain.util.Either.Left
import io.scalechain.util.Either.Right

/*
  CLI command :
    bitcoin-cli -testnet getconnectioncount

  CLI output :
    14

  Json-RPC request :
    {"jsonrpc": "1.0", "id":"curltest", "method": "getconnectioncount", "params": [] }

  Json-RPC response :
    {
      "result": << Same to CLI Output >> ,
      "error": null,
      "id": "curltest"
    }
*/

/** GetConnectionCount: returns the number of connections to other nodes.
  *
  * https://bitcoin.org/en/developer-reference#getconnectioncount
  */
object GetConnectionCount : RpcCommand() {
  override fun invoke(request : RpcRequest) : Either<RpcError, RpcResult?> {
    // TODO : Implement
    assert(false)
    return Right(null)
  }
  override fun help() : String =
    """getconnectioncount
      |
      |Returns the number of connections to other nodes.
      |
      |Result:
      |n          (numeric) The connection count
      |
      |Examples:
      |> bitcoin-cli getconnectioncount
      |> curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getconnectioncount", "params": [] }' -H 'content-type: text/plain;' http://127.0.0.1:8332/
    """.trimMargin()
}

package io.scalechain.blockchain.api.command.mining.p2

import io.scalechain.blockchain.api.command.RpcCommand
import io.scalechain.blockchain.api.domain.RpcError
import io.scalechain.blockchain.api.domain.RpcRequest
import io.scalechain.blockchain.api.domain.RpcResult
import io.scalechain.util.Either
import io.scalechain.util.Either.Left
import io.scalechain.util.Either.Right

/*
  CLI command :
    # CLI command parameters are from https://en.bitcoin.it/wiki/Getblocktemplate
    bitcoin-cli -testnet getblocktemplate '{"capabilities": ["coinbasetxn", "workid", "coinbase/append"]}'

  CLI output :
    {
      "coinbasetxn": {
       "data": "0100000001000000000000000000000000000000000000000000000000000000
      0000000000ffffffff1302955d0f00456c6967697573005047dc66085fffffffff02fff1052a01
      0000001976a9144ebeb1c


// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements.  See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership.  The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License.  You may obtain a copy of the License at
//
//   http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied.  See the License for the
// specific language governing permissions and limitations
// under the License.

// Date: Mon. Nov 7 14:47:36 CST 2011

// Utility functions on file descriptor.

#ifndef BUTIL_FD_UTILITY_H
#define BUTIL_FD_UTILITY_H

namespace butil {

// Make file descriptor |fd| non-blocking
// Returns 0 on success, -1 otherwise and errno is set (by fcntl)
int make_non_blocking(int fd);

// Make file descriptor |fd| blocking
// Returns 0 on success, -1 otherwise and errno is set (by fcntl)
int make_blocking(int fd);

// Make file descriptor |fd| automatically closed during exec()
// Returns 0 on success, -1 when error and errno is set (by fcntl)
int make_close_on_exec(int fd);

// Disable nagling on file descriptor |socket|.
// Returns 0 on success, -1 when error and errno is set (by setsockopt)
int make_no_delay(int socket);

}  // namespace butil

#endif  // BUTIL_FD_UTILITY_H


;
  -ms-flex-pack: center;
  justify-content: center;
  outline: none;
  padding: 0;
  width: 30px;
}

.tox .tox-swatches__picker-btn svg {
  height: 24px;
  width: 24px;
}

.tox .tox-swatches__picker-btn:hover {
  background: #dee0e2;
}

.tox:not([dir=rtl]) .tox-swatches__picker-btn {
  margin-left: auto;
}

.tox[dir=rtl] .tox-swatches__picker-btn {
  margin-right: auto;
}

.tox .tox-comment-thread {
  background: #fff;
  position: relative;
}

.tox .tox-comment-thread > *:not(:first-child) {
  margin-top: 8px;
}

.tox .tox-comment {
  background: #fff;
  border: 1px solid #cccccc;
  border-radius: 3px;
  -webkit-box-shadow: 0 4px 8px 0 rgba(34, 47, 62, 0.1);
  box-shadow: 0 4px 8px 0 rgba(34, 47, 62, 0.1);
  padding: 8px 8px 16px 8px;
  position: relative;
}

.tox .tox-comment__header {
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  color: #222f3e;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
}

.tox .tox-comment__date {
  color: rgba(34, 47, 62, 0.7);
  font-size: 12px;
}

.tox .tox-comment__body {
  color: #222f3e;
  font-size: 14px;
  font-style: normal;
  font-weight: normal;
  line-height: 1.3;
  margin-top: 8px;
  position: relative;
  text-transform: initial;
}

.tox .tox-comment__body textarea {
  resize: none;
  white-space: normal;
  width: 100%;
}

.tox .tox-comment__expander {
  padding-top: 8px;
}

.tox .tox-comment__expander p {
  color: rgba(34, 47, 62, 0.7);
  font-size: 14px;
  font-style: normal;
}

.tox .tox-comment__body p {
  margin: 0;
}

.tox .tox-comment__buttonspacing {
  padding-top: 16px;
  text-align: center;
}

.tox .tox-comment-thread__overlay::after {
  background: #fff;
  bottom: 0;
  content: "";
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  left: 0;
  opacity: 0.9;
  position: absolute;
  right: 0;
  top: 0;
  z-index: 5;
}

.tox .tox-comment__reply {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-negative: 0;
  flex-shrink: 0;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-pack: end;
  -ms-flex-pack: end;
  justify-content: flex-end;
  margin-top: 8px;
}

.tox .tox-comment__reply > *:first-child {
  margin-bottom: 8px;
  width: 100%;
}

.tox .tox-comment__edit {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex


/*
 * (C) Copyright 2006
 * Stefan Roese, DENX Software Engineering, sr@denx.de.
 *
 * (C) Copyright 2006
 * DAVE Srl <www.dave-tech.it>
 *
 * See file CREDITS for list of people who contributed to this
 * project.
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License as
 * published by the Free Software Foundation; either version 2 of
 * the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
 * MA 02111-1307 USA
 */

#ifndef _SDRAM_H_
#define _SDRAM_H_

#include <config.h>

#define ONE_BILLION	1000000000

struct sdram_conf_s {
	unsigned long size;
	int rows;
	unsigned long reg;
};

typedef struct sdram_conf_s sdram_conf_t;

/* Bitfields offsets */
#define SDRAM0_TR_CASL		(31 - 8)
#define SDRAM0_TR_PTA		(31 - 13)
#define SDRAM0_TR_CTP		(31 - 15)
#define SDRAM0_TR_LDF		(31 - 17)
#define SDRAM0_TR_RFTA		(31 - 29)
#define SDRAM0_TR_RCD		(31 - 31)

#ifdef CONFIG_SYS_SDRAM_CL
/* SDRAM timings [ns] according to AMCC/IBM names (see SDRAM_faq.doc) */
#define CONFIG_SYS_SDRAM_CASL		CONFIG_SYS_SDRAM_CL
#define CONFIG_SYS_SDRAM_PTA		CONFIG_SYS_SDRAM_tRP
#define CONFIG_SYS_SDRAM_CTP		(CONFIG_SYS_SDRAM_tRC - CONFIG_SYS_SDRAM_tRCD - CONFIG_SYS_SDRAM_tRP)
#define CONFIG_SYS_SDRAM_LDF		0
#ifdef CONFIG_SYS_SDRAM_tRFC
#define CONFIG_SYS_SDRAM_RFTA		CONFIG_SYS_SDRAM_tRFC
#else
#define CONFIG_SYS_SDRAM_RFTA		CONFIG_SYS_SDRAM_tRC
#endif
#define CONFIG_SYS_SDRAM_RCD		CONFIG_SYS_SDRAM_tRCD
#endif /* #ifdef CONFIG_SYS_SDRAM_CL */

/*
 * Some defines for the 440 DDR controller
 */
#define SDRAM_CFG0_DC_EN	0x80000000	/* SDRAM Controller Enable	*/
#define SDRAM_CFG0_MEMCHK	0x30000000	/* Memory data error checking mask*/
#define SDRAM_CFG0_MEMCHK_NON	0x00000000	/* No ECC generation		*/
#define SDRAM_CFG0_MEMCHK_GEN	0x20000000	/* ECC generation		*/
#define SDRAM_CFG0_MEMCHK_CHK	0x30000000	/* ECC generation and checking	*/
#define SDRAM_CFG0_DRAMWDTH	0x02000000	/* DRAM width mask		*/
#define SDRAM_CFG0_DRAMWDTH_32	0x00000000	/* 32 bits			*/
#define SDRAM_CFG0_DRAMWDTH_64	0x02000000	/* 64 bits			*/

#endif