private void _lengthRangeListViewPasteMenuItem_Click(object sender, RoutedEventArgs e)
        {
            Regex regex = new Regex(@"^([\+-]) (.*), (.*)$");

            foreach (var line in Clipboard.GetText().Split('\r', '\n'))
            {
                try
                {
                    var match = regex.Match(line);
                    if (!match.Success) continue;

                    var min = Math.Max(0, long.Parse(match.Groups[2].Value));
                    var max = Math.Max(0, long.Parse(match.Groups[3].Value));

                    var item = new SearchContains<SearchRange<long>>(
                        (match.Groups[1].Value == "+") ? true : false,
                        new SearchRange<long>(min, max)
                    );

                    if (_lengthRangeCollection.Contains(item)) continue;
                    _lengthRangeCollection.Add(item);
                }
                catch (Exception)
                {

                }
            }

            _lengthRangeListViewUpdate();
        }
        private void _keywordListViewPasteMenuItem_Click(object sender, RoutedEventArgs e)
        {
            Regex regex = new Regex("^([\\+-]) \"(.*)\"$");

            foreach (var line in Clipboard.GetText().Split('\r', '\n'))
            {
                try
                {
                    var match = regex.Match(line);
                    if (!match.Success) continue;

                    var item = new SearchContains<string>(
                        (match.Groups[1].Value == "+") ? true : false,
                        match.Groups[2].Value
                    );

                    if (_keywordCollection.Contains(item)) continue;
                    _keywordCollection.Add(item);
                }
                catch (Exception)
                {

                }
            }

            _keywordListViewUpdate();
        }
        private void _lengthRangeEditButton_Click(object sender, RoutedEventArgs e)
        {
            if (_lengthRangeMinTextBox.Text == "") return;
            if (_lengthRangeMaxTextBox.Text == "") return;

            int selectIndex = _lengthRangeListView.SelectedIndex;
            if (selectIndex == -1) return;

            try
            {
                var min = Math.Max(0, long.Parse(_lengthRangeMinTextBox.Text));
                var max = Math.Max(0, long.Parse(_lengthRangeMaxTextBox.Text));

                var item = new SearchContains<SearchRange<long>>(
                    _lengthRangeContainsCheckBox.IsChecked.Value,
                    new SearchRange<long>(min, max)
                );

                if (_lengthRangeCollection.Contains(item)) return;
                _lengthRangeCollection.Set(selectIndex, item);

                _lengthRangeListView.SelectedIndex = selectIndex;
            }
            catch (Exception)
            {

            }

            _lengthRangeListViewUpdate();
        }
        private void _keywordAddButton_Click(object sender, RoutedEventArgs e)
        {
            if (_keywordTextBox.Text == "") return;

            var item = new SearchContains<string>(
                _keywordContainsCheckBox.IsChecked.Value,
                _keywordTextBox.Text
            );

            if (_keywordCollection.Contains(item)) return;
            _keywordCollection.Add(item);

            _keywordListViewUpdate();
        }
        private void _keywordEditButton_Click(object sender, RoutedEventArgs e)
        {
            if (_keywordTextBox.Text == "") return;

            int selectIndex = _keywordListView.SelectedIndex;
            if (selectIndex == -1) return;

            var item = new SearchContains<string>(
                _keywordContainsCheckBox.IsChecked.Value,
                _keywordTextBox.Text
            );

            if (_keywordCollection.Contains(item)) return;
            _keywordCollection.Set(selectIndex, item);

            _keywordListView.SelectedIndex = selectIndex;

            _keywordListViewUpdate();
        }
        private void _creationTimeRangeEditButton_Click(object sender, RoutedEventArgs e)
        {
            if (_creationTimeRangeMinTextBox.Text == "") return;
            if (_creationTimeRangeMaxTextBox.Text == "") return;

            int selectIndex = _creationTimeRangeListView.SelectedIndex;
            if (selectIndex == -1) return;

            try
            {
                var min = DateTime.ParseExact(_creationTimeRangeMinTextBox.Text, LanguagesManager.Instance.DateTime_StringFormat, System.Globalization.DateTimeFormatInfo.InvariantInfo, System.Globalization.DateTimeStyles.AssumeLocal).ToUniversalTime();
                var max = DateTime.ParseExact(_creationTimeRangeMaxTextBox.Text, LanguagesManager.Instance.DateTime_StringFormat, System.Globalization.DateTimeFormatInfo.InvariantInfo, System.Globalization.DateTimeStyles.AssumeLocal).ToUniversalTime();

                var item = new SearchContains<SearchRange<DateTime>>(
                    _creationTimeRangeContainsCheckBox.IsChecked.Value,
                    new SearchRange<DateTime>(min, max)
                );

                if (_creationTimeRangeCollection.Contains(item)) return;
                _creationTimeRangeCollection.Set(selectIndex, item);

                _creationTimeRangeListView.SelectedIndex = selectIndex;
            }
            catch (Exception)
            {

            }

            _creationTimeRangeListViewUpdate();
        }
        private void _creationTimeRangeListViewPasteMenuItem_Click(object sender, RoutedEventArgs e)
        {
            Regex regex = new Regex(@"^([\+-]) (.*), (.*)$");

            foreach (var line in Clipboard.GetText().Split('\r', '\n'))
            {
                try
                {
                    var match = regex.Match(line);
                    if (!match.Success) continue;

                    var min = DateTime.ParseExact(match.Groups[2].Value, LanguagesManager.Instance.DateTime_StringFormat, System.Globalization.DateTimeFormatInfo.InvariantInfo, System.Globalization.DateTimeStyles.AssumeLocal).ToUniversalTime();
                    var max = DateTime.ParseExact(match.Groups[3].Value, LanguagesManager.Instance.DateTime_StringFormat, System.Globalization.DateTimeFormatInfo.InvariantInfo, System.Globalization.DateTimeStyles.AssumeLocal).ToUniversalTime();

                    var item = new SearchContains<SearchRange<DateTime>>(
                        (match.Groups[1].Value == "+") ? true : false,
                        new SearchRange<DateTime>(min, max)
                    );

                    if (_creationTimeRangeCollection.Contains(item)) continue;
                    _creationTimeRangeCollection.Add(item);
                }
                catch (Exception)
                {

                }
            }

            _creationTimeRangeListViewUpdate();
        }
        private void _stateEditButton_Click(object sender, RoutedEventArgs e)
        {
            if (_stateComboBox.SelectedIndex == -1) return;

            int selectIndex = _stateListView.SelectedIndex;
            if (selectIndex == -1) return;

            var item = new SearchContains<SearchState>(
                _stateContainsCheckBox.IsChecked.Value,
                (SearchState)_stateComboBox.SelectedItem
            );

            if (_stateCollection.Contains(item)) return;
            _stateCollection.Set(selectIndex, item);

            _stateListView.SelectedIndex = selectIndex;

            _stateListViewUpdate();
        }
        private void _stateListViewPasteMenuItem_Click(object sender, RoutedEventArgs e)
        {
            Regex regex = new Regex(@"^([\+-]) (.*)$");

            foreach (var line in Clipboard.GetText().Split('\r', '\n'))
            {
                try
                {
                    var match = regex.Match(line);
                    if (!match.Success) continue;

                    var item = new SearchContains<SearchState>(
                        (match.Groups[1].Value == "+") ? true : false,
                        (SearchState)Enum.Parse(typeof(SearchState), match.Groups[2].Value)
                    );

                    if (_stateCollection.Contains(item)) continue;
                    _stateCollection.Add(item);
                }
                catch (Exception)
                {

                }
            }

            _stateListViewUpdate();
        }
        private void _signatureEditButton_Click(object sender, RoutedEventArgs e)
        {
            if (_signatureTextBox.Text == "") return;

            var selectIndex = _signatureListView.SelectedIndex;
            if (selectIndex == -1) return;

            try
            {
                var item = new SearchContains<SearchRegex>(
                    _signatureContainsCheckBox.IsChecked.Value,
                    new SearchRegex(_signatureTextBox.Text, _signatureIsIgnoreCaseCheckBox.IsChecked.Value)
                );

                if (_signatureCollection.Contains(item)) return;
                _signatureCollection.Set(selectIndex, item);

                _signatureListView.SelectedIndex = selectIndex;
            }
            catch (Exception)
            {

            }

            _signatureListViewUpdate();
        }
        private void _seedListViewPasteMenuItem_Click(object sender, RoutedEventArgs e)
        {
            foreach (var seed in Clipboard.GetSeeds())
            {
                try
                {
                    var item = new SearchContains<Seed>(false, seed);

                    if (_seedCollection.Contains(item)) continue;
                    _seedCollection.Add(item);
                }
                catch (Exception)
                {
                    continue;
                }
            }

            Regex regex = new Regex(@"^([\+-]) (.*)$");

            foreach (var line in Clipboard.GetText().Split('\r', '\n'))
            {
                try
                {
                    var match = regex.Match(line);
                    if (!match.Success) continue;

                    var seed = AmoebaConverter.FromSeedString(match.Groups[2].Value);
                    if (!seed.VerifyCertificate()) seed.CreateCertificate(null);

                    var item = new SearchContains<Seed>(
                        (match.Groups[1].Value == "+") ? true : false,
                        seed
                    );

                    if (_seedCollection.Contains(item)) continue;
                    _seedCollection.Add(item);
                }
                catch (Exception)
                {
                    continue;
                }
            }

            _seedListViewUpdate();
        }
        private void _seedEditButton_Click(object sender, RoutedEventArgs e)
        {
            if (_seedTextBox.Text == "") return;

            int selectIndex = _seedListView.SelectedIndex;
            if (selectIndex == -1) return;

            try
            {
                var seed = AmoebaConverter.FromSeedString(_seedTextBox.Text);
                if (!seed.VerifyCertificate()) seed.CreateCertificate(null);

                var item = new SearchContains<Seed>(
                    _seedContainsCheckBox.IsChecked.Value,
                    seed
                );

                if (_seedCollection.Contains(item)) return;
                _seedCollection.Set(selectIndex, item);

                _seedListView.SelectedIndex = selectIndex;
            }
            catch (Exception)
            {

            }

            _seedListViewUpdate();
        }
        private void _nameRegexAddButton_Click(object sender, RoutedEventArgs e)
        {
            if (_nameRegexTextBox.Text == "") return;

            try
            {
                var item = new SearchContains<SearchRegex>(
                    _nameRegexContainsCheckBox.IsChecked.Value,
                    new SearchRegex(_nameRegexTextBox.Text, _nameRegexIsIgnoreCaseCheckBox.IsChecked.Value)
                );

                if (_nameRegexCollection.Contains(item)) return;
                _nameRegexCollection.Add(item);
            }
            catch (Exception)
            {

            }

            _nameRegexListViewUpdate();
        }
        private void _lengthRangeAddButton_Click(object sender, RoutedEventArgs e)
        {
            if (_lengthRangeMinTextBox.Text == "") return;
            if (_lengthRangeMaxTextBox.Text == "") return;

            try
            {
                var min = Math.Max(0, (long)NetworkConverter.FromSizeString(_lengthRangeMinTextBox.Text));
                var max = Math.Max(0, (long)NetworkConverter.FromSizeString(_lengthRangeMaxTextBox.Text));

                var item = new SearchContains<SearchRange<long>>(
                    _lengthRangeContainsCheckBox.IsChecked.Value,
                    new SearchRange<long>(min, max)
                );

                if (_lengthRangeCollection.Contains(item)) return;
                _lengthRangeCollection.Add(item);
            }
            catch (Exception)
            {

            }

            _lengthRangeListViewUpdate();
        }